- fix UUID generation on Android
This commit is contained in:
parent
2c2167c840
commit
caf1283f0a
|
|
@ -3,7 +3,10 @@
|
|||
#include <random>
|
||||
#include <span>
|
||||
|
||||
#if defined(TARGET_LINUX)
|
||||
#define UUID_SYSTEM_GENERATOR
|
||||
#endif
|
||||
|
||||
#include "uuid.h"
|
||||
|
||||
Uuid::Uuid()
|
||||
|
|
@ -14,8 +17,18 @@ Uuid::Uuid()
|
|||
Uuid Uuid::generateOne()
|
||||
{
|
||||
Uuid result;
|
||||
|
||||
#if defined(TARGET_LINUX)
|
||||
auto id = uuids::uuid_system_generator{}();
|
||||
#else
|
||||
std::random_device rd;
|
||||
auto seed_data = std::array<int, std::mt19937::state_size> {};
|
||||
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
|
||||
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
|
||||
std::mt19937 generator(seq);
|
||||
uuids::uuid_random_generator gen{generator};
|
||||
|
||||
auto id = gen();
|
||||
#endif
|
||||
memcpy(result.mUuid, id.as_bytes().data(), id.as_bytes().size_bytes());
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue