Eclipse SUMO - Simulation of Urban MObility
TrajectoriesHandler Class Reference

An XML-Handler for amitran and netstate trajectories. More...

#include <TrajectoriesHandler.h>

Inheritance diagram for TrajectoriesHandler:
Collaboration diagram for TrajectoriesHandler:

Public Member Functions

void characters (const XMLCh *const chars, const XERCES3_SIZE_t length)
 The inherited method called when characters occurred. More...
 
const PollutantsInterface::Emissions computeEmissions (const std::string id, const SUMOEmissionClass c, double &v, double &a, double &s)
 
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...
 
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...
 
 TrajectoriesHandler (const bool computeA, const bool computeAForward, const bool accelZeroCorrection, const SUMOEmissionClass defaultClass, const double defaultSlope, std::ostream *stdOut, OutputDevice *xmlOut)
 Constructor. More...
 
bool writeEmissions (std::ostream &o, const std::string id, const SUMOEmissionClass c, double t, double &v, double &a, double &s)
 
void writeNormedSums (std::ostream &o, const std::string id, const double factor)
 
void writeSums (std::ostream &o, const std::string id)
 
bool writeXMLEmissions (const std::string id, const SUMOEmissionClass c, SUMOTime t, double &v, double a=INVALID_VALUE, double s=INVALID_VALUE)
 
 ~TrajectoriesHandler ()
 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 Attributes

static const int INVALID_VALUE = -999999
 

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...
 
virtual void myEndElement (int element)
 Callback method for a closing tag to implement by derived classes. More...
 
void setSchemaSeen (const bool schemaSeen=true)
 
inherited from GenericSAXHandler
void myStartElement (int element, const SUMOSAXAttributes &attrs)
 Called when an opening-tag occurs. More...
 

Private Member Functions

TrajectoriesHandleroperator= (const TrajectoriesHandler &s)
 invalidated assignment operator More...
 
 TrajectoriesHandler (const TrajectoriesHandler &s)
 invalidated copy constructor More...
 

Private Attributes

const bool myAccelZeroCorrection
 
const bool myComputeA
 
const bool myComputeAForward
 
SUMOTime myCurrentTime
 
const SUMOEmissionClass myDefaultClass
 
const double myDefaultSlope
 
std::map< std::string, SUMOEmissionClassmyEmissionClassByType
 
std::map< std::string, SUMOEmissionClassmyEmissionClassByVehicle
 
std::map< std::string, double > myLastSlope
 
std::map< std::string, double > myLastV
 
std::ostream * myStdOut
 
double myStepSize
 
std::map< std::string, PollutantsInterface::EmissionsmySums
 
OutputDevicemyXMLOut
 

Detailed Description

An XML-Handler for amitran and netstate trajectories.

This SUMOSAXHandler parses vehicles and their speeds.

Definition at line 40 of file TrajectoriesHandler.h.

Constructor & Destructor Documentation

◆ TrajectoriesHandler() [1/2]

TrajectoriesHandler::TrajectoriesHandler ( const bool  computeA,
const bool  computeAForward,
const bool  accelZeroCorrection,
const SUMOEmissionClass  defaultClass,
const double  defaultSlope,
std::ostream *  stdOut,
OutputDevice xmlOut 
)

Constructor.

Parameters
[in]fileThe file that will be processed

Definition at line 41 of file TrajectoriesHandler.cpp.

◆ ~TrajectoriesHandler()

TrajectoriesHandler::~TrajectoriesHandler ( )

Destructor.

Definition at line 48 of file TrajectoriesHandler.cpp.

◆ TrajectoriesHandler() [2/2]

