lestes::msg::formatter_factory Class Reference

#include <logger_util.hh>

Inheritance diagram for lestes::msg::formatter_factory:

object List of all members.

Static Public Member Functions

static ptr< logger_formattercreate_formatter (lstring name, lstring parameter)

Private Member Functions

 formatter_factory (const formatter_factory &)

Detailed Description

Definition at line 84 of file logger_util.hh.


Constructor & Destructor Documentation

lestes::msg::formatter_factory::formatter_factory ( const formatter_factory  )  [private]


Member Function Documentation

ptr< logger_formatter > lestes::msg::formatter_factory::create_formatter ( lstring  name,
lstring  parameter 
) [static]

Definition at line 66 of file logger_util.cc.

References lestes::msg::conjunct_formatter::create(), lestes::msg::color_formatter::create(), and lestes::msg::plain_formatter::instance().

Referenced by lestes::msg::logger_configurator::configure().

00067 {
00068         if (name == "color" || name == "colorific")
00069                 return color_formatter::create(parameter);
00070         else if (name == "simple" || name == "plain" || name == "")
00071                 return plain_formatter::instance();
00072         else if (name == "shortname")
00073                 return ::lestes::msg::shortname_formatter::instance();
00074         else if (name == "fullname")
00075                 return ::lestes::msg::fullname_formatter::instance();
00076         else if (name[0] == '(') {
00077                 bool is_parameter_list = parameter[0] == '(';
00078                 lstring::size_type sz = 1, psz = is_parameter_list;
00079                 lstring::size_type nsz, npsz = parameter.size();
00080                 ptr < logger_formatter > lf = NULL;
00081                 for ( ; (nsz = name.find_first_of(" )", sz)) != lstring::npos ; sz = nsz+1) {
00082                         lstring formater = name.substr(sz,nsz - sz);
00083                         lstring param;
00084                         ptr < logger_formatter > nlf;
00085                         if (is_parameter_list) {
00086                                 npsz = parameter.find_first_of(" )",psz);
00087                                 if (npsz != lstring::npos) {
00088                                         param = parameter.substr(psz,npsz-psz);
00089                                         psz = npsz + 1;
00090                                 } else
00091                                         param = "";
00092                         } else
00093                                 param = parameter;
00094 
00095                         nlf = create_formatter(formater, param);
00096 
00097                         if (lf)
00098                                 lf = conjunct_formatter::create(lf, nlf);
00099                         else
00100                                 lf = nlf;
00101                 }
00102                 return lf;
00103         }
00104         /*else if (name == "xml")
00105                 return xml_formatter(parameter); */
00106         ::std::cerr << "unknown formatter (" << name << ")" << ::std::endl;
00107         return plain_formatter::instance();
00108 }


The documentation for this class was generated from the following files:
Generated on Mon Feb 12 18:25:54 2007 for lestes by doxygen 1.5.1-20070107