aboutsummaryrefslogtreecommitdiff
path: root/source/10-common/Uid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/10-common/Uid.cpp')
-rw-r--r--source/10-common/Uid.cpp70
1 files changed, 0 insertions, 70 deletions
diff --git a/source/10-common/Uid.cpp b/source/10-common/Uid.cpp
deleted file mode 100644
index 58dfffd..0000000
--- a/source/10-common/Uid.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-#include "Uid.hpp"
-
-#include "RapidJsonHelper.hpp"
-
-#include <rapidjson/document.h>
-#include <cstring>
-#include <random>
-
-Uid Uid::Create() {
- std::random_device rd;
- std::mt19937_64 gen(rd());
- std::uniform_int_distribution<uint64_t> dist(
- std::numeric_limits<uint64_t>::min(),
- std::numeric_limits<uint64_t>::max());
-
- Uid uid;
- uid.upper = dist(gen);
- uid.lower = dist(gen);
- return uid;
-}
-
-bool Uid::IsNull() const {
- return upper == 0 && lower == 0;
-}
-
-void Uid::ReadString(std::string_view str) {
- sscanf(str.data(), BRUSSEL_Uid_SCAN_STR, &upper, &lower);
-}
-
-std::string Uid::WriteString() {
- char buf[256];
- snprintf(buf, sizeof(buf), BRUSSEL_Uid_FORMAT_STR, upper, lower);
- return std::string(buf);
-}
-
-void Uid::Read(const rapidjson::Value& value) {
- if (value.IsString()) {
- ReadString(rapidjson::AsStringView(value));
- } else if (value.IsArray()) {
- // Compatibility support
- assert(value.Size() == 2);
- auto& upper = value[0];
- assert(upper.IsUint64());
- auto& lower = value[1];
- assert(lower.IsUint64());
-
- this->upper = upper.GetUint64();
- this->lower = lower.GetUint64();
- } else {
- assert(false);
- }
-}
-
-void Uid::WriteInto(rapidjson::Value& value, rapidjson::Document& root) const {
-#if BRUSSEL_Uid_WRITE_USE_ARRAY
- value.Reserve(2, root.GetAllocator());
- value.PushBack((uint64_t)upper, root.GetAllocator());
- value.PushBack((uint64_t)lower, root.GetAllocator());
-#else
- char buf[256];
- int len = snprintf(buf, sizeof(buf), BRUSSEL_Uid_FORMAT_STR, upper, lower);
- value.SetString(buf, len, root.GetAllocator());
-#endif
-}
-
-rapidjson::Value Uid::Write(rapidjson::Document& root) const {
- rapidjson::Value result(rapidjson::kArrayType);
- WriteInto(result, root);
- return result;
-}