MCPcopy Create free account
hub / github.com/chronoxor/CppServer / random

Method random

proto/fbe.cpp:214–262  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

212}
213
214uuid_t uuid_t::random()
215{
216 uuid_t result;
217#if defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__)
218 ::uuid_t uuid;
219 uuid_generate_random(uuid);
220 result._data[0] = uuid[0];
221 result._data[1] = uuid[1];
222 result._data[2] = uuid[2];
223 result._data[3] = uuid[3];
224 result._data[4] = uuid[4];
225 result._data[5] = uuid[5];
226 result._data[6] = uuid[6];
227 result._data[7] = uuid[7];
228 result._data[8] = uuid[8];
229 result._data[9] = uuid[9];
230 result._data[10] = uuid[10];
231 result._data[11] = uuid[11];
232 result._data[12] = uuid[12];
233 result._data[13] = uuid[13];
234 result._data[14] = uuid[14];
235 result._data[15] = uuid[15];
236#elif defined(_WIN32) || defined(_WIN64)
237 ::UUID uuid;
238 if (UuidCreate(&uuid) != RPC_S_OK)
239 throw std::runtime_error("Cannot generate random UUID!");
240
241 result._data[0] = (uuid.Data1 >> 24) & 0xFF;
242 result._data[1] = (uuid.Data1 >> 16) & 0xFF;
243 result._data[2] = (uuid.Data1 >> 8) & 0xFF;
244 result._data[3] = (uuid.Data1 >> 0) & 0xFF;
245 result._data[4] = (uuid.Data2 >> 8) & 0xFF;
246 result._data[5] = (uuid.Data2 >> 0) & 0xFF;
247
248 result._data[6] = (uuid.Data3 >> 8) & 0xFF;
249 result._data[7] = (uuid.Data3 >> 0) & 0xFF;
250
251 result._data[8] = uuid.Data4[0];
252 result._data[9] = uuid.Data4[1];
253
254 result._data[10] = uuid.Data4[2];
255 result._data[11] = uuid.Data4[3];
256 result._data[12] = uuid.Data4[4];
257 result._data[13] = uuid.Data4[5];
258 result._data[14] = uuid.Data4[6];
259 result._data[15] = uuid.Data4[7];
260#endif
261 return result;
262}
263
264#if defined(LOGGING_PROTOCOL)
265CppLogging::Record& operator<<(CppLogging::Record& record, const uuid_t& uuid)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected