SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
OutputDevice_CERR Class Reference

An output device that encapsulates cerr. More...

#include <OutputDevice_CERR.h>

Inheritance diagram for OutputDevice_CERR:
OutputDevice

Public Member Functions

OutputDevice member methods
virtual bool ok ()
 returns the information whether one can write into the device
void close ()
 Closes the device and removes it from the dictionary.
void setPrecision (unsigned int precision=OUTPUT_ACCURACY)
 Sets the precison or resets it to default.
bool writeXMLHeader (const std::string &rootElement, const std::string xmlParams="", const std::string &attrs="", const std::string &comment="")
 Writes an XML header with optional configuration.
OutputDeviceopenTag (const std::string &xmlElement)
 Opens an XML tag.
OutputDeviceopenTag (const SumoXMLTag &xmlElement)
 Opens an XML tag.
void closeOpener ()
 Ends the most recently opened element start.
bool closeTag (bool abbreviated=false)
 Closes the most recently opened tag.
OutputDevicewriteAttr (std::string attr, std::string val)
 writes an arbitrary attribute
template<typename T >
OutputDevicewriteAttr (const SumoXMLAttr attr, const T &val)
 writes a named attribute
void lf ()
 writes a line feed if applicable
bool isBinary () const
 Returns whether we have a binary output.
void inform (const std::string &msg, const char progress=0)
 Retrieves a message to this device.
template<class T >
OutputDeviceoperator<< (const T &t)
 Abstract output operator.

Static Public Member Functions

static OutputDevicegetDevice ()
 Returns the single cerr instance.
static std::string realString (const SUMOReal v, const int precision=OUTPUT_ACCURACY)
 Helper method for string formatting.
static access methods to OutputDevices
static OutputDevicegetDevice (const std::string &name, const std::string &base="")
 Returns the described OutputDevice.
static bool createDeviceByOption (const std::string &optionName, const std::string &rootElement="")
 Creates the device using the output definition stored in the named option.
static OutputDevicegetDeviceByOption (const std::string &name) throw (IOError, InvalidArgument)
 Returns the device described by the option.
static void closeAll ()

Protected Member Functions

Methods that override/implement OutputDevice-methods
std::ostream & getOStream ()
 Returns the associated ostream.
virtual void postWriteHook ()
 Called after every write access.

Private Member Functions

 OutputDevice_CERR ()
 Constructor

Exceptions
IOErrorShould not be thrown by this implementation.

 ~OutputDevice_CERR ()
 Destructor.

Static Private Attributes

static OutputDevicemyInstance = 0
 my singular instance

Detailed Description

An output device that encapsulates cerr.

Definition at line 44 of file OutputDevice_CERR.h.

Constructor & Destructor Documentation

OutputDevice_CERR::OutputDevice_CERR ( )
private

Constructor

Exceptions
IOErrorShould not be thrown by this implementation.

Definition at line 62 of file OutputDevice_CERR.cpp.

Referenced by getDevice().

OutputDevice_CERR::~OutputDevice_CERR ( )
private

Destructor.

Definition at line 65 of file OutputDevice_CERR.cpp.

References myInstance.

Member Function Documentation

void OutputDevice::closeAll ( )
staticinherited

Closes all registered devices

Definition at line 127 of file OutputDevice.cpp.

References OutputDevice::myOutputDevices.

Referenced by GUIRunThread::deleteSim(), and main().

bool OutputDevice::closeTag ( bool  abbreviated = false)
inherited

Closes the most recently opened tag.

The topmost xml-element from the stack is written into the stream as a closing element ("</" + element + ">") and is then removed from the stack. If abbreviated closing is requested, only "/>" is the output.

