]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson: extract formatter for time_point types 33849/head
authorKefu Chai <kchai@redhat.com>
Tue, 10 Mar 2020 11:41:19 +0000 (19:41 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 10 Mar 2020 16:16:55 +0000 (00:16 +0800)
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/CMakeLists.txt
src/crimson/common/formatter.cc [new file with mode: 0644]
src/crimson/common/formatter.h [new file with mode: 0644]
src/crimson/net/ProtocolV2.cc

index 224deb55de9aa46f8b90947e326a9745f0629520..e29bb98b37808344b5aeea84e82212c4727606d4 100644 (file)
@@ -14,10 +14,11 @@ set_target_properties(crimson::cflags PROPERTIES
 set(crimson_common_srcs
   admin/admin_socket.cc
   admin/osd_admin.cc
+  common/assert.cc
   common/buffer_io.cc
   common/config_proxy.cc
+  common/formatter.cc
   common/perf_counters_collection.cc
-  common/assert.cc
   common/log.cc)
 
 # the specialized version of ceph-common, where
diff --git a/src/crimson/common/formatter.cc b/src/crimson/common/formatter.cc
new file mode 100644 (file)
index 0000000..6772162
--- /dev/null
@@ -0,0 +1,64 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+
+#include "formatter.h"
+
+#include <fmt/format.h>
+#if FMT_VERSION >= 60000
+#include <fmt/chrono.h>
+#else
+#include <fmt/time.h>
+#endif
+
+
+template <>
+struct fmt::formatter<seastar::lowres_system_clock::time_point> {
+  // ignore the format string
+  template <typename ParseContext>
+  constexpr auto parse(ParseContext &ctx) { return ctx.begin(); }
+
+  template <typename FormatContext>
+  auto format(const seastar::lowres_system_clock::time_point& t,
+              FormatContext& ctx) {
+    std::time_t tt = std::chrono::duration_cast<std::chrono::seconds>(
+      t.time_since_epoch()).count();
+    auto milliseconds = (t.time_since_epoch() %
+                         std::chrono::seconds(1)).count();
+    return fmt::format_to(ctx.out(), "{:%Y-%m-%d %H:%M:%S} {:03d}",
+                          fmt::localtime(tt), milliseconds);
+  }
+};
+
+template <>
+struct fmt::formatter<ceph::coarse_real_clock::time_point> {
+  // ignore the format string
+  template <typename ParseContext>
+  constexpr auto parse(ParseContext &ctx) { return ctx.begin(); }
+
+  template <typename FormatContext>
+  auto format(const ceph::coarse_real_clock::time_point& t,
+              FormatContext& ctx) {
+    std::time_t tt = std::chrono::duration_cast<std::chrono::seconds>(
+      t.time_since_epoch()).count();
+    auto milliseconds = (t.time_since_epoch() %
+                         std::chrono::seconds(1)).count();
+    return fmt::format_to(ctx.out(), "{:%Y-%m-%d %H:%M:%S} {:03d}",
+                          fmt::localtime(tt), milliseconds);
+  }
+};
+
+namespace std {
+
+ostream& operator<<(ostream& out,
+                    const seastar::lowres_system_clock::time_point& t)
+{
+  return out << fmt::format("{}", t);
+}
+
+ostream& operator<<(ostream& out,
+                    const ceph::coarse_real_clock::time_point& t)
+{
+  return out << fmt::format("{}", t);
+}
+
+}
diff --git a/src/crimson/common/formatter.h b/src/crimson/common/formatter.h
new file mode 100644 (file)
index 0000000..1775b09
--- /dev/null
@@ -0,0 +1,15 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+
+#include <seastar/core/lowres_clock.hh>
+
+#include "common/ceph_time.h"
+
+namespace std {
+
+ostream& operator<<(ostream& out,
+                    const seastar::lowres_system_clock::time_point& t);
+ostream& operator<<(ostream& out,
+                    const ceph::coarse_real_clock::time_point& t);
+
+}
index 2535584bb6efbb4a5c0d255c2c5614617099fa61..befbaa5862e4516e5cf90c80876df41ff037eb1e 100644 (file)
@@ -5,16 +5,12 @@
 
 #include <seastar/core/lowres_clock.hh>
 #include <fmt/format.h>
-#if FMT_VERSION >= 60000
-#include <fmt/chrono.h>
-#else
-#include <fmt/time.h>
-#endif
 #include "include/msgr.h"
 #include "include/random.h"
 
 #include "crimson/auth/AuthClient.h"
 #include "crimson/auth/AuthServer.h"
+#include "crimson/common/formatter.h"
 
 #include "Config.h"
 #include "Dispatcher.h"
@@ -99,32 +95,6 @@ inline uint64_t generate_client_cookie() {
 
 } // namespace anonymous
 
-template <>
-struct fmt::formatter<seastar::lowres_system_clock::time_point> {
-  // ignore the format string
-  template <typename ParseContext>
-  constexpr auto parse(ParseContext &ctx) { return ctx.begin(); }
-
-  template <typename FormatContext>
-  auto format(const seastar::lowres_system_clock::time_point& t,
-             FormatContext& ctx) {
-    std::time_t tt = std::chrono::duration_cast<std::chrono::seconds>(
-      t.time_since_epoch()).count();
-    auto milliseconds = (t.time_since_epoch() %
-                        std::chrono::seconds(1)).count();
-    return fmt::format_to(ctx.out(), "{:%Y-%m-%d %H:%M:%S} {:03d}",
-                         fmt::localtime(tt), milliseconds);
-  }
-};
-
-namespace std {
-inline ostream& operator<<(
-  ostream& out, const seastar::lowres_system_clock::time_point& t)
-{
-  return out << fmt::format("{}", t);
-}
-}
-
 namespace crimson::net {
 
 #ifdef UNIT_TESTS_BUILT