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