Browse Source

Return direct object from format factory.

Sam Jaffe 5 years ago
parent
commit
3b7142c292

+ 1 - 1
src/loggers/pattern_layout.cxx

@@ -45,7 +45,7 @@ std::shared_ptr<layout> pattern_layout::create(properties const & props) {
 }
 
 pattern_layout::pattern_layout(properties const & props)
-: formatter(format::parse_format_string(props["pattern"])),
+: formatter(format_factory(props["pattern"]).create()),
   header_(props["header"]),
   footer_(props["footer"])
 {

+ 3 - 1
src/loggers/pattern_layout.h

@@ -23,9 +23,11 @@ namespace logging {
     std::vector<generator> gen;
     
   public:
-    static format parse_format_string(std::string const &);
     void process(logpacket const & pkt, std::ostream & os) const;
     std::string process(logpacket const & pkt) const;
+    
+  private:
+    format(std::vector<generator> const & gen) : gen(gen) {}
   };
   
   class format_factory {

+ 1 - 7
src/loggers/pattern_layout_format.cxx

@@ -223,19 +223,13 @@ namespace logging {
       append<literal_gen>(std::string(curr_, end_));
     }
     
-    format out;
-    out.gen = generators_;
-    return out;
+    return format(generators_);
   }
   
   format_factory::format_factory(std::string const & fmt)
     : data_string_(fmt), curr_(data_string_.c_str()),
       end_(curr_ + data_string_.size()){}
 
-  format format::parse_format_string(std::string const & fmt) {
-    return format_factory(fmt).create();
-  }
-
   void format::process(logpacket const & pkt, std::ostream & os) const {
     for (auto func : gen) { func->write(pkt, os); }
   }