![]() |
SUMO - Simulation of Urban MObility
|
#include <MsgHandler.h>
Public Types | |
enum | MsgType { MT_MESSAGE, MT_WARNING, MT_ERROR, MT_DEBUG, MT_GLDEBUG } |
Public Member Functions | |
void | addRetriever (OutputDevice *retriever) |
Adds a further retriever to the instance responsible for a certain msg type. More... | |
void | beginProcessMsg (std::string msg, bool addType=true) |
Begins a process information. More... | |
void | clear () |
Clears information whether an error occurred previously. More... | |
void | endProcessMsg (std::string msg) |
Ends a process information. More... | |
void | inform (std::string msg, bool addType=true) |
adds a new error to the list More... | |
bool | isRetriever (OutputDevice *retriever) const |
Returns whether the given output device retrieves messages from the handler. More... | |
template<class T > | |
MsgHandler & | operator<< (const T &t) |
Generic output operator. More... | |
void | removeRetriever (OutputDevice *retriever) |
Removes the retriever from the handler. More... | |
bool | wasInformed () const |
Returns the information whether any messages were added. More... | |
Static Public Member Functions | |
static void | assignLock (AbstractMutex *lock) |
Sets the lock to use The lock will not be deleted. More... | |
static void | cleanupOnEnd () |
Removes pending handler. More... | |
static void | enableDebugGLMessages (bool enable) |
enable/disable gl-debug messages More... | |
static void | enableDebugMessages (bool enable) |
enable/disable debug messages More... | |
static MsgHandler * | getDebugInstance () |
Returns the instance to add debug to. More... | |
static MsgHandler * | getErrorInstance () |
Returns the instance to add errors to. More... | |
static MsgHandler * | getGLDebugInstance () |
Returns the instance to add GLdebug to. More... | |
static MsgHandler * | getMessageInstance () |
Returns the instance to add normal messages to. More... | |
static MsgHandler * | getWarningInstance () |
Returns the instance to add warnings to. More... | |
static void | initOutputOptions () |
init output options More... | |
static void | removeRetrieverFromAllInstances (OutputDevice *out) |
ensure that that given output device is no longer used as retriever by any instance More... | |
static bool | writeDebugGLMessages () |
check whether to enable/disable gl-debug messages More... | |
static bool | writeDebugMessages () |
check whether to enable/disable debug messages More... | |
Protected Member Functions | |
std::string | build (const std::string &msg, bool addType) |
Builds the string which includes the mml-message type. More... | |
Private Types | |
typedef std::vector< OutputDevice * > | RetrieverVector |
Definition of the list of retrievers to inform. More... | |
Private Member Functions | |
MsgHandler (MsgType type) | |
standard constructor More... | |
MsgHandler (const MsgHandler &s)=delete | |
invalid copy constructor More... | |
MsgHandler & | operator= (const MsgHandler &s)=delete |
invalid assignment operator More... | |
~MsgHandler () | |
destructor More... | |
Private Attributes | |
RetrieverVector | myRetrievers |
The list of retrievers that shall be informed about new messages or errors. More... | |
MsgType | myType |
The type of the instance. More... | |
bool | myWasInformed |
information wehther an error occurred at all More... | |
Static Private Attributes | |
static bool | myAmProcessingProcess = false |
Information whether a process information is printed to cout. More... | |
static MsgHandler * | myDebugInstance = nullptr |
The instance to handle debug. More... | |
static MsgHandler * | myErrorInstance = nullptr |
The instance to handle errors. More... | |
static MsgHandler * | myGLDebugInstance = nullptr |
The instance to handle glDebug. More... | |
static AbstractMutex * | myLock = nullptr |
The lock if any has to be used. The lock will not be deleted. More... | |
static MsgHandler * | myMessageInstance = nullptr |
The instance to handle normal messages. More... | |
static MsgHandler * | myWarningInstance = nullptr |
The instance to handle warnings. More... | |
static bool | myWriteDebugGLMessages |
static bool | myWriteDebugMessages |
Flag to enable or disable debug GL Functions. More... | |
Definition at line 46 of file MsgHandler.h.
|
private |
Definition of the list of retrievers to inform.
Definition at line 214 of file MsgHandler.h.
enum MsgHandler::MsgType |
An enumeration to differ between different types of messages (errors, warning and information)
Definition at line 53 of file MsgHandler.h.
|
private |
standard constructor
Definition at line 292 of file MsgHandler.cpp.
References addRetriever(), OutputDevice::getDevice(), and MT_MESSAGE.
Referenced by build(), getDebugInstance(), getErrorInstance(), getGLDebugInstance(), getMessageInstance(), and getWarningInstance().
|
private |
|
privatedelete |
invalid copy constructor
void MsgHandler::addRetriever | ( | OutputDevice * | retriever | ) |
Adds a further retriever to the instance responsible for a certain msg type.
Definition at line 185 of file MsgHandler.cpp.
References isRetriever(), AbstractMutex::lock(), myLock, myRetrievers, and AbstractMutex::unlock().
Referenced by GNELoadThread::GNELoadThread(), GUILoadThread::GUILoadThread(), GUIRunThread::init(), initOutputOptions(), MsgHandler(), GUIMessageWindow::registerMsgHandlers(), GNELoadThread::run(), GUILoadThread::run(), and writeDebugGLMessages().
|
static |
Sets the lock to use The lock will not be deleted.
Definition at line 313 of file MsgHandler.cpp.
References myLock.
Referenced by main(), and writeDebugGLMessages().
void MsgHandler::beginProcessMsg | ( | std::string | msg, |
bool | addType = true |
||
) |
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.
Definition at line 136 of file MsgHandler.cpp.
References build(), AbstractMutex::lock(), myAmProcessingProcess, myLock, myRetrievers, myWasInformed, and AbstractMutex::unlock().
Referenced by writeDebugGLMessages().
|
inlineprotected |
Builds the string which includes the mml-message type.
Definition at line 153 of file MsgHandler.h.
References MsgHandler(), MT_DEBUG, MT_ERROR, MT_GLDEBUG, MT_MESSAGE, MT_WARNING, myType, and ~MsgHandler().
Referenced by beginProcessMsg(), and inform().
|
static |
Removes pending handler.
Definition at line 272 of file MsgHandler.cpp.
References AbstractMutex::lock(), myDebugInstance, myErrorInstance, myGLDebugInstance, myLock, myMessageInstance, myWarningInstance, and AbstractMutex::unlock().
Referenced by SystemFrame::close(), GUIRunThread::deleteSim(), and writeDebugGLMessages().
void MsgHandler::clear | ( | ) |
Clears information whether an error occurred previously.
Definition at line 173 of file MsgHandler.cpp.
References AbstractMutex::lock(), myLock, myWasInformed, and AbstractMutex::unlock().
Referenced by NLBuilder::init(), loadJTRDefinitions(), main(), NBLoadedTLDef::myCompute(), GNELoadThread::run(), GUILoadThread::run(), and writeDebugGLMessages().
|
static |
enable/disable gl-debug messages
Definition at line 108 of file MsgHandler.cpp.
References myWriteDebugGLMessages.
Referenced by GUIDialog_Options::InputBool::onCmdSetOption(), and GNELoadThread::run().
|
static |
enable/disable debug messages
Definition at line 103 of file MsgHandler.cpp.
References myWriteDebugMessages.
Referenced by GUIDialog_Options::InputBool::onCmdSetOption(), and GNELoadThread::run().
void MsgHandler::endProcessMsg | ( | std::string | msg | ) |
Ends a process information.
Definition at line 155 of file MsgHandler.cpp.
References AbstractMutex::lock(), myAmProcessingProcess, myLock, myRetrievers, myWasInformed, and AbstractMutex::unlock().
Referenced by CHBuilder< E, V >::buildContractionHierarchy(), NBHeightMapper::loadIfSet(), and writeDebugGLMessages().
|
static |
Returns the instance to add debug to.
Definition at line 85 of file MsgHandler.cpp.
References MsgHandler(), MT_DEBUG, and myDebugInstance.
Referenced by GUIMessageWindow::registerMsgHandlers(), GNELoadThread::run(), GNELoadThread::submitEndAndCleanup(), and GUIMessageWindow::unregisterMsgHandlers().
|
static |
Returns the instance to add errors to.
Definition at line 76 of file MsgHandler.cpp.
References MsgHandler(), 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(), GUIRunThread::init(), NLBuilder::init(), initOutputOptions(), PCLoaderOSM::loadIfSet(), loadJTRDefinitions(), NIImporter_ArcView::loadNetwork(), main(), GUIRunThread::makeStep(), MSPhaseDefinition::MSPhaseDefinition(), ROLoader::openRoutes(), RORouteDef::preComputeCurrentRoute(), ROLoader::processRoutes(), GUIMessageWindow::registerMsgHandlers(), RORouteDef::repairCurrentRoute(), GNELoadThread::run(), GUILoadThread::run(), XMLSubSys::runParser(), RONet::saveAndRemoveRoutesUntil(), MSSOTLTrafficLightLogic::setToATargetPhase(), GUILoadThread::submitEndAndCleanup(), GNELoadThread::submitEndAndCleanup(), and GUIMessageWindow::unregisterMsgHandlers().
|
static |
Returns the instance to add GLdebug to.
Definition at line 94 of file MsgHandler.cpp.
References MsgHandler(), MT_GLDEBUG, and myGLDebugInstance.
Referenced by GUIMessageWindow::registerMsgHandlers(), GNELoadThread::run(), GNELoadThread::submitEndAndCleanup(), and GUIMessageWindow::unregisterMsgHandlers().
|
static |
Returns the instance to add normal messages to.
Definition at line 58 of file MsgHandler.cpp.
References MsgHandler(), MT_MESSAGE, and myMessageInstance.
Referenced by CHBuilder< E, V >::buildContractionHierarchy(), MSDeterministicHiLevelTrafficLightLogic::decideNextPhase(), MSSwarmTrafficLightLogic::decideNextPhase(), GUIRunThread::deleteSim(), inform(), GUIRunThread::init(), NLBuilder::init(), initOutputOptions(), NBHeightMapper::loadIfSet(), MSSOTLPhaseTrafficLightLogic::MSSOTLPhaseTrafficLightLogic(), MSSOTLPolicyBasedTrafficLightLogic::MSSOTLPolicyBasedTrafficLightLogic(), MSSOTLWaveTrafficLightLogic::MSSOTLWaveTrafficLightLogic(), GUIMessageWindow::registerMsgHandlers(), GNELoadThread::run(), GUILoadThread::run(), GUILoadThread::submitEndAndCleanup(), GNELoadThread::submitEndAndCleanup(), and GUIMessageWindow::unregisterMsgHandlers().
|
static |
Returns the instance to add warnings to.
Definition at line 67 of file MsgHandler.cpp.
References MsgHandler(), MT_WARNING, and myWarningInstance.
Referenced by NLHandler::addPhase(), DijkstraRouter< E, V, BASE >::clone(), AStarRouter< MSEdge, SUMOVehicle, SUMOAbstractRouterPermissions< MSEdge, SUMOVehicle > >::clone(), CHRouter< E, V, BASE >::clone(), ROJTRRouter::compute(), GUIRunThread::deleteSim(), GUIRunThread::init(), NLBuilder::init(), initOutputOptions(), PCLoaderOSM::loadIfSet(), NBLoadedTLDef::myCompute(), RORouteDef::preComputeCurrentRoute(), GUIMessageWindow::registerMsgHandlers(), RORouteDef::repairCurrentRoute(), GNELoadThread::run(), GUILoadThread::run(), RONet::saveAndRemoveRoutesUntil(), GUILoadThread::submitEndAndCleanup(), GNELoadThread::submitEndAndCleanup(), TraCIServer::TraCIServer(), and GUIMessageWindow::unregisterMsgHandlers().
void MsgHandler::inform | ( | std::string | msg, |
bool | addType = true |
||
) |
adds a new error to the list
Definition at line 113 of file MsgHandler.cpp.
References build(), getMessageInstance(), inform(), AbstractMutex::lock(), myAmProcessingProcess, myLock, myRetrievers, myWasInformed, and AbstractMutex::unlock().
Referenced by RORouteHandler::addPersonTrip(), NLHandler::addPhase(), ROVehicle::addStop(), RORouteHandler::addStop(), MSSOTLTrafficLightLogic::checkPhases(), RORouteHandler::closeFlow(), RORouteHandler::closeRoute(), RORouteHandler::closeRouteDistribution(), RORouteHandler::closeVehicle(), RORouteHandler::closeVehicleTypeDistribution(), ROJTRRouter::compute(), DijkstraRouter< E, V, BASE >::compute(), AStarRouter< MSEdge, SUMOVehicle, SUMOAbstractRouterPermissions< MSEdge, SUMOVehicle > >::compute(), CHRouter< E, V, BASE >::compute(), ROPerson::computeIntermodal(), ROVehicle::computeRoute(), MSDeterministicHiLevelTrafficLightLogic::decideNextPhase(), MSSwarmTrafficLightLogic::decideNextPhase(), inform(), GUIRunThread::init(), main(), GUIRunThread::makeStep(), MSPhaseDefinition::MSPhaseDefinition(), MSSOTLPhaseTrafficLightLogic::MSSOTLPhaseTrafficLightLogic(), MSSOTLPolicyBasedTrafficLightLogic::MSSOTLPolicyBasedTrafficLightLogic(), MSSOTLWaveTrafficLightLogic::MSSOTLWaveTrafficLightLogic(), NIXMLConnectionsHandler::myStartElement(), RORouteHandler::myStartElement(), PCLoaderOSM::NodesHandler::myStartElement(), PCLoaderOSM::RelationsHandler::myStartElement(), PCLoaderOSM::EdgesHandler::myStartElement(), RORouteHandler::openRoute(), RORouteHandler::openRouteDistribution(), RORouteHandler::openVehicleTypeDistribution(), NIXMLConnectionsHandler::parseConnection(), NIXMLConnectionsHandler::parseDeprecatedLaneDefinition(), RORouteHandler::parseEdges(), RORouteHandler::parseFromViaTo(), NIXMLConnectionsHandler::parseLaneBound(), SUMORouteHandler::parseStop(), RORouteDef::preComputeCurrentRoute(), RORouteDef::repairCurrentRoute(), GUILoadThread::run(), MSSOTLTrafficLightLogic::setToATargetPhase(), TraCIServer::TraCIServer(), and writeDebugGLMessages().
|
static |
init output options
Definition at line 239 of file MsgHandler.cpp.
References addRetriever(), OptionsCont::getBool(), OutputDevice::getDevice(), getErrorInstance(), getMessageInstance(), OptionsCont::getOptions(), OptionsCont::getString(), getWarningInstance(), OptionsCont::isSet(), and removeRetriever().
Referenced by NLBuilder::init(), main(), GNELoadThread::run(), GUILoadThread::run(), and writeDebugGLMessages().
bool MsgHandler::isRetriever | ( | OutputDevice * | retriever | ) | const |
Returns whether the given output device retrieves messages from the handler.
Definition at line 214 of file MsgHandler.cpp.
References myRetrievers.
Referenced by addRetriever(), OutputDevice::closeAll(), and writeDebugGLMessages().
|
inline |
Generic output operator.
Definition at line 143 of file MsgHandler.h.
References myRetrievers.
|
privatedelete |
invalid assignment operator
void MsgHandler::removeRetriever | ( | OutputDevice * | retriever | ) |
Removes the retriever from the handler.
Definition at line 199 of file MsgHandler.cpp.
References AbstractMutex::lock(), myLock, myRetrievers, and AbstractMutex::unlock().
Referenced by GUIRunThread::deleteSim(), initOutputOptions(), removeRetrieverFromAllInstances(), GUILoadThread::run(), GUILoadThread::submitEndAndCleanup(), GNELoadThread::submitEndAndCleanup(), GUIMessageWindow::unregisterMsgHandlers(), and writeDebugGLMessages().
|
static |
ensure that that given output device is no longer used as retriever by any instance
Definition at line 220 of file MsgHandler.cpp.
References myDebugInstance, myErrorInstance, myGLDebugInstance, myMessageInstance, myWarningInstance, and removeRetriever().
Referenced by OutputDevice::close(), and writeDebugGLMessages().
bool MsgHandler::wasInformed | ( | ) | const |
Returns the information whether any messages were added.
Definition at line 307 of file MsgHandler.cpp.
References myWasInformed.
Referenced by NLBuilder::build(), ROLoader::openRoutes(), ROLoader::processRoutes(), XMLSubSys::runParser(), and writeDebugGLMessages().
|
inlinestatic |
check whether to enable/disable gl-debug messages
Definition at line 93 of file MsgHandler.h.
References addRetriever(), assignLock(), beginProcessMsg(), cleanupOnEnd(), clear(), endProcessMsg(), inform(), initOutputOptions(), isRetriever(), myWriteDebugGLMessages, removeRetriever(), removeRetrieverFromAllInstances(), and wasInformed().
Referenced by SUMORTree::addAdditionalGLObject(), and SUMORTree::removeAdditionalGLObject().
|
inlinestatic |
check whether to enable/disable debug messages
Definition at line 88 of file MsgHandler.h.
References myWriteDebugMessages.
|
staticprivate |
Information whether a process information is printed to cout.
Definition at line 201 of file MsgHandler.h.
Referenced by beginProcessMsg(), endProcessMsg(), and inform().
|
staticprivate |
The instance to handle debug.
Definition at line 186 of file MsgHandler.h.
Referenced by cleanupOnEnd(), getDebugInstance(), and removeRetrieverFromAllInstances().
|
staticprivate |
The instance to handle errors.
Definition at line 192 of file MsgHandler.h.
Referenced by cleanupOnEnd(), getErrorInstance(), and removeRetrieverFromAllInstances().
|
staticprivate |
The instance to handle glDebug.
Definition at line 189 of file MsgHandler.h.
Referenced by cleanupOnEnd(), getGLDebugInstance(), and removeRetrieverFromAllInstances().
|
staticprivate |
The lock if any has to be used. The lock will not be deleted.
Definition at line 204 of file MsgHandler.h.
Referenced by addRetriever(), assignLock(), beginProcessMsg(), cleanupOnEnd(), clear(), endProcessMsg(), inform(), and removeRetriever().
|
staticprivate |
The instance to handle normal messages.
Definition at line 198 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 217 of file MsgHandler.h.
Referenced by addRetriever(), beginProcessMsg(), endProcessMsg(), inform(), isRetriever(), operator<<(), and removeRetriever().
|
private |
|
staticprivate |
The instance to handle warnings.
Definition at line 195 of file MsgHandler.h.
Referenced by cleanupOnEnd(), getWarningInstance(), and removeRetrieverFromAllInstances().
|
private |
information wehther an error occurred at all
Definition at line 211 of file MsgHandler.h.
Referenced by beginProcessMsg(), clear(), endProcessMsg(), inform(), and wasInformed().
|
staticprivate |
Definition at line 231 of file MsgHandler.h.
Referenced by enableDebugGLMessages(), and writeDebugGLMessages().
|
staticprivate |
Flag to enable or disable debug GL Functions.
This value is used to show more internal information throught warning messages about certain operations
Definition at line 230 of file MsgHandler.h.
Referenced by enableDebugMessages(), and writeDebugMessages().