]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
include/uuid: un-inline methods to reduce header dependencies
authorMax Kellermann <max.kellermann@ionos.com>
Fri, 25 Oct 2024 11:09:24 +0000 (13:09 +0200)
committerMax Kellermann <max.kellermann@ionos.com>
Tue, 5 Aug 2025 08:28:01 +0000 (10:28 +0200)
Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
src/CMakeLists.txt
src/crimson/CMakeLists.txt
src/include/uuid.cc
src/include/uuid.h
src/tools/ceph-dencoder/CMakeLists.txt

index b4a467ef129b522267a2728c370d263db674a55e..edc60ddcc7f1eea3c0b80a77c7aead2c494a0dc3 100644 (file)
@@ -502,6 +502,7 @@ set(libcommon_files
   xxHash/xxhash.c
   include/invoke_date.cc
   include/utime.cc
+  include/uuid.cc
   common/error_code.cc
   common/tracer.cc
   log/Log.cc
index 46c6aa54e5c539b28fa213b49f8a4c3a07c3984a..df0daaf3df87ced441bb98bacb6f9dd0b7237c70 100644 (file)
@@ -98,6 +98,7 @@ add_library(crimson-common STATIC
   ${PROJECT_SOURCE_DIR}/src/global/global_context.cc
   ${PROJECT_SOURCE_DIR}/src/global/pidfile.cc
   ${PROJECT_SOURCE_DIR}/src/include/utime.cc
+  ${PROJECT_SOURCE_DIR}/src/include/uuid.cc
   ${PROJECT_SOURCE_DIR}/src/librbd/Features.cc
   ${PROJECT_SOURCE_DIR}/src/librbd/io/IoOperations.cc
   ${PROJECT_SOURCE_DIR}/src/mgr/ServiceMap.cc
index 106fc1db586c84836a3d7738029ae82c7fc142a9..86fd49e277d86bfa0e9a3e23d6a74ebb7216206f 100644 (file)
  */
 
 #include "uuid.h"
+#include "random.h"
 #include "common/Formatter.h"
 
+#include <boost/uuid/random_generator.hpp>
+#include <boost/uuid/string_generator.hpp>
+#include <boost/uuid/uuid_io.hpp>
+
+#include <random>
+
+void uuid_d::generate_random() {
+  random_device_t rng;
+  boost::uuids::basic_random_generator gen(rng);
+  uuid = gen();
+}
+
+bool uuid_d::parse(const char *s) {
+  try {
+    boost::uuids::string_generator gen;
+    uuid = gen(s);
+    return true;
+  } catch (std::runtime_error& e) {
+    return false;
+  }
+}
+
+void uuid_d::print(char *s) const {
+  memcpy(s, boost::uuids::to_string(uuid).c_str(), 37);
+}
+
+std::string uuid_d::to_string() const {
+  return boost::uuids::to_string(uuid);
+}
+
 void uuid_d::dump(ceph::Formatter *f) const
 {
   f->dump_stream("uuid") << to_string();
index 2544df97269106071f5b295b3196ba99dba2e655..37da5a06241c0ef7c79f21ef607ed20c4b61f2a6 100644 (file)
@@ -7,16 +7,14 @@
  */
 
 #include "encoding.h"
-#include "random.h"
 
 #include <ostream>
-#include <random>
 
 #include <boost/uuid/uuid.hpp>
-#include <boost/uuid/uuid_generators.hpp>
-#include <boost/uuid/uuid_io.hpp>
+#include <boost/uuid/nil_generator.hpp>
 #include <boost/version.hpp>
 
+#include <fmt/core.h> // for FMT_VERSION
 #if FMT_VERSION >= 90000
 #include <fmt/ostream.h>
 #endif
@@ -37,28 +35,12 @@ struct uuid_d {
     return uuid.is_nil();
   }
 
-  void generate_random() {
-    random_device_t rng;
-    boost::uuids::basic_random_generator gen(rng);
-    uuid = gen();
-  }
+  void generate_random();
   
-  bool parse(const char *s) {
-    try {
-      boost::uuids::string_generator gen;
-      uuid = gen(s);
-      return true;
-    } catch (std::runtime_error& e) {
-      return false;
-    }
-  }
-  void print(char *s) const {
-    memcpy(s, boost::uuids::to_string(uuid).c_str(), 37);
-  }
+  bool parse(const char *s);
+  void print(char *s) const;
 
- std::string to_string() const {
-    return boost::uuids::to_string(uuid);
-  }
+  std::string to_string() const;
 
   const char *bytes() const {
 #if BOOST_VERSION >= 108600
index 1b7bbbf3dbccab84177cdf31b181a12888ae858c..32f7f11d63bcc21d9da1d9759ff0c11e2840e919 100644 (file)
@@ -10,7 +10,6 @@ endif()
 
 set(dencoder_srcs
   ceph_dencoder.cc
-  ../../include/uuid.cc
   $<TARGET_OBJECTS:common_texttable_obj>)
 add_executable(ceph-dencoder ${dencoder_srcs})
 set_target_properties(ceph-dencoder PROPERTIES
@@ -37,7 +36,6 @@ function(add_denc_mod name)
 endfunction()
 
 add_denc_mod(denc-mod-common
-  ../../include/uuid.cc
   common_types.cc)
 target_link_libraries(denc-mod-common
   ceph-common