.gitignore: ignore local vscode workspace settings file
[lttng-tools.git] / src / common / uuid.hpp
index 431490ef28a2ed7c468ef5c9a7b7862e00cd5de9..9bec2d55ae08f8fe50ae73c726bdaa5bbd31de15 100644 (file)
@@ -9,36 +9,38 @@
 #define LTTNG_UUID_H
 
 #include <common/macros.hpp>
+
+#include <array>
+#include <inttypes.h>
 #include <stdbool.h>
 #include <stdint.h>
-#include <inttypes.h>
+#include <string>
 
 /*
  * Includes final \0.
  */
-#define LTTNG_UUID_STR_LEN     37
-#define LTTNG_UUID_LEN         16
-#define LTTNG_UUID_VER         4
+#define LTTNG_UUID_STR_LEN 37
+#define LTTNG_UUID_LEN    16
+#define LTTNG_UUID_VER    4
 
-#define LTTNG_UUID_FMT \
-       "%02" SCNx8 "%02" SCNx8 "%02" SCNx8 "%02" SCNx8 "-%02" SCNx8 \
-       "%02" SCNx8 "-%02" SCNx8 "%02" SCNx8 "-%02" SCNx8 "%02" SCNx8 \
-       "-%02" SCNx8 "%02" SCNx8 "%02" SCNx8 "%02" SCNx8 "%02" SCNx8 \
-       "%02" SCNx8
+#define LTTNG_UUID_FMT                                                                        \
+       "%02" SCNx8 "%02" SCNx8 "%02" SCNx8 "%02" SCNx8 "-%02" SCNx8 "%02" SCNx8 "-%02" SCNx8 \
+       "%02" SCNx8 "-%02" SCNx8 "%02" SCNx8 "-%02" SCNx8 "%02" SCNx8 "%02" SCNx8 "%02" SCNx8 \
+       "%02" SCNx8 "%02" SCNx8
 
-#define LTTNG_UUID_FMT_VALUES(uuid) \
-       (uuid)[0], (uuid)[1], (uuid)[2], (uuid)[3], (uuid)[4], (uuid)[5], \
-       (uuid)[6], (uuid)[7], (uuid)[8], (uuid)[9], (uuid)[10], (uuid)[11], \
-       (uuid)[12], (uuid)[13], (uuid)[14], (uuid)[15]
+#define LTTNG_UUID_FMT_VALUES(uuid)                                                               \
+       (uuid)[0], (uuid)[1], (uuid)[2], (uuid)[3], (uuid)[4], (uuid)[5], (uuid)[6], (uuid)[7],   \
+               (uuid)[8], (uuid)[9], (uuid)[10], (uuid)[11], (uuid)[12], (uuid)[13], (uuid)[14], \
+               (uuid)[15]
 
-#define LTTNG_UUID_SCAN_VALUES(uuid) \
-       &(uuid)[0], &(uuid)[1], &(uuid)[2], &(uuid)[3], &(uuid)[4], &(uuid)[5], \
-       &(uuid)[6], &(uuid)[7], &(uuid)[8], &(uuid)[9], &(uuid)[10], &(uuid)[11], \
-       &(uuid)[12], &(uuid)[13], &(uuid)[14], &(uuid)[15]
+#define LTTNG_UUID_SCAN_VALUES(uuid)                                                        \
+       &(uuid)[0], &(uuid)[1], &(uuid)[2], &(uuid)[3], &(uuid)[4], &(uuid)[5], &(uuid)[6], \
+               &(uuid)[7], &(uuid)[8], &(uuid)[9], &(uuid)[10], &(uuid)[11], &(uuid)[12],  \
+               &(uuid)[13], &(uuid)[14], &(uuid)[15]
 
-typedef uint8_t lttng_uuid[LTTNG_UUID_LEN];
+using lttng_uuid = std::array<uint8_t, LTTNG_UUID_LEN>;
 
-int lttng_uuid_from_str(const char *str_in, lttng_uuid uuid_out);
+int lttng_uuid_from_str(const char *str_in, lttng_uuid& uuid_out);
 
 /*
  * Convert a UUID to a human-readable, NULL-terminated, string of the form
@@ -46,17 +48,21 @@ int lttng_uuid_from_str(const char *str_in, lttng_uuid uuid_out);
  *
  * Assumes uuid_str is at least LTTNG_UUID_STR_LEN byte long.
  */
-void lttng_uuid_to_str(const lttng_uuid uuid, char *uuid_str);
+void lttng_uuid_to_str(const lttng_uuid& uuid, char *uuid_str);
 
-bool lttng_uuid_is_equal(const lttng_uuid a, const lttng_uuid b);
+namespace lttng {
+namespace utils {
+std::string uuid_to_str(const lttng_uuid& uuid);
+} /* namespace utils */
+} /* namespace lttng */
 
-bool lttng_uuid_is_nil(const lttng_uuid uuid);
+bool lttng_uuid_is_equal(const lttng_uuid& a, const lttng_uuid& b);
 
-void lttng_uuid_copy(lttng_uuid dst, const lttng_uuid src);
+bool lttng_uuid_is_nil(const lttng_uuid& uuid);
 
 /*
  * Generate a random UUID according to RFC4122, section 4.4.
  */
-int lttng_uuid_generate(lttng_uuid uuid_out);
+int lttng_uuid_generate(lttng_uuid& uuid_out);
 
 #endif /* LTTNG_UUID_H */
This page took 0.025589 seconds and 4 git commands to generate.