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