![]() |
Eclipse SUMO - Simulation of Urban MObility
|
#include <MsgHandler.h>
Public Types | |
enum class | MsgType { MT_MESSAGE , MT_WARNING , MT_ERROR , MT_DEBUG , MT_GLDEBUG } |
Public Member Functions | |
virtual void | addRetriever (OutputDevice *retriever) |
Adds a further retriever to the instance responsible for a certain msg type. | |
virtual void | beginProcessMsg (std::string msg, bool addType=true) |
Begins a process information. | |
virtual void | clear (bool resetInformed=true) |
Clears information whether an error occurred previously and print aggregated message summary. | |
virtual void | endProcessMsg (std::string msg) |
Ends a process information. | |
virtual void | endProcessMsg2 (bool success, long duration=-1) |
Ends a process information with predefined messages. | |
int | getAggregationThreshold () const |
virtual void | inform (std::string msg, bool addType=true) |
adds a new error to the list | |
template<typename T , typename... Targs> | |
void | informf (const std::string &format, T value, Targs... Fargs) |
adds a new formatted message | |
bool | isRetriever (OutputDevice *retriever) const |
Returns whether the given output device retrieves messages from the handler. | |
template<class T > | |
MsgHandler & | operator<< (const T &t) |
Generic output operator. | |
virtual void | removeRetriever (OutputDevice *retriever) |
Removes the retriever from the handler. | |
void | setAggregationThreshold (const int thresh) |
bool | wasInformed () const |
Returns the information whether any messages were added. | |
Static Public Member Functions | |
static void | cleanupOnEnd () |
Removes pending handler. | |
static void | enableDebugGLMessages (bool enable) |
enable/disable gl-debug messages | |
static void | enableDebugMessages (bool enable) |
enable/disable debug messages | |
static MsgHandler * | getErrorInstance () |
Returns the instance to add errors to. | |
static MsgHandler * | getMessageInstance () |
Returns the instance to add normal messages to. | |
static MsgHandler * | getWarningInstance () |
Returns the instance to add warnings to. | |
static void | initOutputOptions () |
init output options | |
static std::string | insertLineBreaks (std::string msg, int lineWidth) |
reformats a long string to contain newline after a certain line length in px (depending on the current font) | |
static void | removeRetrieverFromAllInstances (OutputDevice *out) |
ensure that that given output device is no longer used as retriever by any instance | |
static void | setFactory (Factory func) |
Sets the factory function to use for new MsgHandlers. | |
static void | setupI18n (const std::string &locale="") |
set up gettext stuff | |
static bool | writeDebugGLMessages () |
check whether to enable/disable gl-debug messages | |
static bool | writeDebugMessages () |
check whether to enable/disable debug messages | |
Protected Member Functions | |
virtual bool | aggregationThresholdReached (const std::string &format) |
std::string | build (const std::string &msg, bool addType) |
Builds the string which includes the mml-message type. | |
std::string | buildProcessIdPrefix (void) const |
std::string | buildTimestampPrefix (void) const |
MsgHandler (MsgType type) | |
standard constructor | |
virtual | ~MsgHandler () |
destructor | |
Private Types | |
typedef MsgHandler *(* | Factory) (MsgType) |
Private Member Functions | |
MsgHandler (const MsgHandler &s)=delete | |
invalid copy constructor | |
MsgHandler & | operator= (const MsgHandler &s)=delete |
invalid assignment operator | |
Private Attributes | |
std::map< const std::string, int > | myAggregationCount |
count for messages of the same type | |
int | myAggregationThreshold |
do not output more messages of the same type if the count exceeds this threshold | |
std::vector< std::string > | myInitialMessages |
storage for initial messages | |
std::vector< OutputDevice * > | myRetrievers |
The list of retrievers that shall be informed about new messages or errors. | |
MsgType | myType |
The type of the instance. | |
bool | myWasInformed |
information whether an output occurred at all | |
Static Private Attributes | |
static bool | myAmProcessingProcess = false |
Information whether a process information is printed to cout. | |
static MsgHandler * | myErrorInstance = nullptr |
The instance to handle errors. | |
static std::string | myErrorPrefix = "Error: " |
The possibly translated error prefix (mainly for speedup) | |
static Factory | myFactory = nullptr |
The function to call for new MsgHandlers, nullptr means use default constructor. | |
static MsgHandler * | myMessageInstance = nullptr |
The instance to handle normal messages. | |
static MsgHandler * | myWarningInstance = nullptr |
The instance to handle warnings. | |
static std::string | myWarningPrefix = "Warning: " |
The possibly translated warning prefix (mainly for speedup) | |
static bool | myWriteDebugGLMessages = false |
Flag to enable or disable GL specific debug output. | |
static bool | myWriteDebugMessages = false |
Flag to enable or disable debug output. | |
static bool | myWriteProcessId = false |
Whether to prefix every message with the process id. | |
static bool | myWriteTimestamps = false |
Whether to prefix every message with a time stamp. | |
Definition at line 39 of file MsgHandler.h.
|
private |
Definition at line 60 of file MsgHandler.h.
|
strong |
An enumeration to differ between different types of messages (errors, warning and information)
Definition at line 46 of file MsgHandler.h.
|
protected |
standard constructor
Definition at line 371 of file MsgHandler.cpp.
References addRetriever(), OutputDevice::getDevice(), and MT_MESSAGE.
|
protectedvirtual |
destructor
Definition at line 381 of file MsgHandler.cpp.
|
privatedelete |
invalid copy constructor
|
virtual |
Adds a further retriever to the instance responsible for a certain msg type.
Reimplemented in MsgHandlerSynchronized.
Definition at line 217 of file MsgHandler.cpp.
References isRetriever(), and myRetrievers.
Referenced by MsgHandlerSynchronized::addRetriever(), GNELoadThread::GNELoadThread(), GUILoadThread::GUILoadThread(), GUIRunThread::init(), initOutputOptions(), MsgHandler(), GUIMessageWindow::registerMsgHandlers(), GUILoadThread::run(), and GNELoadThread::run().
|
inlineprotectedvirtual |
Reimplemented in MsgHandlerSynchronized.
Definition at line 209 of file MsgHandler.h.
References myAggregationCount, and myAggregationThreshold.
Referenced by MsgHandlerSynchronized::aggregationThresholdReached(), and informf().
|
virtual |
Begins a process information.
When a longer action is started, this method should be used to inform the user about it. There will be no newline printed, but the message handler will be informed that a process message has been begun. If an error occurs, a newline will be printed. After the action has been performed, use endProcessMsg to inform the user about it.
Reimplemented in MsgHandlerSynchronized.
Definition at line 154 of file MsgHandler.cpp.
References build(), myAmProcessingProcess, myRetrievers, and myWasInformed.
Referenced by MsgHandlerSynchronized::beginProcessMsg().
|
inlineprotected |
Builds the string which includes the mml-message type.
Definition at line 178 of file MsgHandler.h.
References buildProcessIdPrefix(), buildTimestampPrefix(), MT_DEBUG, MT_ERROR, MT_GLDEBUG, MT_MESSAGE, MT_WARNING, myErrorPrefix, myType, myWarningPrefix, myWriteProcessId, and myWriteTimestamps.
Referenced by beginProcessMsg(), and inform().
|
protected |
Definition at line 358 of file MsgHandler.cpp.
Referenced by build().
|
protected |
Definition at line 344 of file MsgHandler.cpp.
Referenced by build().
|
static |
Removes pending handler.
Definition at line 333 of file MsgHandler.cpp.
References myErrorInstance, myMessageInstance, and myWarningInstance.
Referenced by SystemFrame::close(), GUIRunThread::deleteSim(), main(), and setFactory().
|
virtual |
Clears information whether an error occurred previously and print aggregated message summary.
Reimplemented in MsgHandlerSynchronized.
Definition at line 193 of file MsgHandler.cpp.
References inform(), myAggregationCount, myAggregationThreshold, myInitialMessages, myWasInformed, toString(), and wasInformed().
Referenced by MsgHandlerSynchronized::clear(), SystemFrame::close(), GUIRunThread::deleteSim(), NLBuilder::init(), GUINet::loadEdgeData(), loadJTRDefinitions(), main(), NBLoadedTLDef::myCompute(), GUILoadThread::run(), GNELoadThread::run(), and XMLSubSys::runParser().
|
static |
enable/disable gl-debug messages
Definition at line 104 of file MsgHandler.cpp.
References myWriteDebugGLMessages.
Referenced by GNEOptionsEditorRow::OptionBool::onCmdSetOption(), and GNELoadThread::run().
|
static |
enable/disable debug messages
Definition at line 99 of file MsgHandler.cpp.
References myWriteDebugMessages.
Referenced by GNEOptionsEditorRow::OptionBool::onCmdSetOption(), and GNELoadThread::run().
|
virtual |
Ends a process information.
Reimplemented in MsgHandlerSynchronized.
Definition at line 181 of file MsgHandler.cpp.
References myAmProcessingProcess, myRetrievers, and myWasInformed.
Referenced by CHBuilder< E, V >::buildContractionHierarchy(), MsgHandlerSynchronized::endProcessMsg(), endProcessMsg2(), and NBHeightMapper::loadIfSet().
|
virtual |
Ends a process information with predefined messages.
Definition at line 167 of file MsgHandler.cpp.
References endProcessMsg(), TL, TLF, and toString().
|
inline |
Definition at line 168 of file MsgHandler.h.
References myAggregationThreshold.
Referenced by GUINet::loadEdgeData().
|
static |
Returns the instance to add errors to.
Definition at line 90 of file MsgHandler.cpp.
References MT_ERROR, and myErrorInstance.
Referenced by NLHandler::addPhase(), MSRouteHandler::addStop(), NLBuilder::build(), MSSOTLTrafficLightLogic::checkPhases(), OutputDevice::closeAll(), RORouteHandler::closeFlow(), RORouteHandler::closeVehicle(), ROJTRRouter::compute(), GUIRunThread::deleteSim(), GNELoadThread::GNELoadThread(), GUILoadThread::GUILoadThread(), NLBuilder::init(), GUIRunThread::init(), initOutputOptions(), RORoute::isValid(), NIImporter_OpenStreetMap::load(), PCLoaderOSM::loadIfSet(), loadJTRDefinitions(), NIImporter_ArcView::loadNetwork(), MSNet::loadState(), main(), main(), GUIRunThread::makeStep(), ROLoader::openRoutes(), RORouteDef::preComputeCurrentRoute(), ROLoader::processRoutes(), GUIMessageWindow::registerMsgHandlers(), RORouteDef::repairCurrentRoute(), GUILoadThread::run(), GNELoadThread::run(), XMLSubSys::runParser(), RONet::saveAndRemoveRoutesUntil(), MSSOTLTrafficLightLogic::setToATargetPhase(), GNELoadThread::submitEndAndCleanup(), GUILoadThread::submitEndAndCleanup(), and GUIMessageWindow::unregisterMsgHandlers().
|
static |
Returns the instance to add normal messages to.
Definition at line 64 of file MsgHandler.cpp.
References MT_MESSAGE, myFactory, and myMessageInstance.
Referenced by CHBuilder< E, V >::buildContractionHierarchy(), MSDeterministicHiLevelTrafficLightLogic::decideNextPhase(), MSSwarmTrafficLightLogic::decideNextPhase(), GUIRunThread::deleteSim(), inform(), NLBuilder::init(), GUIRunThread::init(), initOutputOptions(), NBHeightMapper::loadIfSet(), MSSOTLPhaseTrafficLightLogic::MSSOTLPhaseTrafficLightLogic(), MSSOTLPolicyBasedTrafficLightLogic::MSSOTLPolicyBasedTrafficLightLogic(), MSSOTLWaveTrafficLightLogic::MSSOTLWaveTrafficLightLogic(), GUIMessageWindow::registerMsgHandlers(), GUILoadThread::run(), GNELoadThread::run(), GNELoadThread::submitEndAndCleanup(), GUILoadThread::submitEndAndCleanup(), and GUIMessageWindow::unregisterMsgHandlers().
|
static |
Returns the instance to add warnings to.
Definition at line 77 of file MsgHandler.cpp.
References MT_WARNING, myFactory, and myWarningInstance.
Referenced by NLHandler::addPhase(), AFRouter< E, N, V, M >::clone(), AStarRouter< E, V, M >::clone(), CHRouter< E, V >::clone(), DijkstraRouter< E, V >::clone(), Node2EdgeRouter< E, N, V, M >::clone(), SystemFrame::close(), ROJTRRouter::compute(), GUIRunThread::deleteSim(), RailwayRouter< E, V >::ensureInternalRouter(), NLBuilder::init(), GUIRunThread::init(), initOutputOptions(), RORoute::isValid(), GUINet::loadEdgeData(), PCLoaderOSM::loadIfSet(), main(), NBLoadedTLDef::myCompute(), RORouteDef::preComputeCurrentRoute(), GUIMessageWindow::registerMsgHandlers(), RORouteDef::repairCurrentRoute(), GUILoadThread::run(), GNELoadThread::run(), RONet::saveAndRemoveRoutesUntil(), GNELoadThread::submitEndAndCleanup(), GUILoadThread::submitEndAndCleanup(), TraCIServer::TraCIServer(), and GUIMessageWindow::unregisterMsgHandlers().
|
virtual |
adds a new error to the list
Reimplemented in MsgHandlerSynchronized.
Definition at line 134 of file MsgHandler.cpp.
References build(), getMessageInstance(), inform(), myAmProcessingProcess, myInitialMessages, myRetrievers, and myWasInformed.
Referenced by NLHandler::addPhase(), RORouteHandler::addRide(), RORouteHandler::addStop(), ROVehicle::addStop(), MSSOTLTrafficLightLogic::checkPhases(), clear(), RORouteHandler::closeFlow(), RORouteHandler::closePerson(), RORouteHandler::closePersonFlow(), RORouteHandler::closeRoute(), RORouteHandler::closeRouteDistribution(), RORouteHandler::closeVehicle(), RORouteHandler::closeVehicleTypeDistribution(), AFRouter< E, N, V, M >::compute(), AStarRouter< E, V, M >::compute(), DijkstraRouter< E, V >::compute(), ROJTRRouter::compute(), AFCentralizedSPTree< E, N, V >::computeCentralizedSPTree(), ROPerson::computeIntermodal(), Node2EdgeRouter< E, N, V, M >::computeNode2Edge(), Node2EdgeRouter< E, N, V, M >::computeNode2Edges(), ROVehicle::computeRoute(), MSDeterministicHiLevelTrafficLightLogic::decideNextPhase(), MSSwarmTrafficLightLogic::decideNextPhase(), MapMatcher< E, L, N >::getJunctionTaz(), MapMatcher< E, L, N >::getTaz(), inform(), MsgHandlerSynchronized::inform(), informf(), GUIRunThread::init(), main(), main(), GUIRunThread::makeStep(), MSSOTLPhaseTrafficLightLogic::MSSOTLPhaseTrafficLightLogic(), MSSOTLPolicyBasedTrafficLightLogic::MSSOTLPolicyBasedTrafficLightLogic(), MSSOTLWaveTrafficLightLogic::MSSOTLWaveTrafficLightLogic(), RORouteHandler::openRoute(), RORouteHandler::openRouteDistribution(), RORouteHandler::openVehicleTypeDistribution(), NIXMLConnectionsHandler::parseConnection(), NIXMLConnectionsHandler::parseConnectionDef(), NIXMLConnectionsHandler::parseDeprecatedLaneDefinition(), RORouteHandler::parseEdges(), RORouteHandler::parseFromViaTo(), MapMatcher< E, L, N >::parseGeoEdges(), NIXMLConnectionsHandler::parseLaneBound(), SUMORouteHandler::parseStop(), RORouteDef::preComputeCurrentRoute(), RORouteDef::repairCurrentRoute(), GUILoadThread::run(), MSSOTLTrafficLightLogic::setToATargetPhase(), and TraCIServer::TraCIServer().
|
inline |
adds a new formatted message
Definition at line 116 of file MsgHandler.h.
References aggregationThresholdReached(), StringUtils::format(), and inform().
Referenced by IntermodalRouter< E, L, N, V >::compute(), AFRouter< E, N, V, M >::compute(), AStarRouter< E, V, M >::compute(), CHRouter< E, V >::compute(), DijkstraRouter< E, V >::compute(), SUMOAbstractRouter< E, V >::computeLooped(), Node2EdgeRouter< E, N, V, M >::computeNode2Edge(), Node2EdgeRouter< E, N, V, M >::computeNode2Edges(), NIXMLConnectionsHandler::delConnection(), RORoute::isValid(), and NIXMLConnectionsHandler::parseLaneBound().
|
static |
init output options
Definition at line 290 of file MsgHandler.cpp.
References addRetriever(), OptionsCont::getBool(), OutputDevice::getDevice(), getErrorInstance(), OptionsCont::getInt(), getMessageInstance(), OptionsCont::getOptions(), OptionsCont::getString(), getWarningInstance(), OptionsCont::isSet(), myInitialMessages, myWriteProcessId, myWriteTimestamps, removeRetriever(), and setAggregationThreshold().
Referenced by NLBuilder::init(), main(), main(), GUILoadThread::run(), and GNELoadThread::run().
|
static |
reformats a long string to contain newline after a certain line length in px (depending on the current font)
Definition at line 110 of file MsgHandler.cpp.
bool MsgHandler::isRetriever | ( | OutputDevice * | retriever | ) | const |
Returns whether the given output device retrieves messages from the handler.
Definition at line 234 of file MsgHandler.cpp.
References myRetrievers.
Referenced by addRetriever(), and OutputDevice::closeAll().
|
inline |
Generic output operator.
Definition at line 156 of file MsgHandler.h.
References myRetrievers.
|
privatedelete |
invalid assignment operator
|
virtual |
Removes the retriever from the handler.
Reimplemented in MsgHandlerSynchronized.
Definition at line 225 of file MsgHandler.cpp.
References myRetrievers.
Referenced by GUIRunThread::deleteSim(), initOutputOptions(), MsgHandlerSynchronized::removeRetriever(), removeRetrieverFromAllInstances(), GUILoadThread::run(), GNELoadThread::submitEndAndCleanup(), GUILoadThread::submitEndAndCleanup(), and GUIMessageWindow::unregisterMsgHandlers().
|
static |
ensure that that given output device is no longer used as retriever by any instance
Definition at line 240 of file MsgHandler.cpp.
References myErrorInstance, myMessageInstance, myWarningInstance, and removeRetriever().
Referenced by OutputDevice::close().
|
inline |
Definition at line 164 of file MsgHandler.h.
References myAggregationThreshold.
Referenced by initOutputOptions(), and GUINet::loadEdgeData().
|
inlinestatic |
Sets the factory function to use for new MsgHandlers.
Definition at line 64 of file MsgHandler.h.
References cleanupOnEnd(), and myFactory.
Referenced by NLBuilder::init(), and main().
|
static |
set up gettext stuff
Definition at line 254 of file MsgHandler.cpp.
References myErrorPrefix, myWarningPrefix, TL, UNUSED_PARAMETER, WRITE_WARNING, and WRITE_WARNINGF.
Referenced by OptionsCont::processMetaOptions().
bool MsgHandler::wasInformed | ( | ) | const |
Returns the information whether any messages were added.
Definition at line 386 of file MsgHandler.cpp.
References myWasInformed.
Referenced by clear(), NIImporter_OpenStreetMap::load(), NBLoadedTLDef::myCompute(), ROLoader::processRoutes(), and XMLSubSys::runParser().
|
inlinestatic |
check whether to enable/disable gl-debug messages
Definition at line 91 of file MsgHandler.h.
References myWriteDebugGLMessages.
Referenced by SUMORTree::addAdditionalGLObject(), and SUMORTree::removeAdditionalGLObject().
|
inlinestatic |
check whether to enable/disable debug messages
Definition at line 86 of file MsgHandler.h.
References myWriteDebugMessages.
|
private |
count for messages of the same type
Definition at line 246 of file MsgHandler.h.
Referenced by aggregationThresholdReached(), and clear().
|
private |
do not output more messages of the same type if the count exceeds this threshold
Definition at line 243 of file MsgHandler.h.
Referenced by aggregationThresholdReached(), clear(), getAggregationThreshold(), and setAggregationThreshold().
|
staticprivate |
Information whether a process information is printed to cout.
Definition at line 233 of file MsgHandler.h.
Referenced by beginProcessMsg(), endProcessMsg(), and inform().
|
staticprivate |
The instance to handle errors.
Definition at line 224 of file MsgHandler.h.
Referenced by cleanupOnEnd(), getErrorInstance(), and removeRetrieverFromAllInstances().
|
staticprivate |
The possibly translated error prefix (mainly for speedup)
Definition at line 270 of file MsgHandler.h.
Referenced by build(), and setupI18n().
|
staticprivate |
The function to call for new MsgHandlers, nullptr means use default constructor.
Definition at line 221 of file MsgHandler.h.
Referenced by getMessageInstance(), getWarningInstance(), and setFactory().
|
private |
storage for initial messages
Definition at line 252 of file MsgHandler.h.
Referenced by clear(), inform(), and initOutputOptions().
|
staticprivate |
The instance to handle normal messages.
Definition at line 230 of file MsgHandler.h.
Referenced by cleanupOnEnd(), getMessageInstance(), and removeRetrieverFromAllInstances().
|
private |
The list of retrievers that shall be informed about new messages or errors.
Definition at line 249 of file MsgHandler.h.
Referenced by addRetriever(), beginProcessMsg(), endProcessMsg(), inform(), isRetriever(), operator<<(), and removeRetriever().
|
private |
|
staticprivate |
The instance to handle warnings.
Definition at line 227 of file MsgHandler.h.
Referenced by cleanupOnEnd(), getWarningInstance(), and removeRetrieverFromAllInstances().
|
staticprivate |
The possibly translated warning prefix (mainly for speedup)
Definition at line 273 of file MsgHandler.h.
Referenced by build(), and setupI18n().
|
private |
information whether an output occurred at all
Definition at line 240 of file MsgHandler.h.
Referenced by beginProcessMsg(), clear(), endProcessMsg(), inform(), and wasInformed().
|
staticprivate |
Flag to enable or disable GL specific debug output.
Definition at line 261 of file MsgHandler.h.
Referenced by enableDebugGLMessages(), and writeDebugGLMessages().
|
staticprivate |
Flag to enable or disable debug output.
This value is used to show more internal information through warning messages about certain operations
Definition at line 258 of file MsgHandler.h.
Referenced by enableDebugMessages(), and writeDebugMessages().
|
staticprivate |
Whether to prefix every message with the process id.
Definition at line 267 of file MsgHandler.h.
Referenced by build(), and initOutputOptions().
|
staticprivate |
Whether to prefix every message with a time stamp.
Definition at line 264 of file MsgHandler.h.
Referenced by build(), and initOutputOptions().