Wizard
Software Engineering Project - Wizard
Loading...
Searching...
No Matches
uuid_generator.h
1//
2// Created by Manuel on 27.01.2021.
3//
4// Helper class to generate unique ids.
5// from https://stackoverflow.com/questions/24365331/how-can-i-generate-uuid-in-c-without-using-boost-library
6
7#ifndef UUID_GENERATOR_H
8#define UUID_GENERATOR_H
9
10#include <random>
11#include <sstream>
12
14
15private:
16
17public:
18 static std::string generate_uuid_v4() {
19 std::stringstream ss;
20 std::random_device rd;
21 std::mt19937 gen(rd());
22 std::uniform_int_distribution<> dis(0, 15);
23 std::uniform_int_distribution<> dis2(8, 11);
24
25 int i;
26 ss << std::hex;
27 for (i = 0; i < 8; i++) {
28 ss << dis(gen);
29 }
30 ss << "-";
31 for (i = 0; i < 4; i++) {
32 ss << dis(gen);
33 }
34 ss << "-4";
35 for (i = 0; i < 3; i++) {
36 ss << dis(gen);
37 }
38 ss << "-";
39 ss << dis2(gen);
40 for (i = 0; i < 3; i++) {
41 ss << dis(gen);
42 }
43 ss << "-";
44 for (i = 0; i < 12; i++) {
45 ss << dis(gen);
46 };
47 return ss.str();
48 }
49};
50
51#endif //UUID_GENERATOR_H
Definition uuid_generator.h:13