00001
00025 #ifndef __TOOLS_H__
00026 #define __TOOLS_H__
00027
00031 template<class T>
00032 class Lib {
00033 public:
00034 Lib () {}
00035 AuditingStrategy* create (int i) const {
00036 return dynamic_cast<T*> (dyncreate (mClassNames[i]));
00037 }
00038 int classes () const {return mClassNames.size;}
00039 void registerCls (const String& classname) {mClassNames.add(classname);}
00040 static AuditingStrategyLib& instance () {return sInstance;}
00041 protected:
00042 static AuditingStrategyLib sInstance;
00043 Array<String> mClassNames;
00044 };
00045
00046 #endif
00047
00048