Parameters
[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

Definition at line 224 of file OutputDevice.cpp.

References OutputFormatter::closeTag(), OutputDevice::getOStream(), OutputDevice::myFormatter, and OutputDevice::postWriteHook().

Referenced by OutputDevice::close(), MSPersonControl::erase(), PCPolyContainer::save(), ROVehicle::saveAllAsXML(), MSVehicleControl::scheduleVehicleRemoval(), MSXMLRawOut::write(), SUMOVTypeParameter::write(), MSMeanData_HBEFA::MSLaneMeanDataValues::write(), MSMeanData_Harmonoise::MSLaneMeanDataValues::write(), ODMatrix::write(), MSMeanData_Net::MSLaneMeanDataValues::write(), MSInstantInductLoop::write(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), MSXMLRawOut::writeEdge(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), RODFDetector::writeEmitterDefinition(), NWWriter_SUMO::writeInternalConnection(), NWWriter_SUMO::writeInternalEdge(), NWWriter_SUMO::writeInternalNodes(), NWWriter_XML::writeJoinedJunctions(), NWWriter_SUMO::writeJunction(), MSXMLRawOut::writeLane(), NWWriter_SUMO::writeLane(), NBRequest::writeLaneResponse(), NWWriter_SUMO::writeLocation(), NWWriter_XML::writeNodes(), NWWriter_SUMO::writeProhibitions(), NWWriter_SUMO::writeRoundabout(), NWWriter_SUMO::writeTrafficLights(), MSXMLRawOut::writeVehicle(), RORouteDef_Complete::writeXMLDefinition(), RORouteDef_Alternatives::writeXMLDefinition(), RORoute::writeXMLDefinition(), MSRouteProbe::writeXMLOutput(), and MSMeanData::writeXMLOutput().

bool OutputDevice::createDeviceByOption ( const std::string &  optionName,
const std::string &  rootElement = "" 
)
staticinherited

Creates the device using the output definition stored in the named option.

Creates and returns the device named by the option. Asks whether the option and retrieves the name from the option if so. Optionally the XML header gets written as well. Returns whether a device was created (option was set).

Please note, that we do not have to consider the "application base" herein, because this call is only used to get file names of files referenced within XML-declarations of structures which paths already is aware of the cwd.

Parameters
[in]optionNameThe name of the option to use for retrieving the output definition
[in]rootElementThe root element to use (XML-output)
Returns
Whether a device was built (the option was set)
Exceptions
IOErrorIf the output could not be built for any reason (error message is supplied)

Definition at line 103 of file OutputDevice.cpp.

References OutputDevice::getDevice(), OptionsCont::getOptions(), and OutputDevice::writeXMLHeader().

Referenced by MSFrame::buildStreams(), MSDevice_Vehroutes::init(), and main().

OutputDevice * OutputDevice_CERR::getDevice ( )
static

Returns the single cerr instance.

Creates and returns the cerr device.

Definition at line 50 of file OutputDevice_CERR.cpp.

References myInstance, and OutputDevice_CERR().

OutputDevice & OutputDevice::getDevice ( const std::string &  name,
const std::string &  base = "" 
)
staticinherited

Returns the described OutputDevice.

Creates and returns the named device. "stdout" and "-" refer to standard out, "hostname:port" initiates socket connection. Otherwise a filename is assumed and the second parameter may be used to give a base directory. If there already is a device with the same name this one is returned.

Parameters
[in]nameThe description of the output name/port/whatever
[in]baseThe base path the application is run within
Returns
The corresponding (built or existing) device
Exceptions
IOErrorIf the output could not be built for any reason (error message is supplied)

Definition at line 66 of file OutputDevice.cpp.

References FileHelpers::checkForRelativity(), OutputDevice::getOStream(), FileHelpers::isSocket(), OutputDevice::myOutputDevices, and OutputDevice::setPrecision().

Referenced by NLHandler::addE1Detector(), NLHandler::addE2Detector(), NLHandler::addEdgeLaneMeanData(), NLHandler::addInstantE1Detector(), NLHandler::addRouteProbeDetector(), NLHandler::addVTypeProbeDetector(), NLHandler::beginE3Detector(), NLDiscreteEventBuilder::buildSaveTLStateCommand(), NLDiscreteEventBuilder::buildSaveTLSwitchesCommand(), NLDiscreteEventBuilder::buildSaveTLSwitchStatesCommand(), OutputDevice::createDeviceByOption(), OutputDevice::getDeviceByOption(), MsgHandler::initOutputOptions(), MsgHandler::MsgHandler(), GUIDialog_ViewSettings::onCmdExportSetting(), GUIDialog_Breakpoints::onCmdSave(), GUIDialog_EditViewport::onCmdSave(), GUIParameterTracker::onCmdSave(), RONet::openOutput(), GUILoadThread::run(), PCPolyContainer::save(), RODFDetectorCon::save(), GUISelectedStorage::save(), RODFDetectorCon::saveAsPOIs(), GUIDialog_ViewSettings::saveDecals(), RODFDetectorCon::saveRoutes(), NWWriter_XML::writeEdgesAndConnections(), RODFDetector::writeEmitterDefinition(), RODFDetectorCon::writeEmitterPOIs(), RODFDetectorCon::writeEmitters(), RODFDetectorCon::writeEndRerouterDetectors(), NWWriter_XML::writeJoinedJunctions(), NWWriter_OpenDrive::writeNetwork(), NWFrame::writeNetwork(), NWWriter_MATSim::writeNetwork(), NWWriter_SUMO::writeNetwork(), NWWriter_XML::writeNodes(), RODFDetector::writeSingleSpeedTrigger(), RODFDetectorCon::writeSpeedTrigger(), NWWriter_XML::writeTrafficLights(), and RODFDetectorCon::writeValidationDetectors().

OutputDevice & OutputDevice::getDeviceByOption ( const std::string &  name) throw (IOError, InvalidArgument)
staticinherited

Returns the device described by the option.

Returns the device named by the option. If the option is unknown, unset or the device was not created before, InvalidArgument is thrown.

Please note, that we do not have to consider the "application base" herein.

Parameters
[in]nameThe name of the option to use for retrieving the output definition
Returns
The corresponding (built or existing) device
Exceptions
IOErrorIf the output could not be built for any reason (error message is supplied)
InvalidArgumentIf the option with the given name does not exist

Definition at line 117 of file OutputDevice.cpp.

References OutputDevice::getDevice(), OptionsCont::getOptions(), and OptionsCont::getString().

Referenced by MSPersonControl::erase(), MSDevice_HBEFA::generateOutput(), MSDevice_Vehroutes::generateOutput(), MSDevice_Tripinfo::generateOutput(), main(), MSVehicleControl::scheduleVehicleRemoval(), and MSNet::writeOutput().

std::ostream & OutputDevice_CERR::getOStream ( )
protectedvirtual

Returns the associated ostream.

Returns
cerr

Implements OutputDevice.

Definition at line 71 of file OutputDevice_CERR.cpp.

void OutputDevice::inform ( const std::string &  msg,
const char  progress = 0 
)
inherited

Retrieves a message to this device.

Implementation of the MessageRetriever interface. Writes the given message to the output device.

Parameters
[in]msgThe msg to write to the device

Definition at line 238 of file OutputDevice.cpp.

References OutputDevice::getOStream(), and OutputDevice::postWriteHook().

bool OutputDevice::isBinary ( ) const
inlineinherited

Returns whether we have a binary output.

Returns
whether we have a binary output

Definition at line 250 of file OutputDevice.h.

References OutputDevice::myAmBinary.

Referenced by MSDevice_Vehroutes::generateOutput().

void OutputDevice::lf ( )
inlineinherited
bool OutputDevice::ok ( )
virtualinherited

returns the information whether one can write into the device

Returns
Whether the device can be used (stream is good)

Definition at line 172 of file OutputDevice.cpp.

References OutputDevice::getOStream().

OutputDevice & OutputDevice::openTag ( const std::string &  xmlElement)
inherited

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]xmlElementName of element to open
Returns
The OutputDevice for further processing

