Luanti 5.15.0-dev
 
Loading...
Searching...
No Matches
guid.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2024 SFENCE
4
5#pragma once
6
7#include "irrlichttypes.h"
8#include "util/basic_macros.h"
9#include <random>
10#include <string>
11#include <array>
12
13
19struct MyGUID
20{
21 std::array<char, 16> bytes;
22
23 std::string base64() const;
24 void serialize(std::ostream &os) const;
25 void deSerialize(std::istream &is);
26};
27
29{
30public:
32
37 MyGUID next();
38
40
41private:
42 std::mt19937_64 m_rand;
43 std::uniform_int_distribution<u64> m_uniform;
44};
#define DISABLE_CLASS_COPY(C)
Definition basic_macros.h:26
Definition guid.h:29
GUIDGenerator()
Definition guid.cpp:31
std::uniform_int_distribution< u64 > m_uniform
Definition guid.h:43
MyGUID next()
Generates the next GUID, which it will never return again.
Definition guid.cpp:45
std::mt19937_64 m_rand
Definition guid.h:42
A global unique identifier.
Definition guid.h:20
void deSerialize(std::istream &is)
Definition guid.cpp:24
std::string base64() const
Definition guid.cpp:14
void serialize(std::ostream &os) const
Definition guid.cpp:19
std::array< char, 16 > bytes
Definition guid.h:21