SUMO - Simulation of Urban MObility
|
Output formatter for plain XML output. More...
#include <BinaryFormatter.h>
Public Types | |
enum | DataType { BF_BYTE, BF_INTEGER, BF_FLOAT, BF_STRING, BF_LIST, BF_XML_TAG_START, BF_XML_TAG_END, BF_XML_ATTRIBUTE, BF_EDGE, BF_LANE, BF_POSITION_2D, BF_POSITION_3D, BF_BOUNDARY, BF_COLOR, BF_NODE_TYPE, BF_EDGE_FUNCTION, BF_ROUTE, BF_SCALED2INT, BF_SCALED2INT_POSITION_2D, BF_SCALED2INT_POSITION_3D } |
data types in binary output More... | |
Public Member Functions | |
BinaryFormatter () | |
Constructor. More... | |
void | closeOpener (std::ostream &into) |
Ends the most recently opened element start. More... | |
bool | closeTag (std::ostream &into, bool abbreviated=false) |
Closes the most recently opened tag. More... | |
void | openTag (std::ostream &into, const std::string &xmlElement) |
Opens an XML tag. More... | |
void | openTag (std::ostream &into, const SumoXMLTag &xmlElement) |
Opens an XML tag. More... | |
void | writeAttr (std::ostream &into, const std::string &attr, const std::string &val) |
writes an arbitrary attribute More... | |
template<typename T , typename S > | |
void | writeAttr (S &into, const SumoXMLAttr attr, const T &val) |
template<typename S > | |
void | writeAttr (S &into, const SumoXMLAttr attr, const std::vector< const ROEdge * > &val) |
template<typename E > | |
bool | writeHeader (std::ostream &into, const SumoXMLTag &rootElement) |
Writes a header with optional edge list and connections. More... | |
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. More... | |
virtual | ~BinaryFormatter () |
Destructor. More... | |
Static Public Member Functions | |
template<typename T , typename S > | |
static void | writeAttr (S &into, const SumoXMLAttr attr, const T &val) |
writes a named attribute More... | |
static void | writeAttr (std::ostream &into, const SumoXMLAttr attr, const bool &val) |
writes a named boolean attribute More... | |
static void | writeAttr (std::ostream &into, const SumoXMLAttr attr, const SUMOReal &val) |
writes a named float attribute More... | |
static void | writeAttr (std::ostream &into, const SumoXMLAttr attr, const int &val) |
writes a named integer attribute More... | |
static void | writeAttr (std::ostream &into, const SumoXMLAttr attr, const unsigned int &val) |
writes a named unsigned integer attribute More... | |
static void | writeAttr (std::ostream &into, const SumoXMLAttr attr, const SumoXMLNodeType &val) |
writes a node type attribute More... | |
static void | writeAttr (std::ostream &into, const SumoXMLAttr attr, const SumoXMLEdgeFunc &val) |
writes an edge function attribute More... | |
static void | writeAttr (std::ostream &into, const SumoXMLAttr attr, const Position &val) |
writes a position attribute More... | |
static void | writeAttr (std::ostream &into, const SumoXMLAttr attr, const PositionVector &val) |
writes a position vector attribute More... | |
static void | writeAttr (std::ostream &into, const SumoXMLAttr attr, const Boundary &val) |
writes a boundary attribute More... | |
static void | writeAttr (std::ostream &into, const SumoXMLAttr attr, const RGBColor &val) |
writes a color attribute More... | |
template<typename S > | |
static void | writeAttr (S &into, const SumoXMLAttr attr, const std::vector< const ROEdge * > &val) |
writes an edge vector attribute More... | |
Static Private Member Functions | |
static void | writeAttrHeader (std::ostream &into, const SumoXMLAttr attr, const DataType type) |
writes the header for an arbitrary attribute More... | |
static void | writePosition (std::ostream &into, const Position &val) |
writes a position More... | |
static void | writeStringList (std::ostream &into, const std::vector< std::string > &list) |
writes a list of strings More... | |
Private Attributes | |
std::vector< SumoXMLTag > | myXMLStack |
The stack of begun xml elements. More... | |
Output formatter for plain XML output.
BinaryFormatter format XML like output into the output stream.
Definition at line 62 of file BinaryFormatter.h.
data types in binary output
Definition at line 65 of file BinaryFormatter.h.
BinaryFormatter::BinaryFormatter | ( | ) |
Constructor.
Definition at line 51 of file BinaryFormatter.cpp.
|
inlinevirtual |
Destructor.
Definition at line 113 of file BinaryFormatter.h.
|
virtual |
Ends the most recently opened element start.
Does nothing.
[in] | into | The output stream to use |
Implements OutputFormatter.
Definition at line 109 of file BinaryFormatter.cpp.
Closes the most recently opened tag.
[in] | into | The output stream to use |
[in] | name | whether abbreviated closing is performed |
Implements OutputFormatter.
Definition at line 114 of file BinaryFormatter.cpp.
References BF_XML_TAG_END, myXMLStack, and FileHelpers::writeByte().
|
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.
[in] | into | The output stream to use |
[in] | xmlElement | Name of element to open |
Implements OutputFormatter.
Definition at line 93 of file BinaryFormatter.cpp.
References SUMOXMLDefinitions::Tags.
Referenced by writeHeader(), and writeXMLHeader().
|
virtual |
Opens an XML tag.
Helper method which finds the correct string before calling openTag.
[in] | into | The output stream to use |
[in] | xmlElement | Id of the element to open |
Implements OutputFormatter.
Definition at line 101 of file BinaryFormatter.cpp.
References BF_XML_TAG_START, myXMLStack, and FileHelpers::writeByte().
|
virtual |
writes an arbitrary attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | val | The attribute value |
Implements OutputFormatter.
Definition at line 126 of file BinaryFormatter.cpp.
References SUMOXMLDefinitions::Attrs.
Referenced by OutputDevice::writeAttr().
|
static |
writes a named attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | val | The attribute value |
|
static |
writes a named boolean attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | val | The attribute value |
Definition at line 133 of file BinaryFormatter.cpp.
References BF_BYTE, writeAttrHeader(), and FileHelpers::writeByte().
|
static |
writes a named float attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | val | The attribute value |
Definition at line 139 of file BinaryFormatter.cpp.
References BF_FLOAT, BF_SCALED2INT, writeAttrHeader(), FileHelpers::writeFloat(), and FileHelpers::writeInt().
|
static |
writes a named integer attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | val | The attribute value |
Definition at line 150 of file BinaryFormatter.cpp.
References BF_INTEGER, writeAttrHeader(), and FileHelpers::writeInt().
|
static |
writes a named unsigned integer attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | val | The attribute value |
Definition at line 156 of file BinaryFormatter.cpp.
References BF_INTEGER, writeAttrHeader(), and FileHelpers::writeInt().
|
static |
writes a node type attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | val | The attribute value |
Definition at line 162 of file BinaryFormatter.cpp.
References BF_NODE_TYPE, writeAttrHeader(), and FileHelpers::writeByte().
|
static |
writes an edge function attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | val | The attribute value |
Definition at line 168 of file BinaryFormatter.cpp.
References BF_EDGE_FUNCTION, writeAttrHeader(), and FileHelpers::writeByte().
|
static |
writes a position attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | val | The attribute value |
Definition at line 203 of file BinaryFormatter.cpp.
References BF_XML_ATTRIBUTE, FileHelpers::writeByte(), and writePosition().
|
static |
writes a position vector attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | val | The attribute value |
Definition at line 210 of file BinaryFormatter.cpp.
References PositionVector::begin(), BF_LIST, PositionVector::end(), PositionVector::size(), writeAttrHeader(), FileHelpers::writeInt(), and writePosition().
|
static |
writes a boundary attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | val | The attribute value |
Definition at line 219 of file BinaryFormatter.cpp.
References BF_BOUNDARY, writeAttrHeader(), FileHelpers::writeFloat(), Boundary::xmax(), Boundary::xmin(), Boundary::ymax(), and Boundary::ymin().
|
static |
writes a color attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | val | The attribute value |
Definition at line 228 of file BinaryFormatter.cpp.
References BF_COLOR, RGBColor::blue(), RGBColor::green(), RGBColor::red(), writeAttrHeader(), and FileHelpers::writeByte().
|
static |
writes an edge vector attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | val | The attribute value |
void BinaryFormatter::writeAttr | ( | S & | into, |
const SumoXMLAttr | attr, | ||
const T & | val | ||
) |
Definition at line 384 of file BinaryFormatter.h.
References BF_STRING, toString(), writeAttrHeader(), and FileHelpers::writeString().
void BinaryFormatter::writeAttr | ( | S & | into, |
const SumoXMLAttr | attr, | ||
const std::vector< const ROEdge * > & | val | ||
) |
Definition at line 391 of file BinaryFormatter.h.
References BF_ROUTE, writeAttrHeader(), and FileHelpers::writeEdgeVector().
|
inlinestaticprivate |
writes the header for an arbitrary attribute
[in] | into | The output stream to use |
[in] | attr | The attribute (name) |
[in] | type | The attribute type |
Definition at line 315 of file BinaryFormatter.h.
References BF_XML_ATTRIBUTE, and FileHelpers::writeByte().
Referenced by writeAttr().
bool BinaryFormatter::writeHeader | ( | std::ostream & | into, |
const SumoXMLTag & | rootElement | ||
) |
Writes a header with optional edge list and connections.
If something has been written (myXMLStack is not empty), nothing is written and false returned. This header is only used by the binary formatter.
[in] | into | The output stream to use |
[in] | rootElement | The root element to use |
Definition at line 347 of file BinaryFormatter.h.
References SUMOXMLDefinitions::Attrs, BF_BYTE, BF_INTEGER, BF_LIST, BF_STRING, SUMOXMLDefinitions::EdgeFunctions, myXMLStack, SUMOXMLDefinitions::NodeTypes, openTag(), SUMOXMLDefinitions::Tags, VERSION_STRING, FileHelpers::writeByte(), FileHelpers::writeInt(), FileHelpers::writeString(), and writeStringList().
|
staticprivate |
writes a position
[in] | into | The output stream to use |
[in] | val | the position to write |
Definition at line 174 of file BinaryFormatter.cpp.
References BF_POSITION_2D, BF_POSITION_3D, BF_SCALED2INT_POSITION_2D, BF_SCALED2INT_POSITION_3D, FileHelpers::writeByte(), FileHelpers::writeFloat(), FileHelpers::writeInt(), Position::x(), Position::y(), and Position::z().
Referenced by writeAttr().
|
staticprivate |
writes a list of strings
[in] | into | The output stream to use |
[in] | list | the list to write |
Definition at line 56 of file BinaryFormatter.cpp.
References BF_LIST, BF_STRING, FileHelpers::writeByte(), FileHelpers::writeInt(), and FileHelpers::writeString().
Referenced by writeHeader(), and writeXMLHeader().
|
virtual |
Writes an XML header with optional configuration.
If something has been written (myXMLStack is not empty), nothing is written and false returned.
[in] | into | The output stream to use |
[in] | rootElement | The root element to use |
[in] | xmlParams | Additional parameters (such as encoding) to include in the <?xml> declaration |
[in] | attrs | Additional attributes to save within the rootElement |
[in] | comment | Additional comment (saved in front the rootElement) |
Check which parameter is used herein
Describe what is saved
Implements OutputFormatter.
Definition at line 66 of file BinaryFormatter.cpp.
References SUMOXMLDefinitions::Attrs, BF_BYTE, BF_STRING, SUMOXMLDefinitions::EdgeFunctions, myXMLStack, SUMOXMLDefinitions::NodeTypes, openTag(), SUMOXMLDefinitions::Tags, VERSION_STRING, FileHelpers::writeByte(), FileHelpers::writeString(), and writeStringList().
|
private |
The stack of begun xml elements.
Definition at line 340 of file BinaryFormatter.h.
Referenced by closeTag(), openTag(), writeHeader(), and writeXMLHeader().