00001 #ifndef _ots_ConfigurationGroupKey_h_
00002 #define _ots_ConfigurationGroupKey_h_
00003
00004 #include <ostream>
00005
00006 namespace ots
00007 {
00008
00009
00010
00011 class ConfigurationGroupKey
00012 {
00013
00014 public:
00015
00016 explicit ConfigurationGroupKey (unsigned int key=INVALID);
00017 explicit ConfigurationGroupKey (char * const &groupString);
00018 explicit ConfigurationGroupKey (const std::string &groupString);
00019 virtual ~ConfigurationGroupKey (void);
00020
00021 unsigned int key (void) const;
00022 bool isInvalid (void) const;
00023 std::string toString (void) const;
00024
00025
00026 ConfigurationGroupKey& operator= (const unsigned int key);
00027 bool operator== (unsigned int key) const;
00028 bool operator== (const ConfigurationGroupKey& key) const;
00029 bool operator!= (unsigned int key) const;
00030 bool operator!= (const ConfigurationGroupKey& key) const;
00031 bool operator< (const ConfigurationGroupKey& key) const;
00032 bool operator> (const ConfigurationGroupKey& key) const;
00033
00034
00035 friend std::ostream& operator<< (std::ostream& out, const ConfigurationGroupKey& key)
00036 {
00037 out << key.toString();
00038 return out;
00039 }
00040
00041 static ConfigurationGroupKey getNextKey (const ConfigurationGroupKey& key=ConfigurationGroupKey());
00042 static std::string getFullGroupString (const std::string &groupName, const ConfigurationGroupKey& key);
00043 static void getGroupNameAndKey (const std::string &fullGroupString, std::string &groupName, ConfigurationGroupKey& key);
00044 static const unsigned int getDefaultKey (void);
00045 static const unsigned int getInvalidKey (void);
00046
00047 private:
00048 static const unsigned int INVALID;
00049 static const unsigned int DEFAULT;
00050 unsigned int key_;
00051 };
00052 }
00053 #endif