TrajectoriesHandler::TrajectoriesHandler ( const TrajectoriesHandler 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 187 of file GenericSAXHandler.cpp.

References GenericSAXHandler::getFileName(), and transcode().

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 occurred.

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 170 of file GenericSAXHandler.cpp.

References GenericSAXHandler::myCharactersVector, and StringUtils::transcode().

◆ computeEmissions()

const PollutantsInterface::Emissions TrajectoriesHandler::computeEmissions ( const std::string  id,
const SUMOEmissionClass  c,
double &  v,
double &  a,
double &  s 
)

◆ 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 121 of file GenericSAXHandler.cpp.

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

◆ 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 occurred exception to process
Exceptions
ProcessErrorOn any call

Definition at line 206 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage().

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

◆ 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 occurred exception to process

Definition at line 212 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage().

◆ getFileName()

◆ 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_OpenDrive, and NIImporter_ITSUMO::Handler.

Definition at line 222 of file GenericSAXHandler.cpp.

Referenced by GenericSAXHandler::endElement().

◆ myEndElement()

◆ myStartElement()

◆ operator=()

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

invalidated assignment operator

◆ registerParent()

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

◆ 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 69 of file GenericSAXHandler.cpp.

References GenericSAXHandler::myFileName.

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

◆ setSchemaSeen()

void GenericSAXHandler::setSchemaSeen ( const bool  schemaSeen = true)
inlineprotectedinherited

◆ 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 94 of file GenericSAXHandler.cpp.

References GenericSAXHandler::convertTag(), FileHelpers::getConfigurationRelative(), GenericSAXHandler::getFileName(), SUMOSAXAttributesImpl_Xerces::getString(), FileHelpers::isAbsolute(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myExpectedRoot, GenericSAXHandler::myPredefinedTags, GenericSAXHandler::myPredefinedTagsMML, GenericSAXHandler::mySchemaSeen, GenericSAXHandler::myStartElement(), XMLSubSys::runParser(), SUMO_ATTR_HREF, SUMO_TAG_INCLUDE, and StringUtils::transcode().

◆ 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 occurred exception to process

Definition at line 200 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage(), and WRITE_WARNING.

◆ writeEmissions()

◆ writeNormedSums()

void TrajectoriesHandler::writeNormedSums ( std::ostream &  o,
const std::string  id,
const double  factor 
)

Definition at line 207 of file TrajectoriesHandler.cpp.

References mySums.

◆ writeSums()

void TrajectoriesHandler::writeSums ( std::ostream &  o,
const std::string  id 
)

Definition at line 195 of file TrajectoriesHandler.cpp.

References mySums.

◆ writeXMLEmissions()

Field Documentation

◆ INVALID_VALUE

const int TrajectoriesHandler::INVALID_VALUE = -999999
static

Definition at line 42 of file TrajectoriesHandler.h.

Referenced by computeEmissions(), main(), and myStartElement().

◆ myAccelZeroCorrection

const bool TrajectoriesHandler::myAccelZeroCorrection
private

Definition at line 97 of file TrajectoriesHandler.h.

Referenced by computeEmissions().

◆ myComputeA

const bool TrajectoriesHandler::myComputeA
private

Definition at line 95 of file TrajectoriesHandler.h.

Referenced by computeEmissions(), writeEmissions(), and writeXMLEmissions().

◆ myComputeAForward

const bool TrajectoriesHandler::myComputeAForward
private

Definition at line 96 of file TrajectoriesHandler.h.

Referenced by computeEmissions(), and writeEmissions().

◆ myCurrentTime

SUMOTime TrajectoriesHandler::myCurrentTime
private

Definition at line 104 of file TrajectoriesHandler.h.

Referenced by myStartElement(), and writeXMLEmissions().

◆ myDefaultClass

const SUMOEmissionClass TrajectoriesHandler::myDefaultClass
private

Definition at line 98 of file TrajectoriesHandler.h.

Referenced by myStartElement().

◆ myDefaultSlope

const double TrajectoriesHandler::myDefaultSlope
private

Definition at line 99 of file TrajectoriesHandler.h.

Referenced by computeEmissions().

◆ myEmissionClassByType

std::map<std::string, SUMOEmissionClass> TrajectoriesHandler::myEmissionClassByType
private

Definition at line 107 of file TrajectoriesHandler.h.

Referenced by myStartElement().

◆ myEmissionClassByVehicle

std::map<std::string, SUMOEmissionClass> TrajectoriesHandler::myEmissionClassByVehicle
private

Definition at line 108 of file TrajectoriesHandler.h.

Referenced by myStartElement().

◆ myLastSlope

std::map<std::string, double> TrajectoriesHandler::myLastSlope
private

Definition at line 103 of file TrajectoriesHandler.h.

Referenced by writeEmissions().

◆ myLastV

std::map<std::string, double> TrajectoriesHandler::myLastV
private

Definition at line 102 of file TrajectoriesHandler.h.

Referenced by computeEmissions(), writeEmissions(), and writeXMLEmissions().

◆ myStdOut

std::ostream* TrajectoriesHandler::myStdOut
private

Definition at line 100 of file TrajectoriesHandler.h.

Referenced by myStartElement().

◆ myStepSize

double TrajectoriesHandler::myStepSize
private

Definition at line 105 of file TrajectoriesHandler.h.

Referenced by computeEmissions(), and myStartElement().

◆ mySums

std::map<std::string, PollutantsInterface::Emissions> TrajectoriesHandler::mySums
private

Definition at line 106 of file TrajectoriesHandler.h.

Referenced by computeEmissions(), writeNormedSums(), and writeSums().

◆ myXMLOut

OutputDevice* TrajectoriesHandler::myXMLOut
private

Definition at line 101 of file TrajectoriesHandler.h.

Referenced by myStartElement(), and writeXMLEmissions().


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