]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Formatter: add XMLFormatter::reset
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Tue, 2 Aug 2011 22:16:12 +0000 (15:16 -0700)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Tue, 2 Aug 2011 22:26:41 +0000 (15:26 -0700)
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
src/common/Formatter.cc
src/common/Formatter.h

index 9b3881661093812014890cd235819b0b492ed2cc..be0d70335d0429a8363a0c4918f63439fb602b39 100644 (file)
@@ -37,6 +37,12 @@ Formatter::~Formatter()
 }
 
 // -----------------------
+JSONFormatter::JSONFormatter(bool p)
+  : m_pretty(p), m_is_pending_string(false)
+{
+  reset();
+}
+
 void JSONFormatter::flush(std::ostream& os)
 {
   finish_pending_string();
@@ -116,11 +122,6 @@ void JSONFormatter::open_section(const char *name, bool is_array)
   m_stack.push_back(n);
 }
 
-JSONFormatter::JSONFormatter(bool p)
-  : m_pretty(p), m_is_pending_string(false)
-{
-}
-
 void JSONFormatter::open_array_section(const char *name)
 {
   open_section(name, true);
@@ -197,6 +198,7 @@ void JSONFormatter::dump_format(const char *name, const char *fmt, ...)
 XMLFormatter::XMLFormatter(bool p)
   : m_pretty(p)
 {
+  reset();
 }
 
 void XMLFormatter::flush(std::ostream& os)
@@ -207,6 +209,14 @@ void XMLFormatter::flush(std::ostream& os)
   m_ss.clear();
 }
 
+void XMLFormatter::reset()
+{
+  m_ss.clear();
+  m_pending_string.clear();
+  m_sections.clear();
+  m_pending_string_name.clear();
+}
+
 void XMLFormatter::open_array_section(const char *name)
 {
   open_section(name);
index faa1d00e8ba59b7c89b9ee6d0065f22e40c27fb2..2760cace109d7f3ccfd070e666c1cd04567cde93 100644 (file)
@@ -18,6 +18,7 @@ class Formatter {
   virtual ~Formatter();
 
   virtual void flush(std::ostream& os) = 0;
+  virtual void reset() = 0;
 
   virtual void open_array_section(const char *name) = 0;
   virtual void open_object_section(const char *name) = 0;
@@ -71,6 +72,7 @@ class XMLFormatter : public Formatter {
   XMLFormatter(bool p=false);
 
   void flush(std::ostream& os);
+  void reset();
   void open_array_section(const char *name);
   void open_object_section(const char *name);
   void close_section();