00001 #ifndef IGUANA_FRAMEWORK_IG_MODULE_DESCRIPTOR_H 00002 # define IGUANA_FRAMEWORK_IG_MODULE_DESCRIPTOR_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "Iguana/Framework/interface/config.h" 00007 # include <vector> 00008 # include <string> 00009 00010 //<<<<<< PUBLIC DEFINES >>>>>> 00011 //<<<<<< PUBLIC CONSTANTS >>>>>> 00012 //<<<<<< PUBLIC TYPES >>>>>> 00013 //<<<<<< PUBLIC VARIABLES >>>>>> 00014 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00015 //<<<<<< CLASS DECLARATIONS >>>>>> 00016 00018 class IgModuleDescriptor 00019 { 00020 public: 00021 IgModuleDescriptor (IgModuleDescriptor *parent = 0, 00022 const std::string &t1 = "", 00023 const std::string &t2 = "", 00024 const std::string &t3 = "", 00025 const std::string &t4 = "", 00026 const std::string &t5 = "", 00027 const std::string &t6 = "", 00028 const std::string &t7 = "", 00029 const std::string &t8 = ""); 00030 IgModuleDescriptor (IgModuleDescriptor *parent, 00031 const std::vector<std::string> &tokens); 00032 ~IgModuleDescriptor (void); 00033 // implicit copy constructor 00034 // implicit assignment operator 00035 00036 IgModuleDescriptor * parent (void) const; 00037 unsigned children (void) const; 00038 IgModuleDescriptor * child (unsigned index) const; 00039 void addChild (IgModuleDescriptor *child); 00040 00041 unsigned tokens (void) const; 00042 const std::string & token (unsigned index) const; 00043 void addToken (const std::string &text); 00044 00045 void dup (IgModuleDescriptor *to) const; 00046 00047 private: 00048 IgModuleDescriptor *m_parent; //< Up in the tree. 00049 std::vector<IgModuleDescriptor *> m_children; //< Down in the tree. 00050 std::vector<std::string> m_tokens; //< Tokens. 00051 }; 00052 00053 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00054 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00055 00056 #endif // IGUANA_FRAMEWORK_IG_MODULE_DESCRIPTOR_H