00001 //----------------------------------------------------------- 00002 // Copyright Christian Arnault LAL-Orsay CNRS 00003 // arnault@lal.in2p3.fr 00004 // See the complete license in cmt_license.txt "http://www.cecill.info". 00005 //----------------------------------------------------------- 00006 00007 #ifndef __cmt_group_h__ 00008 #define __cmt_group_h__ 00009 00010 #include "cmt_parser.h" 00011 #include "cmt_system.h" 00012 00013 class Group 00014 { 00015 public: 00016 00017 typedef cmt_vector<Group> GroupVector; 00018 00019 static Group* find (const cmt_string& name); 00020 static Group* add (const cmt_string& name); 00021 00022 static GroupVector& groups (); 00023 static void clear_all (); 00024 static void show_all (); 00025 00026 public: 00027 00028 Group (); 00029 Group (const cmt_string& name); 00030 00031 const cmt_string& name () const; 00032 void set (const cmt_string& new_name); 00033 void clear (); 00034 00035 Group& operator = (const Group& other); 00036 bool operator == (const cmt_string& name) const; 00037 bool operator != (const cmt_string& name) const; 00038 00039 private: 00040 cmt_string m_name; 00041 cmt_string m_macro; 00042 }; 00043 00044 #endif