00001 #ifndef __ARC_SEC_ATTRIBUTEFACTORY_H__
00002 #define __ARC_SEC_ATTRIBUTEFACTORY_H__
00003
00004 #include <map>
00005 #include <arc/XMLNode.h>
00006 #include <arc/Logger.h>
00007 #include <arc/security/ClassLoader.h>
00008
00009 #include "AttributeProxy.h"
00010
00011 namespace ArcSec {
00012
00013 typedef std::map<std::string, AttributeProxy*> AttrProxyMap;
00014
00016 class AttributeFactory : public Arc::LoadableClass {
00017 public:
00018 AttributeFactory(Arc::PluginArgument* parg): Arc::LoadableClass(parg) {};
00019 virtual ~AttributeFactory(){};
00020
00021 public:
00022 virtual AttributeValue* createValue(const Arc::XMLNode& node, const std::string& type) = 0;
00023
00024 protected:
00025 AttrProxyMap apmap;
00026 };
00027
00028 }
00029
00030 #endif
00031