SUMO - Simulation of Urban MObility
PlainXMLFormatter Class Reference

Output formatter for plain XML output. More...

#include <PlainXMLFormatter.h>

Inheritance diagram for PlainXMLFormatter:
OutputFormatter

Public Member Functions

void closeOpener (std::ostream &into)
 Ends the most recently opened element start.
bool closeTag (std::ostream &into, bool abbreviated=false)
 Closes the most recently opened tag.
void openTag (std::ostream &into, const std::string &xmlElement)
 Opens an XML tag.
void openTag (std::ostream &into, const SumoXMLTag &xmlElement)
 Opens an XML tag.
 PlainXMLFormatter (const unsigned int defaultIndentation=0)
 Constructor.
void writeAttr (std::ostream &into, const std::string &attr, const std::string &val)
 writes an arbitrary attribute
bool writeXMLHeader (std::ostream &into, const std::string &rootElement, const std::string xmlParams="", const std::string &attrs="", const std::string &comment="")
 Writes an XML header with optional configuration.
virtual ~PlainXMLFormatter ()
 Destructor.

Static Public Member Functions

template<class T >
static void writeAttr (std::ostream &into, const SumoXMLAttr attr, const T &val)
 writes a named attribute

Private Attributes

unsigned int myDefaultIndentation
 The initial indentation level.
std::vector< std::string > myXMLStack
 The stack of begun xml elements.

Detailed Description

Output formatter for plain XML output.

PlainXMLFormatter format XML like output into the output stream.

Definition at line 45 of file PlainXMLFormatter.h.


Constructor & Destructor Documentation

PlainXMLFormatter::PlainXMLFormatter ( const unsigned int  defaultIndentation = 0)

Constructor.

Definition at line 43 of file PlainXMLFormatter.cpp.

virtual PlainXMLFormatter::~PlainXMLFormatter ( ) [inline, virtual]

Destructor.

Definition at line 52 of file PlainXMLFormatter.h.


Member Function Documentation

void PlainXMLFormatter::closeOpener ( std::ostream &  into) [virtual]

Ends the most recently opened element start.

Writes more or less nothing but ">" and a line feed.

Parameters:
[in]intoThe output stream to use

Implements OutputFormatter.

Definition at line 81 of file PlainXMLFormatter.cpp.

bool PlainXMLFormatter::closeTag ( std::ostream &  into,
bool  abbreviated = false 
) [virtual]

Closes the most recently opened tag.

Parameters:
[in]intoThe output stream to use
[in]namewhether abbreviated closing is performed
Returns:
Whether a further element existed in the stack and could be closed
Todo:
it is not verified that the topmost element was closed

Implements OutputFormatter.

Definition at line 87 of file PlainXMLFormatter.cpp.

References myDefaultIndentation, and myXMLStack.

void PlainXMLFormatter::openTag ( std::ostream &  into,
const std::string &  xmlElement 
) [virtual]

Opens an XML tag.

An indentation, depending on the current xml-element-stack size, is written followed by the given xml element ("<" + xmlElement) The xml element is added to the stack, then.

Parameters:
[in]intoThe output stream to use
[in]xmlElementName of element to open
Returns:
The OutputDevice for further processing

Implements OutputFormatter.

Definition at line 68 of file PlainXMLFormatter.cpp.

References myDefaultIndentation, and myXMLStack.

Referenced by openTag(), and writeXMLHeader().

void PlainXMLFormatter::openTag ( std::ostream &  into,
const SumoXMLTag xmlElement 
) [virtual]

Opens an XML tag.

Helper method which finds the correct string before calling openTag.

Parameters:
[in]intoThe output stream to use
[in]xmlElementId of the element to open

Implements OutputFormatter.

Definition at line 75 of file PlainXMLFormatter.cpp.

References openTag(), and toString().

void PlainXMLFormatter::writeAttr ( std::ostream &  into,
const std::string &  attr,
const std::string &  val 
) [virtual]

writes an arbitrary attribute

Parameters:
[in]intoThe output stream to use
[in]attrThe attribute (name)
[in]valThe attribute value

Implements OutputFormatter.

Definition at line 103 of file PlainXMLFormatter.cpp.

template<class T >
static void PlainXMLFormatter::writeAttr ( std::ostream &  into,
const SumoXMLAttr  attr,
const T &  val 
) [inline, static]

writes a named attribute

Parameters:
[in]intoThe output stream to use
[in]attrThe attribute (name)
[in]valThe attribute value

Definition at line 132 of file PlainXMLFormatter.h.

References toString().

bool PlainXMLFormatter::writeXMLHeader ( std::ostream &  into,
const std::string &  rootElement,
const std::string  xmlParams = "",
const std::string &  attrs = "",
const std::string &  comment = "" 
) [virtual]

Writes an XML header with optional configuration.

If something has been written (myXMLStack is not empty), nothing is written and false returned.

Parameters:
[in]intoThe output stream to use
[in]rootElementThe root element to use
[in]xmlParamsAdditional parameters (such as encoding) to include in the <?xml> declaration
[in]attrsAdditional attributes to save within the rootElement
[in]commentAdditional comment (saved in front the rootElement)
Todo:

Check which parameter is used herein

Describe what is saved

Implements OutputFormatter.

Definition at line 49 of file PlainXMLFormatter.cpp.

References OptionsCont::getOptions(), myXMLStack, openTag(), and OptionsCont::writeXMLHeader().


Field Documentation

The initial indentation level.

Definition at line 142 of file PlainXMLFormatter.h.

Referenced by closeTag(), and openTag().

std::vector<std::string> PlainXMLFormatter::myXMLStack [private]

The stack of begun xml elements.

Definition at line 139 of file PlainXMLFormatter.h.

Referenced by closeTag(), openTag(), and writeXMLHeader().


The documentation for this class was generated from the following files:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines