Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2011-07-10 19:31:42 +0000
committerStijn Buys <ingar@osirion.org>2011-07-10 19:31:42 +0000
commite18fa1d8ad9208a9f5bcfe2d97d36ae3675c80f1 (patch)
tree427f60f1bd7a4718cc5c96d79d40e9c4c650d5bc /src/core/uid.h
parentaf5404ea593d460d3ae843a23b295e3cfeade5bc (diff)
Generate a player ID when connecting to a server,
read it from keys.ini if it was previously generated.
Diffstat (limited to 'src/core/uid.h')
-rw-r--r--src/core/uid.h72
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