SUMO - Simulation of Urban MObility
MSStateHandler Class Reference

Parser and output filter for routes and vehicles state saving and loading. More...

#include <MSStateHandler.h>

Inheritance diagram for MSStateHandler:
Inheritance graph
Collaboration diagram for MSStateHandler:
Collaboration graph

Public Member Functions

void characters (const XMLCh *const chars, const XERCES3_SIZE_t length)
 The inherited method called when characters occured. More...
 
void endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname)
 The inherited method called when a tag is being closed. More...
 
const std::string & getFileName () const
 returns the current file name More...
 
SUMOTime getTime () const
 
 MSStateHandler (const std::string &file, const SUMOTime offset)
 standard constructor More...
 
void registerParent (const int tag, GenericSAXHandler *handler)
 Assigning a parent handler which is enabled when the specified tag is closed. More...
 
void setFileName (const std::string &name)
 Sets the current file name. More...
 
void startElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const XERCES_CPP_NAMESPACE::Attributes &attrs)
 The inherited method called when a new tag opens. More...
 
virtual ~MSStateHandler ()
 standard destructor More...
 
SAX ErrorHandler callbacks
void warning (const XERCES_CPP_NAMESPACE::SAXParseException &exception)
 Handler for XML-warnings. More...
 
void error (const XERCES_CPP_NAMESPACE::SAXParseException &exception)
 Handler for XML-errors. More...
 
void fatalError (const XERCES_CPP_NAMESPACE::SAXParseException &exception)
 Handler for XML-errors. More...
 

Static Public Member Functions

static void saveState (const std::string &file, SUMOTime step)
 Saves the current state. More...
 

Protected Member Functions

std::string buildErrorMessage (const XERCES_CPP_NAMESPACE::SAXParseException &exception)
 Builds an error message. More...
 
virtual void myCharacters (int element, const std::string &chars)
 Callback method for characters to implement by derived classes. More...
 
inherited from GenericSAXHandler
void myStartElement (int element, const SUMOSAXAttributes &attrs)
 Called on the opening of a tag;. More...
 
void myEndElement (int element)
 Called when a closing tag occurs. More...
 

Private Member Functions

 MSStateHandler (const MSStateHandler &s)
 Invalidated copy constructor. More...
 
MSStateHandler & operator= (const MSStateHandler &s)
 Invalidated assignment operator. More...
 

Private Attributes

SUMOVTypeParameter * myCurrentVType
 The currently parsed vehicle type. More...
 
std::pair< int, int > myEdgeAndLane
 
const SUMOTime myOffset
 
int myQueIndex
 
MESegment * mySegment
 
SUMOTime myTime
 

Detailed Description

Parser and output filter for routes and vehicles state saving and loading.

Definition at line 52 of file MSStateHandler.h.

Constructor & Destructor Documentation

§ MSStateHandler() [1/2]

MSStateHandler::MSStateHandler ( const std::string &  file,
const SUMOTime  offset 
)

standard constructor

Definition at line 62 of file MSStateHandler.cpp.

§ ~MSStateHandler()

MSStateHandler::~MSStateHandler ( )
virtual

standard destructor

Definition at line 70 of file MSStateHandler.cpp.

References myCurrentVType.

§ MSStateHandler() [2/2]

MSStateHandler::MSStateHandler ( const MSStateHandler &  s)
private

Invalidated copy constructor.

Member Function Documentation

§ buildErrorMessage()

std::string GenericSAXHandler::buildErrorMessage ( const XERCES_CPP_NAMESPACE::SAXParseException &  exception)
protectedinherited

Builds an error message.

The error message includes the file name and the line/column information as supported by the given SAXParseException

Parameters
[in]exceptionThe name of the currently processed file
Returns
A string describing the given exception

Definition at line 192 of file GenericSAXHandler.cpp.

References GenericSAXHandler::getFileName().

Referenced by GenericSAXHandler::error(), GenericSAXHandler::fatalError(), and GenericSAXHandler::warning().

§ characters()

void GenericSAXHandler::characters ( const XMLCh *const  chars,
const XERCES3_SIZE_t  length 
)
inherited

The inherited method called when characters occured.

The retrieved characters are converted into a string and appended into a private buffer. They are reported as soon as the element ends.

Todo:

recheck/describe what happens with characters when a new element is opened

describe characters processing in the class' head

Definition at line 175 of file GenericSAXHandler.cpp.

References TplConvert::_2str(), and GenericSAXHandler::myCharactersVector.

§ endElement()

void GenericSAXHandler::endElement ( const XMLCh *const  uri,
const XMLCh *const  localname,
const XMLCh *const  qname 
)
inherited

The inherited method called when a tag is being closed.

This method calls the user-implemented methods myCharacters with the previously collected and converted characters.

Then, myEndElement is called, supplying it the qname converted to its enum- and string-representations.

Todo:

