The Micro C++ Library
micxx::traits::Formatter Class Reference

The Formatter class defines an interface to emit potentially nested content. More...

#include <micxx/traits/Formatter.hxx>

Inherited by micxx::XMLFormatter.

List of all members.

Public Member Functions

virtual ~Formatter ()
virtual void clear ()=0
 Reset the internal kept state.
virtual void endElement ()=0
 Close the last element that has not been closed already.
virtual void flush (std::ostream &stream)=0
 If supported, flush the formatted content to the output stream stream.
virtual void startElement (const std::string &name)=0
 Start a new (nested) element with specified name.
virtual void text (const std::string &str)=0
 Format text str (necessary output escaping is done appropriately).
virtual void text (const char *chars)=0
 Format text chars (necessary output escaping is done appropriately).
virtual void text (unsigned long long value)=0
 Format value as text (necessary output escaping is done appropriately).
virtual void text (long long value)=0
 Format value as text (necessary output escaping is done appropriately).
virtual void text (const SYSTEMTIME &systemTime)=0
 Format systemTime as text (necessary output escaping is done appropriately).
virtual Formatteroperator<< (const std::string &plainText)=0
 Format plainText as verbatim text content (no output escaping should be performed in any way)
virtual Formatteroperator<< (const char *plainChars)=0
 Format plainChars as verbatim text content (no output escaping should be performed in any way)

Detailed Description

The Formatter class defines an interface to emit potentially nested content.

Nested content is formatted into nested elements. Each element may have an arbitrary name. A nested element is started, than the content for this element is formatted by either formatting text or by recursively formatting another nested element. Finally each element must be closed properly:

 void foo(micxx::traits::Formatter * formatter)
 {
     formatter->startElement("A");
     formatter->text("Text");
     formatter->startElement("B");   // nested element within A
     formatter->text("Nested Text");
     formatter->endElement();        // close nested element B
     formatter->endElement();        // close element A
     formatter->flush(cout);
 }
Author:
Norbert Klose
Date:
May, 2007

Constructor & Destructor Documentation

virtual micxx::traits::Formatter::~Formatter ( ) [inline, virtual]
{}

Member Function Documentation

virtual void micxx::traits::Formatter::clear ( ) [pure virtual]

Reset the internal kept state.

Implemented in micxx::XMLFormatter.

virtual void micxx::traits::Formatter::endElement ( ) [pure virtual]

Close the last element that has not been closed already.

Implemented in micxx::XMLFormatter.

virtual void micxx::traits::Formatter::flush ( std::ostream &  stream) [pure virtual]

If supported, flush the formatted content to the output stream stream.

Implemented in micxx::XMLFormatter.

virtual Formatter& micxx::traits::Formatter::operator<< ( const char *  plainChars) [pure virtual]

Format plainChars as verbatim text content (no output escaping should be performed in any way)

Implemented in micxx::XMLFormatter.

virtual Formatter& micxx::traits::Formatter::operator<< ( const std::string &  plainText) [pure virtual]

Format plainText as verbatim text content (no output escaping should be performed in any way)

Implemented in micxx::XMLFormatter.

virtual void micxx::traits::Formatter::startElement ( const std::string &  name) [pure virtual]

Start a new (nested) element with specified name.

Implemented in micxx::XMLFormatter.

virtual void micxx::traits::Formatter::text ( const char *  chars) [pure virtual]

Format text chars (necessary output escaping is done appropriately).

Implemented in micxx::XMLFormatter.

virtual void micxx::traits::Formatter::text ( const SYSTEMTIME systemTime) [pure virtual]

Format systemTime as text (necessary output escaping is done appropriately).

Implemented in micxx::XMLFormatter.

virtual void micxx::traits::Formatter::text ( long long  value) [pure virtual]

Format value as text (necessary output escaping is done appropriately).

Implemented in micxx::XMLFormatter.

virtual void micxx::traits::Formatter::text ( const std::string &  str) [pure virtual]

Format text str (necessary output escaping is done appropriately).

Implemented in micxx::XMLFormatter.

virtual void micxx::traits::Formatter::text ( unsigned long long  value) [pure virtual]

Format value as text (necessary output escaping is done appropriately).

Implemented in micxx::XMLFormatter.


The documentation for this class was generated from the following file: