00001 #ifndef IGUANA_FRAMEWORK_IG_PLUGIN_DB_ITEM_H 00002 # define IGUANA_FRAMEWORK_IG_PLUGIN_DB_ITEM_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 IgModuleDescriptor; 00015 00016 //<<<<<< PUBLIC VARIABLES >>>>>> 00017 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00018 //<<<<<< CLASS DECLARATIONS >>>>>> 00019 00044 class IgPluginInfo 00045 { 00046 public: 00047 // FIXME: Derived class must provide... 00048 IgPluginInfo (IgModule *module, 00049 const std::string &name, 00050 const std::string &category); 00051 virtual ~IgPluginInfo (void); 00052 00053 IgModule * module (void) const; 00054 const std::string & name (void) const; 00055 const std::string & category (void) const; 00056 00057 virtual void cache (IgModuleDescriptor *to) const; 00058 virtual void detach (void); 00059 00060 protected: 00061 void finish (bool needCache); 00062 void noFactory (void) const; 00063 00064 private: 00065 IgModule *m_module; //< Provider module. 00066 std::string m_name; //< Object name. 00067 const std::string &m_category; //< Cache category label. 00068 }; 00069 00070 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00071 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00072 00073 #endif // IGUANA_FRAMEWORK_IG_PLUGIN_DB_ITEM_H