X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fuuid.hpp;h=9bec2d55ae08f8fe50ae73c726bdaa5bbd31de15;hb=ef4a570db1fbc6ffa5f645e76c4cf25e8098aee1;hp=431490ef28a2ed7c468ef5c9a7b7862e00cd5de9;hpb=c9e313bc594f40a86eed237dce222c0fc99c957f;p=lttng-tools.git diff --git a/src/common/uuid.hpp b/src/common/uuid.hpp index 431490ef2..9bec2d55a 100644 --- a/src/common/uuid.hpp +++ b/src/common/uuid.hpp @@ -9,36 +9,38 @@ #define LTTNG_UUID_H #include + +#include +#include #include #include -#include +#include /* * 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; -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 */