Definition at line 204 of file OutputDevice.cpp.

References OutputDevice::getOStream(), OutputDevice::myFormatter, and OutputFormatter::openTag().

Referenced by MSPersonControl::erase(), MSDevice_Vehroutes::generateOutput(), MSDevice_HBEFA::generateOutput(), MSDevice_Tripinfo::generateOutput(), PCPolyContainer::save(), MSPerson::MSPersonStage_Walking::tripInfoOutput(), MSPerson::MSPersonStage_Driving::tripInfoOutput(), MSPerson::MSPersonStage_Waiting::tripInfoOutput(), MSXMLRawOut::write(), SUMOVTypeParameter::write(), ODMatrix::write(), MSInstantInductLoop::write(), SUMOVehicleParameter::writeAs(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), MSXMLRawOut::writeEdge(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), RODFDetector::writeEmitterDefinition(), NWWriter_SUMO::writeInternalConnection(), NWWriter_SUMO::writeInternalEdge(), NWWriter_SUMO::writeInternalNodes(), NWWriter_XML::writeJoinedJunctions(), NWWriter_SUMO::writeJunction(), MSXMLRawOut::writeLane(), NWWriter_SUMO::writeLane(), NBRequest::writeLaneResponse(), NWWriter_SUMO::writeLocation(), NWWriter_XML::writeNodes(), MSMeanData::writePrefix(), NWWriter_SUMO::writeProhibitions(), NWWriter_SUMO::writeRoundabout(), NWWriter_SUMO::writeTrafficLights(), MSXMLRawOut::writeVehicle(), RORouteDef_Complete::writeXMLDefinition(), RORouteDef_Alternatives::writeXMLDefinition(), RORoute::writeXMLDefinition(), MSRouteProbe::writeXMLOutput(), MSMeanData::writeXMLOutput(), and MSDevice_Vehroutes::writeXMLRoute().

OutputDevice & OutputDevice::openTag ( const SumoXMLTag xmlElement)
inherited

Opens an XML tag.

