![]() |
![]() |
00001 #ifndef IGUANA_FRAMEWORK_IG_PLUGIN_DBVIEW_BASE_H 00002 # define IGUANA_FRAMEWORK_IG_PLUGIN_DBVIEW_BASE_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "Iguana/Framework/interface/config.h" 00007 # include <string> 00008 00009 //<<<<<< PUBLIC DEFINES >>>>>> 00010 //<<<<<< PUBLIC CONSTANTS >>>>>> 00011 //<<<<<< PUBLIC TYPES >>>>>> 00012 00013 class IgModule; 00014 class IgPluginInfo; 00015 class IgModuleDescriptor; 00016 00017 //<<<<<< PUBLIC VARIABLES >>>>>> 00018 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00019 //<<<<<< CLASS DECLARATIONS >>>>>> 00020 00022 class IgPluginFactoryBase 00023 { 00024 public: 00025 IgPluginFactoryBase (const std::string &tag); 00026 virtual ~IgPluginFactoryBase (void); 00027 00028 // Category tag 00029 const std::string & category (void) const; 00030 00031 // Notifications from IgManager. 00032 virtual void restore (IgModule *module, IgModuleDescriptor *info) =0; 00033 virtual void addInfo (IgPluginInfo *info) = 0; 00034 virtual void removeInfo (IgPluginInfo *info) = 0; 00035 00036 protected: 00037 // Notifications from derived class 00038 virtual void rebuild (void); 00039 00040 private: 00041 std::string m_tag; 00042 00043 // undefined, no semantics 00044 IgPluginFactoryBase (const IgPluginFactoryBase &); 00045 IgPluginFactoryBase &operator= (const IgPluginFactoryBase &); 00046 }; 00047 00048 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00049 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00050 00051 #endif // IGUANA_FRAMEWORK_IG_PLUGIN_DBVIEW_BASE_H