25 #ifndef CARGO_IPC_UNIQUE_ID_HPP
26 #define CARGO_IPC_UNIQUE_ID_HPP
30 #include <uuid/uuid.h>
62 operator std::string()
const;
84 ::uuid_unparse(
id.mUUID, uuid);
88 std::string uuids(uuid);
90 return std::hash<time_t>()(
id.mTime.tv_sec)
91 ^ std::hash<long>()(
id.mTime.tv_nsec)
92 ^ std::hash<std::string>()(uuids);
99 #endif // CARGO_IPC_UNIQUE_ID_HPP
UniqueID()
Default constructor.
Definition: unique-id.cpp:30
friend std::ostream & operator<<(std::ostream &str, const UniqueID &id)
Overloaded << operator for debugging purposes.
Definition: unique-id.cpp:57
Definition: unique-id.hpp:75
Definition: unique-id.hpp:36
TimestampType mTime
timestamp when generate() was called
Definition: unique-id.hpp:70
bool operator==(const UniqueID &other) const
Compare two IDs.
Definition: unique-id.cpp:43
struct timespec TimestampType
Definition: unique-id.hpp:38
uuid_t UUIDType
Definition: unique-id.hpp:39
UUIDType mUUID
random UUID generated with libuuid
Definition: unique-id.hpp:71
void generate()
Generate new timestamp and UUID pair.
Definition: unique-id.cpp:37
std::size_t operator()(const cargo::ipc::UniqueID &id) const
Definition: unique-id.hpp:81