]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common: make uuid_d dencoder-compatible
authorGreg Farnum <gfarnum@redhat.com>
Fri, 26 Apr 2019 05:25:31 +0000 (22:25 -0700)
committerGreg Farnum <gfarnum@redhat.com>
Fri, 26 Apr 2019 08:34:36 +0000 (01:34 -0700)
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
src/include/uuid.cc [new file with mode: 0644]
src/include/uuid.h
src/tools/ceph-dencoder/CMakeLists.txt

diff --git a/src/include/uuid.cc b/src/include/uuid.cc
new file mode 100644 (file)
index 0000000..2d1eb19
--- /dev/null
@@ -0,0 +1,40 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+/*
+ * Ceph - scalable distributed file system
+ *
+ * Copyright (C) 2019 Red Hat
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software
+ * Foundation.  See file COPYING.
+ *
+ */
+
+#include "uuid.h"
+#include "common/Formatter.h"
+
+void uuid_d::dump(ceph::Formatter *f) const
+{
+  f->open_object_section("uuid_d");
+  {
+    f->dump_stream("uuid") << to_string();
+  }
+  f->close_section();
+}
+
+void uuid_d::generate_test_instances(std::list<uuid_d*>& o)
+{
+  // these are sourced from examples at
+  // https://www.boost.org/doc/libs/1_62_0/libs/uuid/uuid.html#Synopsis_generators
+  boost::uuids::string_generator gen;
+  o.push_back(new uuid_d());
+  o.back()->uuid = gen("{01234567-89ab-cdef-0123-456789abcdef}");
+  o.push_back(new uuid_d());
+  o.back()->uuid = gen(L"01234567-89ab-cdef-0123-456789abcdef");
+  o.push_back(new uuid_d());
+  o.back()->uuid = gen(std::string("0123456789abcdef0123456789abcdef"));
+  o.push_back(new uuid_d());
+  o.back()->uuid = gen(std::wstring(L"01234567-89ab-cdef-0123-456789abcdef"));
+}
index a28b90e2b798c1f03b38da1ed61ffaa6e21e9bfb..bee66c36fa38f155d9edd50cef0f0c033ee8bac6 100644 (file)
 #include <boost/uuid/uuid_generators.hpp>
 #include <boost/uuid/uuid_io.hpp>
 
+namespace ceph {
+  class Formatter;
+}
+
 struct uuid_d {
   boost::uuids::uuid uuid;
 
@@ -61,6 +65,9 @@ struct uuid_d {
   void decode(ceph::buffer::list::const_iterator& p) const {
     ceph::decode_raw(uuid, p);
   }
+
+  void dump(ceph::Formatter *f) const;
+  static void generate_test_instances(std::list<uuid_d*>& o);
 };
 WRITE_CLASS_ENCODER(uuid_d)
 
index 14370d557a848895c01b7d14369fb2b7ef6a6d2b..bdaf07851420a856767038b5677d4e44f473465b 100644 (file)
@@ -10,6 +10,7 @@ endif()
 
 set(dencoder_srcs
   ceph_dencoder.cc
+  ../../include/uuid.cc
   $<TARGET_OBJECTS:common_texttable_obj>)
 if(WITH_RADOSGW)
   list(APPEND dencoder_srcs