recheck/describe encoding of the string-representation

do not generate and report the string-representation

Definition at line 126 of file GenericSAXHandler.cpp.

References TplConvert::_2str(), GenericSAXHandler::convertTag(), GenericSAXHandler::myCharacters(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myEndElement(), GenericSAXHandler::myParentHandler, GenericSAXHandler::myParentIndicator, XMLSubSys::setHandler(), SUMO_TAG_INCLUDE, and SUMO_TAG_NOTHING.

§ error()

void GenericSAXHandler::error ( const XERCES_CPP_NAMESPACE::SAXParseException &  exception)
inherited

Handler for XML-errors.

The message is built using buildErrorMessage and thrown within a ProcessError.

Parameters
[in]exceptionThe occured exception to process
Exceptions
ProcessErrorOn any call

Definition at line 211 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage().

Referenced by MSRouteHandler::closeContainer(), MSRouteHandler::closePerson(), NIImporter_OpenDrive::geomFromSpiral(), MSRouteHandler::myStartElement(), and MSRouteHandler::parseWalkPos().

§ fatalError()

void GenericSAXHandler::fatalError ( const XERCES_CPP_NAMESPACE::SAXParseException &  exception)
inherited

Handler for XML-errors.

The message is built using buildErrorMessage and thrown within a ProcessError.

Exceptions
ProcessErrorOn any call
Parameters
[in]exceptionThe occured exception to process

Definition at line 217 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage().

§ getFileName()

§ getTime()

SUMOTime MSStateHandler::getTime ( ) const
inline

Definition at line 66 of file MSStateHandler.h.

References myEndElement(), myStartElement(), and myTime.

Referenced by NLBuilder::build().

§ myCharacters()

void GenericSAXHandler::myCharacters ( int  element,
const std::string &  chars 
)
protectedvirtualinherited

Callback method for characters to implement by derived classes.

Called by "endElement" (see there).

Parameters
[in]elementThe opened element, given as a int
[in]charsThe complete embedded character string ProcessError These method may throw a ProcessError if something fails

Reimplemented in NIImporter_ITSUMO::Handler.

Definition at line 227 of file GenericSAXHandler.cpp.

Referenced by GenericSAXHandler::endElement().

§ myEndElement()

void MSStateHandler::myEndElement ( int  element)
protectedvirtual

Called when a closing tag occurs.

Parameters
[in]elementID of the currently opened element
Exceptions
ProcessErrorIf something fails
See also
GenericSAXHandler::myEndElement

Reimplemented from GenericSAXHandler.

Definition at line 243 of file MSStateHandler.cpp.

References MSVehicleControl::addVType(), MSVehicleType::build(), MSNet::getInstance(), MSNet::getVehicleControl(), myCurrentVType, and SUMO_TAG_VTYPE.

Referenced by getTime().

§ myStartElement()

void MSStateHandler::myStartElement ( int  element,
const SUMOSAXAttributes &  attrs 
)
protectedvirtual

Called on the opening of a tag;.

Parameters
[in]elementID of the currently opened element
[in]attrsAttributes within the currently opened element
Exceptions
ProcessErrorIf something fails
See also
GenericSAXHandler::myStartElement

Reimplemented from GenericSAXHandler.

Definition at line 101 of file MSStateHandler.cpp.

References TplConvert::_2long(), RandomDistributor< T >::add(), MSInsertionControl::add(), MSRoute::addReference(), MSVehicleControl::addVehicle(), MSVehicleControl::addVTypeDistribution(), SUMOVehicleParserHelper::beginVTypeParsing(), MSVehicleControl::buildVehicle(), SUMOVehicleParameter::depart, MSRoute::dictionary(), MSVehicleControl::discountStateLoaded(), MSEdge::getAllEdges(), SUMOSAXAttributes::getBool(), MESegment::getEdge(), GenericSAXHandler::getFileName(), SUMOSAXAttributes::getFloat(), MSNet::getInsertionControl(), MSNet::getInstance(), SUMOSAXAttributes::getInt(), MESegment::getNextSegment(), MSEdge::getNumericalID(), MELoop::getSegmentForEdge(), SUMOSAXAttributes::getString(), MSVehicleControl::getVehicle(), MSNet::getVehicleControl(), MSVehicleControl::getVType(), MSGlobals::gMesoNet, MSGlobals::gUseMesoSim, SUMOVehicleParameter::id, MESegment::loadState(), myCurrentVType, myEdgeAndLane, myOffset, myQueIndex, mySegment, myTime, MSMoveReminder::NOTIFICATION_DEPARTED, MSDevice_Routing::notifyEnter(), MSEdge::parseEdgesList(), SUMOSAXAttributes::parseStringVector(), SUMOVehicleParserHelper::parseVTypeEmbedded(), SUMOVehicleParameter::routeid, MSVehicleControl::setState(), string2time(), SUMO_ATTR_BEGIN, SUMO_ATTR_DEPART, SUMO_ATTR_EDGES, SUMO_ATTR_END, SUMO_ATTR_ID, SUMO_ATTR_NUMBER, SUMO_ATTR_PROBS, SUMO_ATTR_ROUTE, SUMO_ATTR_ROUTES, SUMO_ATTR_STATE, SUMO_ATTR_TIME, SUMO_ATTR_TYPE, SUMO_ATTR_VALUE, SUMO_ATTR_VERSION, SUMO_ATTR_VTYPES, SUMO_TAG_DELAY, SUMO_TAG_LANE, SUMO_TAG_ROUTE, SUMO_TAG_ROUTE_DISTRIBUTION, SUMO_TAG_SEGMENT, SUMO_TAG_SNAPSHOT, SUMO_TAG_VEHICLE, SUMO_TAG_VIEWSETTINGS_VEHICLES, SUMO_TAG_VTYPE, SUMO_TAG_VTYPE_DISTRIBUTION, SUMOReal, VERSION_STRING, SUMOVehicleParameter::vtypeid, and WRITE_WARNING.

Referenced by getTime().

§ operator=()

MSStateHandler& MSStateHandler::operator= ( const MSStateHandler &  s)
private

Invalidated assignment operator.

§ registerParent()

void GenericSAXHandler::registerParent ( const int  tag,
GenericSAXHandler *  handler 
)
inherited

§ saveState()

§ setFileName()

void GenericSAXHandler::setFileName ( const std::string &  name)
inherited

Sets the current file name.

Parameters
[in]nameThe name of the currently processed file
Todo:
Hmmm - this is as unsafe as having a direct access to the variable; recheck

Definition at line 80 of file GenericSAXHandler.cpp.

References GenericSAXHandler::myFileName.

Referenced by NIImporter_SUMO::_loadNetwork(), GUISettingsHandler::GUISettingsHandler(), PCNetProjectionLoader::load(), NIImporter_OpenStreetMap::load(), loadNet(), ROLoader::loadNet(), NIImporter_ITSUMO::loadNetwork(), NIImporter_MATSim::loadNetwork(), NIImporter_Vissim::loadXML(), NILoader::loadXMLType(), main(), and XMLSubSys::runParser().

§ startElement()

void GenericSAXHandler::startElement ( const XMLCh *const  uri,
const XMLCh *const  localname,
const XMLCh *const  qname,
const XERCES_CPP_NAMESPACE::Attributes &  attrs 
)
inherited

The inherited method called when a new tag opens.

The method parses the supplied XMLCh*-qname using the internal name/enum-map to obtain the enum representation of the attribute name.

Then, "myStartElement" is called supplying the enumeration value, the string-representation of the name and the attributes.

Todo:

recheck/describe encoding of the string-representation

do not generate and report the string-representation

Definition at line 105 of file GenericSAXHandler.cpp.

References TplConvert::_2str(), GenericSAXHandler::convertTag(), FileHelpers::getConfigurationRelative(), GenericSAXHandler::getFileName(), SUMOSAXAttributesImpl_Xerces::getString(), FileHelpers::isAbsolute(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myPredefinedTags, GenericSAXHandler::myPredefinedTagsMML, GenericSAXHandler::myStartElement(), XMLSubSys::runParser(), SUMO_ATTR_HREF, and SUMO_TAG_INCLUDE.

§ warning()

void GenericSAXHandler::warning ( const XERCES_CPP_NAMESPACE::SAXParseException &  exception)
inherited

Handler for XML-warnings.

The message is built using buildErrorMessage and reported to the warning-instance of the MsgHandler.

Parameters
[in]exceptionThe occured exception to process

Definition at line 205 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage(), and WRITE_WARNING.

Field Documentation

§ myCurrentVType

SUMOVTypeParameter* MSStateHandler::myCurrentVType
private

The currently parsed vehicle type.

Definition at line 103 of file MSStateHandler.h.

Referenced by myEndElement(), myStartElement(), and ~MSStateHandler().

§ myEdgeAndLane

std::pair<int, int> MSStateHandler::myEdgeAndLane
private

Definition at line 99 of file MSStateHandler.h.

Referenced by myStartElement().

§ myOffset

const SUMOTime MSStateHandler::myOffset
private

Definition at line 96 of file MSStateHandler.h.

Referenced by myStartElement().

§ myQueIndex

int MSStateHandler::myQueIndex
private

Definition at line 100 of file MSStateHandler.h.

Referenced by myStartElement().

§ mySegment

MESegment* MSStateHandler::mySegment
private

Definition at line 98 of file MSStateHandler.h.

Referenced by myStartElement().

§ myTime

SUMOTime MSStateHandler::myTime
private

Definition at line 97 of file MSStateHandler.h.

Referenced by getTime(), and myStartElement().


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