00001 #ifndef __ARC_MESSAGEAUTH_H__ 00002 #define __ARC_MESSAGEAUTH_H__ 00003 00004 #include <string> 00005 #include <map> 00006 00007 #include <arc/message/SecAttr.h> 00008 00009 namespace Arc { 00010 00012 00013 class MessageAuth { 00014 private: 00015 std::map<std::string,SecAttr*> attrs_; 00016 bool attrs_created_; 00017 MessageAuth(const MessageAuth&) { }; 00018 public: 00019 MessageAuth(void); 00020 ~MessageAuth(void); 00022 void set(const std::string& key, SecAttr* value); 00024 void remove(const std::string& key); 00026 SecAttr* get(const std::string& key); 00028 SecAttr* operator[](const std::string& key) { return get(key); }; 00030 00035 bool Export(SecAttrFormat format,XMLNode &val) const; 00037 00042 MessageAuth* Filter(const std::list<std::string>& selected_keys,const std::list<std::string>& rejected_keys); 00043 }; 00044 00045 } 00046 00047 #endif 00048