Dynalib Utils
src
Utilities
UUID.h
Go to the documentation of this file.
1
//
2
// Created by Ken Kopelson on 30/04/18.
3
//
4
5
#ifndef HR1FIRMWARE_UUID_H
6
#define HR1FIRMWARE_UUID_H
7
8
#include <cstdint>
9
#include "
TypeDefs.h
"
10
#include "
String.h
"
11
#include "
crypto/ISAAC64Random.h
"
12
#include "
IComparable.h
"
13
#include "
IHashable.h
"
14
#include "
ICopyable.h
"
15
16
const
int
UUID_SIZE
= 16;
17
18
class
UUID
:
public
IHashable
<UUID>,
public
ICopyable
<UUID> {
19
static
Rand64Context
_ctx64;
20
uint64_t _mostSigBits;
21
uint64_t _leastSigBits;
22
int
_version = -1;
23
24
public
:
25
UUID
() =
default
;
26
explicit
UUID
(uint8_t* data);
27
UUID
(uint64_t mostSigBits, uint64_t leastSigBits);
28
~UUID
()
override
=
default
;
29
UUID
(
const
UUID
& other);
30
UUID
*
copy
()
override
;
31
int
hashCode
()
const override
;
32
bool
operator==
(
const
UUID
& other)
const override
;
33
34
static
void
initRandom
(
char
* seed);
35
static
const
UUID
randomUUID
();
36
static
const
UUID
nameUUIDFromBytes
(
const
String
& name);
37
static
const
UUID
nameUUIDFromBytes
(
unsigned
char
* name, uint nameLen);
38
static
const
UUID
fromString
(
const
String
& name);
39
uint64_t
getMostSignificantBits
();
40
uint64_t
getLeastSignificantBits
();
41
int
version
();
42
char
*
format
(
char
* buf)
const
;
43
const
String
toString
()
const
;
44
};
45
46
47
#endif //HR1FIRMWARE_UUID_H
ICopyable.h
UUID::initRandom
static void initRandom(char *seed)
Definition:
UUID.cpp:50
IHashable
Definition:
IHashable.h:10
UUID
Definition:
UUID.h:18
UUID::randomUUID
static const UUID randomUUID()
Definition:
UUID.cpp:55
IComparable.h
UUID::copy
UUID * copy() override
Definition:
UUID.cpp:36
UUID::toString
const String toString() const
Definition:
UUID.cpp:133
UUID::getLeastSignificantBits
uint64_t getLeastSignificantBits()
Definition:
UUID.cpp:105
UUID::version
int version()
Definition:
UUID.cpp:109
String
Definition:
String.h:60
Rand64Context
Definition:
ISAAC64Random.h:27
ISAAC64Random.h
UUID::~UUID
~UUID() override=default
UUID::format
char * format(char *buf) const
Definition:
UUID.cpp:120
UUID::fromString
static const UUID fromString(const String &name)
Definition:
UUID.cpp:83
UUID_SIZE
const int UUID_SIZE
Definition:
UUID.h:16
UUID::nameUUIDFromBytes
static const UUID nameUUIDFromBytes(const String &name)
Definition:
UUID.cpp:68
UUID::hashCode
int hashCode() const override
Definition:
UUID.cpp:40
UUID::operator==
bool operator==(const UUID &other) const override
Definition:
UUID.cpp:46
IHashable.h
ICopyable
Definition:
ICopyable.h:8
UUID::UUID
UUID()=default
String.h
UUID::getMostSignificantBits
uint64_t getMostSignificantBits()
Definition:
UUID.cpp:101
TypeDefs.h
Generated by
1.8.13