diff options
Diffstat (limited to 'src/core/uid.h')
-rw-r--r-- | src/core/uid.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/core/uid.h b/src/core/uid.h new file mode 100644 index 0000000..1954852 --- /dev/null +++ b/src/core/uid.h @@ -0,0 +1,72 @@ +/* + 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 <string> + +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__ + +
\ No newline at end of file |