|
|
|
@ -5,6 +5,7 @@ |
|
|
|
#pragma once |
|
|
|
|
|
|
|
#include <array> |
|
|
|
#include <random> |
|
|
|
#include "boost/optional.hpp" |
|
|
|
#include "common/common_types.h" |
|
|
|
#include "common/swap.h" |
|
|
|
@ -38,8 +39,12 @@ struct UUID { |
|
|
|
|
|
|
|
// TODO(ogniK): Properly generate uuids based on RFC-4122 |
|
|
|
const UUID& Generate() { |
|
|
|
uuid[0] = (static_cast<u64>(std::rand()) << 32) | std::rand(); |
|
|
|
uuid[1] = (static_cast<u64>(std::rand()) << 32) | std::rand(); |
|
|
|
std::random_device device; |
|
|
|
std::mt19937 gen(device()); |
|
|
|
std::uniform_int_distribution<uint64_t> distribution(1, |
|
|
|
std::numeric_limits<uint64_t>::max()); |
|
|
|
uuid[0] = distribution(gen); |
|
|
|
uuid[1] = distribution(gen); |
|
|
|
return *this; |
|
|
|
} |
|
|
|
|
|
|
|
|