Helper method which finds the correct string before calling openTag.

Parameters
[in]xmlElementId of the element to open
Returns
The OutputDevice for further processing

Definition at line 211 of file OutputDevice.cpp.

References OutputDevice::getOStream(), OutputDevice::myFormatter, and OutputFormatter::openTag().

template<class T >
OutputDevice& OutputDevice::operator<< ( const T &  t)
inlineinherited

Abstract output operator.

Returns
The OutputDevice for further processing

Definition at line 285 of file OutputDevice.h.

References OutputDevice::getOStream(), and OutputDevice::postWriteHook().

void OutputDevice_CERR::postWriteHook ( )
protectedvirtual

Called after every write access.

Calls flush on stderr.

Reimplemented from OutputDevice.

Definition at line 77 of file OutputDevice_CERR.cpp.

std::string OutputDevice::realString ( const SUMOReal  v,
const int  precision = OUTPUT_ACCURACY 
)
staticinherited

Helper method for string formatting.

Parameters
[in]vThe floating point value to be formatted
[in]precisionthe precision to achieve
Returns
The formatted string

Definition at line 136 of file OutputDevice.cpp.

Referenced by MSDevice_HBEFA::generateOutput(), and MSMeanData_HBEFA::MSLaneMeanDataValues::write().

void OutputDevice::setPrecision ( unsigned int  precision = OUTPUT_ACCURACY)
inherited

Sets the precison or resets it to default.

Parameters
[in]precisionThe accuracy (number of digits behind '.') to set

Definition at line 191 of file OutputDevice.cpp.

References OutputDevice::getOStream().

Referenced by MSVTypeProbe::execute(), OutputDevice::getDevice(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeLocation(), NWWriter_XML::writeNodes(), RORouteDef_Alternatives::writeXMLDefinition(), and RORoute::writeXMLDefinition().

template<typename T >
OutputDevice& OutputDevice::writeAttr ( const SumoXMLAttr  attr,
const T &  val 
)
inlineinherited

writes a named attribute

Parameters
[in]attrThe attribute (name)
[in]valThe attribute value
Returns
The OutputDevice for further processing

Definition at line 262 of file OutputDevice.h.

References OutputDevice::getOStream(), OutputDevice::myAmBinary, and OutputDevice::writeAttr().

bool OutputDevice::writeXMLHeader ( const std::string &  rootElement,
const std::string  xmlParams = "",
const std::string &  attrs = "",
const std::string &  comment = "" 
)
inherited

Writes an XML header with optional configuration.

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

Parameters
[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)
Returns
Whether the header could be written (stack was empty)
Todo:

Check which parameter is used herein

Describe what is saved

Definition at line 197 of file OutputDevice.cpp.

References OutputDevice::getOStream(), OutputDevice::myFormatter, and OutputFormatter::writeXMLHeader().

Referenced by Command_SaveTLSState::Command_SaveTLSState(), Command_SaveTLSSwitches::Command_SaveTLSSwitches(), Command_SaveTLSSwitchStates::Command_SaveTLSSwitchStates(), OutputDevice::createDeviceByOption(), MSVTypeProbe::MSVTypeProbe(), RONet::openOutput(), PCPolyContainer::save(), RODFDetectorCon::save(), RODFDetectorCon::saveAsPOIs(), RODFDetectorCon::saveRoutes(), NWWriter_XML::writeEdgesAndConnections(), RODFDetector::writeEmitterDefinition(), RODFDetectorCon::writeEmitterPOIs(), RODFDetectorCon::writeEmitters(), RODFDetectorCon::writeEndRerouterDetectors(), NWWriter_XML::writeJoinedJunctions(), NWWriter_SUMO::writeNetwork(), NWWriter_XML::writeNodes(), RODFDetector::writeSingleSpeedTrigger(), RODFDetectorCon::writeSpeedTrigger(), NWWriter_XML::writeTrafficLights(), RODFDetectorCon::writeValidationDetectors(), MSRouteProbe::writeXMLDetectorProlog(), MS_E2_ZS_CollectorOverLanes::writeXMLDetectorProlog(), MSInstantInductLoop::writeXMLDetectorProlog(), MSE2Collector::writeXMLDetectorProlog(), MSInductLoop::writeXMLDetectorProlog(), MSE3Collector::writeXMLDetectorProlog(), and MSMeanData::writeXMLDetectorProlog().

Field Documentation

OutputDevice * OutputDevice_CERR::myInstance = 0
staticprivate

my singular instance

Definition at line 84 of file OutputDevice_CERR.h.

Referenced by getDevice(), and ~OutputDevice_CERR().


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