commonlib
uuid.h
Go to the documentation of this file.
1 
11 #pragma once
12 
13 #include "datatypes.h"
14 #include <cstdint>
15 #include <memory>
16 #include <string>
17 
18 namespace boost { namespace uuids {
19  struct uuid;
20 }}
21 
22 BEGIN_NAMESPACE_DATATYPES
23 
24 class Uuid
25 {
26 public:
30  Uuid();
35  explicit Uuid(const char* uuidStr);
36  explicit Uuid(const boost::uuids::uuid& impl);
37  ~Uuid();
38  Uuid(const Uuid& origin);
39 
44  std::string toString() const;
49  bool isNil() const;
50 
56  uint8_t& operator[](size_t i) const;
57  size_t size() const;
58 
59  Uuid& operator=(const Uuid& rhs);
60 
61  bool operator<(const Uuid& rhs) const;
62  bool operator==(const Uuid& rhs) const;
63  bool operator!=(const Uuid& rhs) const;
64 
65 private:
66  std::unique_ptr<boost::uuids::uuid> pImpl;
67 };
68 
69 END_NAMESPACE_DATATYPES
bool isNil() const
checking if uuid is nil (00000000-0000-0000-0000-000000000000)
Definition: uuid.h:24
uint8_t & operator[](size_t i) const
raw data access.
Definition: uuid.h:18
std::string toString() const
generate string from uuid
Uuid()
create nil uuid