/* core/uid.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2. */ #ifndef __INCLUDED_CORE_UID_H__ #define __INCLUDED_CORE_UID_H__ #include namespace core { const size_t UIDKEYSIZE = 16; class UID { public: /** * @brief default constructor * will contain a zero-valued uid */ UID(); /** * @brief copy constructor */ UID(const UID & other); /** * @brief destructor */ ~UID(); /** * return a strin representation of the key */ const std::string str() const; /* ---- mutators ------------------------------------------- */ /** * @brief assign another UID */ void assign(const UID & other); /** * @brief assign UID from a string */ void assign(const std::string & str); /** * @brief generate a random UID */ void generate(); /** * @brief reset UID to 0 */ void clear(); bool is_valid() const; private: unsigned char uid_key[UIDKEYSIZE]; }; } // namespace core #endif // __INCLUDED_CORE_UID_H__