]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
log: Add StringEntry to avoid using ostream
authorAdam C. Emerson <aemerson@redhat.com>
Wed, 25 Feb 2026 15:30:53 +0000 (10:30 -0500)
committerAdam C. Emerson <aemerson@redhat.com>
Tue, 21 Jul 2026 21:55:08 +0000 (17:55 -0400)
Create a log entry where we can fill a buffer with `format` instead of
needing to go through stringstream.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
src/log/Entry.h

index 6bba9707c430285e13eb29d9476a98dd5ad0a19d..33c535ce31615a3a8ac0e9dd672c753e76e21529 100644 (file)
@@ -117,6 +117,32 @@ private:
   boost::container::small_vector<char, 1024> str;
 };
 
+class StringEntry : public Entry {
+public:
+  StringEntry() = delete;
+  StringEntry(short pr, short sub, std::string_view prefix)
+      : Entry(pr, sub), str(prefix.begin(), prefix.end()) {}
+  ~StringEntry() override = default;
+
+  StringEntry(const StringEntry&) = default;
+  StringEntry& operator=(const StringEntry&) = default;
+  StringEntry(StringEntry&&) = default;
+  StringEntry& operator=(StringEntry&&) = default;
+
+  std::string_view strv() const override {
+    return std::string_view(str.data(), str.size());
+  }
+  std::size_t size() const override {
+    return str.size();
+  }
+
+  auto get_inserter() {
+    return std::back_inserter(str);
+  }
+
+private:
+  boost::container::small_vector<char, 1024> str;
+};
 }
 }