aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Sandy <msandy@google.com>2023-10-04 21:30:02 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-10-04 21:30:02 +0000
commit2a43f726c4b901c30d3f3d09c5e448683158d0a7 (patch)
treed525ca1fb098af8336132b90711cf8f92f236bfb
parentcc35158691c5439e031eda2512268096b123efbd (diff)
parent38c6446cee0a8f0bf38866b7d2d3316082e0903a (diff)
downloadaemu-2a43f726c4b901c30d3f3d09c5e448683158d0a7.tar.gz
Use Win32 API for UUID generation. am: 7d913617cf am: 38c6446cee
Original change: https://android-review.googlesource.com/c/platform/hardware/google/aemu/+/2763111 Change-Id: I94c4218b27a8df07e0ac31b60ffbae263cf9068f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--base/include/aemu/base/testing/TestTempDir.h41
1 files changed, 11 insertions, 30 deletions
diff --git a/base/include/aemu/base/testing/TestTempDir.h b/base/include/aemu/base/testing/TestTempDir.h
index f2fdac3..96a60eb 100644
--- a/base/include/aemu/base/testing/TestTempDir.h
+++ b/base/include/aemu/base/testing/TestTempDir.h
@@ -39,6 +39,10 @@
#include <unistd.h>
#endif
+#if defined(_MSC_VER) || defined(_WIN32)
+#include <rpc.h>
+#endif
+
namespace android {
namespace base {
@@ -53,38 +57,15 @@ namespace base {
// } // destructor removes temp directory and all files under it.
#ifdef _MSC_VER
-// From https://stackoverflow.com/questions/24365331/how-can-i-generate-uuid-in-c-without-using-boost-library
namespace uuid {
- static std::random_device rd;
- static std::mt19937 gen(rd());
- static std::uniform_int_distribution<> dis(0, 15);
- static std::uniform_int_distribution<> dis2(8, 11);
-
static inline std::string generate_uuid_v4() {
- std::stringstream ss;
- int i;
- ss << std::hex;
- for (i = 0; i < 8; i++) {
- ss << dis(gen);
- }
- ss << "-";
- for (i = 0; i < 4; i++) {
- ss << dis(gen);
- }
- ss << "-4";
- for (i = 0; i < 3; i++) {
- ss << dis(gen);
- }
- ss << "-";
- ss << dis2(gen);
- for (i = 0; i < 3; i++) {
- ss << dis(gen);
- }
- ss << "-";
- for (i = 0; i < 12; i++) {
- ss << dis(gen);
- };
- return ss.str();
+ UUID uuid{};
+ UuidCreate(&uuid);
+ RPC_CSTR str{};
+ UuidToStringA(&uuid, &str);
+ std::string ret = reinterpret_cast<char*>(str);
+ RpcStringFreeA(&str);
+ return ret;
}
}
#endif