Unravel Engine C++ Reference
Loading...
Searching...
No Matches
uuid.cpp
Go to the documentation of this file.
1#include "uuid.h"
2
3namespace unravel
4{
5
6namespace
7{
8auto get_generator() -> hpp::uuid_random_generator&
9{
10 static thread_local auto engine = []()
11 {
12 std::random_device rd;
13 auto seed_data = std::array<int, std::mt19937::state_size>{};
14 std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
15 std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
16 std::mt19937 generator(seq);
17 return generator;
18 }();
19
20 static thread_local hpp::uuid_random_generator gen{engine};
21 return gen;
22}
23} // namespace
24
25auto generate_uuid() -> hpp::uuid
26{
27 auto& generator = get_generator();
28 return generator();
29}
30
31auto generate_uuid(const std::string& name) -> hpp::uuid
32{
33 hpp::uuid_name_generator generator({});
34 return generator(name);
35}
36
37} // namespace unravel
std::string name
Definition hub.cpp:27
Provides a sequence-based action management system for controlling and scheduling actions.
auto generate_uuid() -> hpp::uuid
Definition uuid.cpp:25