00001 #ifndef MODULESFACTORY__HH_ 00002 #define MODULESFACTORY__HH_ 00003 #include "TemplateFactory.h" 00004 00005 class BaseModule; 00006 00007 namespace modules{ 00008 // In the future I plan to rename the BaseModule class, so this will help 00009 typedef BaseModule BaseModule; 00010 class factory; 00011 class options; 00012 } 00013 00014 class modules::factory:public TemplateFactory<modules::BaseModule,modules::options>{ 00015 private: 00016 factory():TemplateFactory<modules::BaseModule,modules::options>("modules::factory"){}; 00017 ~factory(){}; 00018 public: 00019 // Get the single instance of this class 00020 static factory* Instance(); 00021 00022 }; 00023 00024 inline modules::factory* modules::factory::Instance(){ 00025 static modules::factory* instance=NULL; 00026 if(!instance) { 00027 instance=new factory(); 00028 } 00029 return instance; 00030 } 00031 00032 #endif // MODULESFACTORY__HH_