00001 #ifndef __ARC_SEC_FUNCTIONFACTORY_H__
00002 #define __ARC_SEC_FUNCTIONFACTORY_H__
00003
00004 #include <arc/security/ClassLoader.h>
00005
00006 #include <map>
00007 #include "Function.h"
00008
00009 namespace ArcSec {
00010
00011 typedef std::map<std::string, Function*> FnMap;
00012
00014
00019 class FnFactory : public Arc::LoadableClass {
00020 public:
00021 FnFactory(Arc::PluginArgument* parg): Arc::LoadableClass(parg) {};
00022 virtual ~FnFactory(){};
00023
00024 public:
00029 virtual Function* createFn(const std::string& type) = 0;
00030
00031 protected:
00032 FnMap fnmap;
00033 };
00034
00035 }
00036
00037 #endif
00038