#include <MsgHandler.h>
Definition at line 57 of file MsgHandler.h.
Public Types | |
| enum | MsgType { MT_MESSAGE, MT_WARNING, MT_ERROR } |
Public Member Functions | |
| void | addRetriever (OutputDevice *retriever) |
| Adds a further retriever to the instance responsible for a certain msg type. | |
| void | beginProcessMsg (std::string msg, bool addType=true) |
| Begins a process information. | |
| void | clear () |
| Clears information whether an error occured previously. | |
| void | endProcessMsg (std::string msg) |
| Ends a process information. | |
| void | inform (std::string msg, bool addType=true) |
| adds a new error to the list | |
| template<class T> | |
| MsgHandler & | operator<< (const T &t) |
| Generic output operator. | |
| void | progressMsg (std::string msg, bool addType=true) |
| Writes a progress message. | |
| void | removeRetriever (OutputDevice *retriever) |
| Removes the retriever from the. | |
| void | report2cerr (bool value) |
| Sets the information whether stderr shall be used as output device. | |
| void | report2cout (bool value) |
| Sets the information whether stdout shall be used as output device. | |
| bool | wasInformed () const |
| Returns the information whether any messages were added. | |
Static Public Member Functions | |
| static void | assignLock (AbstractMutex *lock) |
| Sets the lock to use The lock will not be deleted. | |
| static void | cleanupOnEnd () |
| Removes pending handler. | |
| 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 (bool gui=false) |
Protected Member Functions | |
| std::string | build (const std::string &msg, bool addType) |
| Builds the string which includes the mml-message type. | |
Private Types | |
| typedef std::vector < OutputDevice * > | RetrieverVector |
| Definition of the list of retrievers to inform. | |
Private Member Functions | |
| MsgHandler (const MsgHandler &s) | |
| MsgHandler (MsgType type) | |
| standard constructor | |
| MsgHandler & | operator= (const MsgHandler &s) |
| ~MsgHandler () | |
| destructor | |
Private Attributes | |
| bool | myReport2CERR |
| Information whether stderr shall be used as output device, too. | |
| bool | myReport2COUT |
| Information whether stdout shall be used as output device, too. | |
| RetrieverVector | myRetrievers |
| The list of retrievers that shall be informed about new messages or errors. | |
| MsgType | myType |
| The type of the instance. | |
| bool | myWasInformed |
| information wehther an error occured at all | |
Static Private Attributes | |
| static bool | myAmProcessingProcess = false |
| Information whether a process information is printed to cout. | |
| static MsgHandler * | myErrorInstance = 0 |
| The instance to handle errors. | |
| static AbstractMutex * | myLock = 0 |
| The lock if any has to be used The lock will not be deleted. | |
| static MsgHandler * | myMessageInstance = 0 |
| The instance to handle normal messages. | |
| static MsgHandler * | myWarningInstance = 0 |
| The instance to handle warnings. | |
typedef std::vector<OutputDevice*> MsgHandler::RetrieverVector [private] |
| enum MsgHandler::MsgType |
An enumeration to differ between different types of messages (errors, warning and information)
| MT_MESSAGE | The message is only something to show. |
| MT_WARNING | The message is a warning. |
| MT_ERROR | The message is an error. |
Definition at line 64 of file MsgHandler.h.
00064 { 00066 MT_MESSAGE, 00068 MT_WARNING, 00070 MT_ERROR 00071 };
| MsgHandler::MsgHandler | ( | MsgType | type | ) | [private] |
standard constructor
Definition at line 365 of file MsgHandler.cpp.
Referenced by getErrorInstance(), getMessageInstance(), and getWarningInstance().
00366 : myType(type), myWasInformed(false), myReport2COUT(type==MT_MESSAGE), 00367 myReport2CERR(type!=MT_MESSAGE) {}
| MsgHandler::~MsgHandler | ( | ) | [private] |
| MsgHandler::MsgHandler | ( | const MsgHandler & | s | ) | [private] |
invalid copy constructor
| void MsgHandler::addRetriever | ( | OutputDevice * | retriever | ) |
Adds a further retriever to the instance responsible for a certain msg type.
Definition at line 225 of file MsgHandler.cpp.
References OptionsCont::exists(), OptionsCont::getBool(), OptionsCont::getOptions(), AbstractMutex::lock(), MT_MESSAGE, MT_WARNING, myLock, myRetrievers, myType, and AbstractMutex::unlock().
Referenced by GUILoadThread::GUILoadThread(), GUIRunThread::init(), initOutputOptions(), and GUILoadThread::run().
00225 { 00226 if (myLock!=0) { 00227 myLock->lock(); 00228 } 00229 RetrieverVector::iterator i = 00230 find(myRetrievers.begin(), myRetrievers.end(), retriever); 00231 if (i==myRetrievers.end()) { 00232 myRetrievers.push_back(retriever); 00233 } 00234 // check whether the message shall be generated 00235 if (myType==MT_WARNING) { 00236 gSuppressWarnings = OptionsCont::getOptions().exists("suppress-warnings") 00237 ? OptionsCont::getOptions().getBool("suppress-warnings") 00238 : false; 00239 } else if (myType==MT_MESSAGE) { 00240 gSuppressMessages = false; 00241 } 00242 if (myLock!=0) { 00243 myLock->unlock(); 00244 } 00245 }
| void MsgHandler::assignLock | ( | AbstractMutex * | lock | ) | [static] |
| 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 156 of file MsgHandler.cpp.
References build(), AbstractMutex::lock(), myAmProcessingProcess, myLock, myReport2CERR, myReport2COUT, myRetrievers, myWasInformed, and AbstractMutex::unlock().
Referenced by NLBuilder::build(), RODFNet::computeTypes(), NLBuilder::load(), NIImporter_VISUM::load(), NIImporter_ArcView::load(), OptionsIO::loadConfiguration(), loadDistricts(), PCNetProjectionLoader::loadIfSet(), PCLoaderXML::loadIfSet(), PCLoaderVisum::loadIfSet(), PCLoaderOSM::loadIfSet(), PCLoaderArcView::loadIfSet(), ROLoader::loadNet(), NIImporter_SUMO::loadNetwork(), NIImporter_RobocupRescue::loadNetwork(), NIImporter_OpenStreetMap::loadNetwork(), NIImporter_OpenDrive::loadNetwork(), NIImporter_DlrNavteq::loadNetwork(), PCLoaderDlrNavteq::loadPOIFiles(), PCLoaderDlrNavteq::loadPolyFiles(), ROLoader::loadWeights(), NILoader::loadXMLType(), readDetectorFlows(), readDetectors(), readO(), readV(), and startComputation().
00156 { 00157 if (myLock!=0) { 00158 myLock->lock(); 00159 } 00160 msg = build(msg, addType); 00161 // report to std::cout if wished 00162 if (myReport2COUT) { 00163 std::cout << msg << ' '; 00164 std::cout.flush(); 00165 myAmProcessingProcess = true; 00166 } 00167 // report to std::cerr if wished 00168 if (myReport2CERR) { 00169 std::cerr << msg << ' '; 00170 std::cerr.flush(); 00171 myAmProcessingProcess = true; 00172 } 00173 // inform all other receivers 00174 for (RetrieverVector::iterator i=myRetrievers.begin(); i!=myRetrievers.end(); i++) { 00175 (*i)->inform(msg + " "); 00176 myAmProcessingProcess = true; 00177 } 00178 // set the information that something occured 00179 myWasInformed = true; 00180 if (myLock!=0) { 00181 myLock->unlock(); 00182 } 00183 }
| std::string MsgHandler::build | ( | const std::string & | msg, | |
| bool | addType | |||
| ) | [inline, protected] |
Builds the string which includes the mml-message type.
Definition at line 151 of file MsgHandler.h.
References MT_ERROR, MT_MESSAGE, MT_WARNING, and myType.
Referenced by beginProcessMsg(), inform(), and progressMsg().
00151 { 00152 if (addType) { 00153 switch (myType) { 00154 case MT_MESSAGE: 00155 break; 00156 case MT_WARNING: 00157 return "Warning: " + msg; 00158 break; 00159 case MT_ERROR: 00160 return "Error: " + msg; 00161 break; 00162 default: 00163 break; 00164 } 00165 } 00166 return msg; 00167 }
| void MsgHandler::cleanupOnEnd | ( | ) | [static] |
Removes pending handler.
Definition at line 349 of file MsgHandler.cpp.
References AbstractMutex::lock(), myErrorInstance, myLock, myMessageInstance, myWarningInstance, and AbstractMutex::unlock().
Referenced by SystemFrame::close(), and GUIRunThread::deleteSim().
00349 { 00350 if (myLock!=0) { 00351 myLock->lock(); 00352 } 00353 delete myMessageInstance; 00354 myMessageInstance = 0; 00355 delete myWarningInstance; 00356 myWarningInstance = 0; 00357 delete myErrorInstance; 00358 myErrorInstance = 0; 00359 if (myLock!=0) { 00360 myLock->unlock(); 00361 } 00362 }
| void MsgHandler::clear | ( | ) |
Clears information whether an error occured previously.
Definition at line 213 of file MsgHandler.cpp.
References AbstractMutex::lock(), myLock, myWasInformed, and AbstractMutex::unlock().
Referenced by loadJTRDefinitions(), main(), NBLoadedTLDef::myCompute(), and GUILoadThread::run().
00213 { 00214 if (myLock!=0) { 00215 myLock->lock(); 00216 } 00217 myWasInformed = false; 00218 if (myLock!=0) { 00219 myLock->unlock(); 00220 } 00221 }
| void MsgHandler::endProcessMsg | ( | std::string | msg | ) |
Ends a process information.
Definition at line 187 of file MsgHandler.cpp.
References AbstractMutex::lock(), myAmProcessingProcess, myLock, myReport2CERR, myReport2COUT, myRetrievers, myWasInformed, and AbstractMutex::unlock().
Referenced by NLBuilder::build(), RODFNet::computeTypes(), PCLoaderArcView::load(), NLBuilder::load(), NIImporter_VISUM::load(), NIImporter_ArcView::load(), OptionsIO::loadConfiguration(), loadDistricts(), PCNetProjectionLoader::loadIfSet(), PCLoaderXML::loadIfSet(), PCLoaderVisum::loadIfSet(), PCLoaderOSM::loadIfSet(), PCLoaderArcView::loadIfSet(), ROLoader::loadNet(), NIImporter_SUMO::loadNetwork(), NIImporter_RobocupRescue::loadNetwork(), NIImporter_OpenStreetMap::loadNetwork(), NIImporter_OpenDrive::loadNetwork(), NIImporter_DlrNavteq::loadNetwork(), PCLoaderDlrNavteq::loadPOIFiles(), PCLoaderDlrNavteq::loadPolyFiles(), ROLoader::loadWeights(), NILoader::loadXMLType(), readDetectorFlows(), readDetectors(), readO(), readV(), and startComputation().
00187 { 00188 if (myLock!=0) { 00189 myLock->lock(); 00190 } 00191 // report to std::cout if wished 00192 if (myReport2COUT) { 00193 std::cout << msg << std::endl; 00194 } 00195 // report to std::cerr if wished 00196 if (myReport2CERR) { 00197 std::cerr << msg << std::endl; 00198 } 00199 // inform all other receivers 00200 for (RetrieverVector::iterator i=myRetrievers.begin(); i!=myRetrievers.end(); i++) { 00201 (*i)->inform(msg); 00202 } 00203 // set the information that something occured 00204 myWasInformed = true; 00205 myAmProcessingProcess = false; 00206 if (myLock!=0) { 00207 myLock->unlock(); 00208 } 00209 }
| MsgHandler * MsgHandler::getErrorInstance | ( | ) | [static] |
Returns the instance to add errors to.
Definition at line 85 of file MsgHandler.cpp.
References MsgHandler(), MT_ERROR, and myErrorInstance.
Referenced by ODMatrix::add(), NLHandler::addDistrict(), NLHandler::addDistrictEdge(), NLHandler::addE1Detector(), NLHandler::addE2Detector(), RONet::addEdge(), NLHandler::addEdgeLaneMeanData(), ROLoader::EdgeFloatTimeLineRetriever_EdgeWeight::addEdgeWeight(), ROLoader::EdgeFloatTimeLineRetriever_EdgeTravelTime::addEdgeWeight(), NLBuilder::EdgeFloatTimeLineRetriever_EdgeTravelTime::addEdgeWeight(), NLBuilder::EdgeFloatTimeLineRetriever_EdgeEffort::addEdgeWeight(), ROJTREdge::addFollowerProbability(), NLHandler::addIncomingLanes(), NIImporter_SUMO::addJunction(), NLHandler::addLaneShape(), NLHandler::addLogicItem(), RONet::addNode(), NLHandler::addPhase(), NLHandler::addPOI(), NLHandler::addRouteProbeDetector(), NLHandler::addSource(), NIImporter_SUMO::addSuccEdge(), NLHandler::addSuccLane(), ROJTRTurnDefLoader::addToEdge(), NLHandler::addTrigger(), RONet::addVehicle(), RONet::addVehicleType(), NLHandler::addVTypeProbeDetector(), NLHandler::addWAUTJunction(), NLHandler::addWAUTSwitch(), SUMOVehicleParameter::arrivallaneValidate(), SUMOVehicleParameter::arrivalposValidate(), SUMOVehicleParameter::arrivalspeedValidate(), NLHandler::beginE3Detector(), NLHandler::beginEdgeParsing(), ROJTRTurnDefLoader::beginFromEdge(), NLBuilder::build(), RORouteDef_Complete::buildCurrentRoute(), RODFDetector::buildDestinationDistribution(), NIImporter_VISUM::buildDistrictNode(), buildNetwork(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), NLTriggerBuilder::buildVaporizer(), OptionsCont::checkDependingSuboptions(), NIImporter_VISUM::checkNodes(), ROFrame::checkOptions(), checkOptions(), MSFrame::checkOptions(), MSTLLogicControl::TLSLogicVariants::checkOriginalTLS(), OptionsParser::checkParameter(), NLHandler::closeEdge(), NLHandler::closeJunction(), NLHandler::closeLane(), MSRouteHandler::closeRouteDistribution(), NLHandler::closeSuccLane(), RORDLoader_SUMOBase::closeVehicle(), MSRouteHandler::closeVehicleTypeDistribution(), NLHandler::closeWAUT(), ROJTRRouter::compute(), DijkstraRouterTTBase< E, V, PF >::compute(), DijkstraRouterEffortBase< E, V, PF >::compute(), RONet::computeRoute(), NIImporter_OpenDrive::computeShapes(), GUIRunThread::deleteSim(), SUMOVehicleParameter::departlaneValidate(), SUMOVehicleParameter::departposValidate(), SUMOVehicleParameter::departspeedValidate(), NIVissimTL::dict_SetSignals(), GUISUMOAbstractView::drawDecals(), SUMOSAXAttributes::emitEmptyError(), GeomConvHelper::emitError(), SUMOSAXAttributes::emitFormatError(), SUMOSAXAttributes::emitUngivenError(), NLHandler::endE3Detector(), OptionsLoader::error(), OptionsLoader::fatalError(), RORDLoader_TripDefs::getEdge(), NIImporter_VISUM::getNamedEdge(), NIImporter_VISUM::getNamedEdgeContinuating(), NIImporter_VISUM::getNamedNode(), XMLSubSys::getSAXReader(), GUILoadThread::GUILoadThread(), GUIRunThread::init(), GeoConvHelper::init(), GUILoadThread::initOptions(), initOutputOptions(), NIXMLEdgesHandler::insertNodeChecking(), NIImporter_OpenStreetMap::insertNodeChecking(), MSLane::isEmissionSuccess(), MSMeanData_Net::MSLaneMeanDataValues::isStillActive(), MSMeanData_HBEFA::MSLaneMeanDataValues::isStillActive(), MSMeanData_Harmonoise::MSLaneMeanDataValues::isStillActive(), OptionsCont::isUsableFileList(), PCLoaderVisum::load(), PCLoaderArcView::load(), NIImporter_VISUM::load(), NIImporter_Vissim::load(), NIImporter_ArcView::load(), loadDistricts(), NIImporter_RobocupRescue::loadEdges(), PCLoaderOSM::loadIfSet(), loadJTRDefinitions(), NIImporter_SUMO::loadNetwork(), NIImporter_RobocupRescue::loadNetwork(), NIImporter_OpenStreetMap::loadNetwork(), NIImporter_OpenDrive::loadNetwork(), NIImporter_ArcView::loadNetwork(), PCLoaderDlrNavteq::loadPOIFile(), PCLoaderDlrNavteq::loadPolyFile(), NILoader::loadXMLType(), main(), ROLoader::makeSingleStep(), GUIRunThread::makeStep(), RORDLoader_SUMOBase::myCharacters(), PCLoaderXML::myCharacters(), RORDLoader_TripDefs::myEndElement(), NLHandler::myEndElement(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), RORDGenerator_ODAmounts::myEndFlowAmountDef(), RORDLoader_TripDefs::myStartElement(), PCTypeDefHandler::myStartElement(), PCLoaderXML::myStartElement(), PCLoaderOSM::EdgesHandler::myStartElement(), NLHandler::myStartElement(), NIXMLTypesHandler::myStartElement(), NIXMLNodesHandler::myStartElement(), NIXMLEdgesHandler::myStartElement(), NIXMLConnectionsHandler::myStartElement(), NIImporter_OpenStreetMap::EdgesHandler::myStartElement(), NIImporter_OpenStreetMap::NodesHandler::myStartElement(), MSRouteHandler::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSCalibrator::MSCalibrator_FileTriggeredChild::myStartElement(), GUIDialog_Breakpoints::onCmdLoad(), NLHandler::openJunction(), ROLoader::openTypedRoutes(), NLHandler::openWAUT(), OptionsParser::parse(), NIVissimSingleTypeParser_Simdauer::parse(), NIVissimSingleTypeParser_Signalgruppendefinition::parse(), NIVissimSingleTypeParser_Querverkehrsstoerungsdefinition::parse(), NIVissimSingleTypeParser_Lichtsignalanlagendefinition::parse(), NIImporter_VISUM::parse_AreaSubPartElement(), NIImporter_VISUM::parse_Connectors(), NIImporter_VISUM::parse_Districts(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Edges(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIImporter_VISUM::parse_Nodes(), NIImporter_VISUM::parse_Point(), NIImporter_VISUM::parse_SignalGroups(), NIImporter_VISUM::parse_Turns(), RGBColor::parseColorReporting(), RONetHandler::parseConnectedEdge(), ODDistrictHandler::parseConnection(), NIXMLConnectionsHandler::parseConnection(), RONetHandler::parseDistrictEdge(), RONetHandler::parseEdge(), SUMOVehicleParserHelper::parseEmissionClass(), SUMOVehicleParserHelper::parseGuiShape(), NIXMLConnectionsHandler::parseLaneBound(), NIXMLEdgesHandler::parseSplitLanes(), SUMOVehicleParserHelper::parseVehicleClass(), OptionsParser::processNonBooleanSingleSwitch(), ROLoader::processRoutesStepWise(), OptionsCont::reportDoubleSetting(), GUILoadThread::run(), XMLSubSys::runParser(), OptionsCont::set(), NBEdge::setConnection(), SUMOSAXAttributes::setIDFromAttributes(), NLHandler::setKey(), NLHandler::setLaneNumber(), NLHandler::setOffset(), NLHandler::setRequestSize(), NLHandler::setSubKey(), OptionsLoader::setValue(), RORDLoader_SUMOBase::startAlternative(), RORDLoader_SUMOBase::startRoute(), GUILoadThread::submitEndAndCleanup(), traci::TraCIServer::TraCIServer(), NIXMLEdgesHandler::tryGetShape(), SAXWeightsHandler::tryParse(), GUIEmitter::GUIEmitterChild_UserTriggeredChild::wrappedExecute(), RODFDetector::writeEmitterDefinition(), TraCIServerAPIHelper::writeStatusCmd(), and traci::TraCIServer::writeStatusCmd().
00085 { 00086 if (myErrorInstance==0) { 00087 myErrorInstance = new MsgHandler(MT_ERROR); 00088 } 00089 return myErrorInstance; 00090 }
| MsgHandler * MsgHandler::getMessageInstance | ( | ) | [static] |
Returns the instance to add normal messages to.
Definition at line 67 of file MsgHandler.cpp.
References MsgHandler(), MT_MESSAGE, and myMessageInstance.
Referenced by NLBuilder::build(), RODFNet::computeTypes(), GUIRunThread::deleteSim(), GUIRunThread::init(), initOutputOptions(), NIVissimConnectionCluster::joinBySameEdges(), PCLoaderArcView::load(), NLBuilder::load(), NIImporter_VISUM::load(), NIImporter_ArcView::load(), OptionsIO::loadConfiguration(), loadDistricts(), PCNetProjectionLoader::loadIfSet(), PCLoaderXML::loadIfSet(), PCLoaderVisum::loadIfSet(), PCLoaderOSM::loadIfSet(), PCLoaderArcView::loadIfSet(), ROLoader::loadNet(), NIImporter_SUMO::loadNetwork(), NIImporter_RobocupRescue::loadNetwork(), NIImporter_OpenStreetMap::loadNetwork(), NIImporter_OpenDrive::loadNetwork(), NIImporter_DlrNavteq::loadNetwork(), NIImporter_RobocupRescue::loadNodes(), PCLoaderDlrNavteq::loadPOIFiles(), PCLoaderDlrNavteq::loadPolyFiles(), ROLoader::loadWeights(), NILoader::loadXMLType(), main(), NIXMLEdgesHandler::myStartElement(), ROLoader::openRoutes(), OptionsCont::processMetaOptions(), ROLoader::processRoutesStepWise(), readDetectorFlows(), readDetectors(), readO(), readV(), RODFNet::removeEmptyDetectors(), RODFNet::reportEmptyDetectors(), GUILoadThread::run(), startComputation(), GUILoadThread::submitEndAndCleanup(), traci::TraCIServer::TraCIServer(), ODMatrix::write(), and ROLoader::writeStats().
00067 { 00068 if (myMessageInstance==0) { 00069 myMessageInstance = new MsgHandler(MT_MESSAGE); 00070 } 00071 return myMessageInstance; 00072 }
| MsgHandler * MsgHandler::getWarningInstance | ( | ) | [static] |
Returns the instance to add warnings to.
Definition at line 76 of file MsgHandler.cpp.
References MsgHandler(), MT_WARNING, and myWarningInstance.
Referenced by ODMatrix::add(), NLHandler::addE1Detector(), NLHandler::addE2Detector(), NLHandler::addJunctionShape(), NLHandler::addLane(), NLHandler::addPhase(), NLHandler::addPoly(), NIVissimTL::NIVissimTLSignal::addTo(), NLHandler::beginE3Detector(), RORouteDef_Complete::buildCurrentRoute(), NIVissimConnection::buildEdgeConnections(), NIVissimEdge::buildNBEdge(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), NLTriggerBuilder::buildTrigger(), GUISUMOAbstractView::checkSnapshots(), ROJTRRouter::compute(), NBNode::computeInternalLaneShape(), NBEdge::computeLaneShape(), NBEdge::computeLaneShapes(), NBNode::computeLogic(), NBNode::computeNodeShape(), RONet::computeRoute(), RODFNet::computeRoutesFor(), GUIRunThread::deleteSim(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), GUISUMOAbstractView::drawDecals(), MSE3Collector::enter(), MSInductLoop::enterDetectorByMove(), NLTriggerBuilder::getLane(), NIVissimDistrictConnection::getMeanSpeed(), OptionsCont::getStringVector(), NBNodeCont::guessRamps(), GUIRunThread::init(), initOutputOptions(), RODFNet::isDestination(), RODFNet::isFalseSource(), RODFNet::isSource(), OptionsCont::isUsableFileList(), MSE3Collector::leave(), PCLoaderVisum::load(), PCLoaderArcView::load(), PCLoaderOSM::loadIfSet(), PCLoaderDlrNavteq::loadPolyFile(), main(), MSLane::moveCritical(), ROJTRTurnDefLoader::myCharacters(), PCLoaderXML::myCharacters(), NLHandler::myCharacters(), MSRouteHandler::myCharacters(), NBLoadedTLDef::myCompute(), NIXMLEdgesHandler::myEndElement(), RODFDetectorHandler::myStartElement(), PCLoaderXML::myStartElement(), NIXMLTypesHandler::myStartElement(), NIXMLEdgesHandler::myStartElement(), NIXMLConnectionsHandler::myStartElement(), NIImporter_OpenDrive::myStartElement(), NIVissimAbstractEdge::NIVissimAbstractEdge(), NIVissimSingleTypeParser_Signalgruppendefinition::parse(), NIImporter_VISUM::parse_Connectors(), NLTriggerBuilder::parseAndBuildBusStop(), NLTriggerBuilder::parseAndBuildLaneEmitTrigger(), NLTriggerBuilder::parseAndBuildLaneSpeedTrigger(), NLTriggerBuilder::parseAndBuildRerouter(), SUMOSAXAttributes::parseStringVector(), parseVehicleClasses(), RODFDetFlowLoader::read(), MSE3Collector::removeOnTripEnd(), NIVissimEdge::reportUnsetSpeeds(), GUILoadThread::run(), Option_IntVector::set(), MSLane::setCritical(), GUILoadThread::submitEndAndCleanup(), traci::TraCIServer::TraCIServer(), and SUMOSAXHandler::warning().
00076 { 00077 if (myWarningInstance==0) { 00078 myWarningInstance = new MsgHandler(MT_WARNING); 00079 } 00080 return myWarningInstance; 00081 }
| void MsgHandler::inform | ( | std::string | msg, | |
| bool | addType = true | |||
| ) |
adds a new error to the list
Definition at line 94 of file MsgHandler.cpp.
References build(), AbstractMutex::lock(), myAmProcessingProcess, myLock, myReport2CERR, myReport2COUT, myRetrievers, myWasInformed, and AbstractMutex::unlock().
Referenced by ODMatrix::add(), NLHandler::addDistrict(), NLHandler::addDistrictEdge(), NLHandler::addE1Detector(), NLHandler::addE2Detector(), RONet::addEdge(), NLHandler::addEdgeLaneMeanData(), ROLoader::EdgeFloatTimeLineRetriever_EdgeWeight::addEdgeWeight(), ROLoader::EdgeFloatTimeLineRetriever_EdgeTravelTime::addEdgeWeight(), NLBuilder::EdgeFloatTimeLineRetriever_EdgeTravelTime::addEdgeWeight(), NLBuilder::EdgeFloatTimeLineRetriever_EdgeEffort::addEdgeWeight(), ROJTREdge::addFollowerProbability(), NLHandler::addIncomingLanes(), NIImporter_SUMO::addJunction(), NLHandler::addJunctionShape(), NLHandler::addLane(), NLHandler::addLaneShape(), NLHandler::addLogicItem(), RONet::addNode(), NLHandler::addPhase(), NLHandler::addPOI(), NLHandler::addPoly(), NLHandler::addRouteProbeDetector(), NLHandler::addSource(), NIImporter_SUMO::addSuccEdge(), NLHandler::addSuccLane(), NIVissimTL::NIVissimTLSignal::addTo(), ROJTRTurnDefLoader::addToEdge(), NLHandler::addTrigger(), RONet::addVehicle(), RONet::addVehicleType(), NLHandler::addVTypeProbeDetector(), NLHandler::addWAUTJunction(), NLHandler::addWAUTSwitch(), SUMOVehicleParameter::arrivallaneValidate(), SUMOVehicleParameter::arrivalposValidate(), SUMOVehicleParameter::arrivalspeedValidate(), NLHandler::beginE3Detector(), NLHandler::beginEdgeParsing(), ROJTRTurnDefLoader::beginFromEdge(), NLBuilder::build(), RORouteDef_Complete::buildCurrentRoute(), RODFDetector::buildDestinationDistribution(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), NIVissimEdge::buildNBEdge(), buildNetwork(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), NLTriggerBuilder::buildTrigger(), NLTriggerBuilder::buildVaporizer(), OptionsCont::checkDependingSuboptions(), NIImporter_VISUM::checkNodes(), ROFrame::checkOptions(), checkOptions(), MSFrame::checkOptions(), MSTLLogicControl::TLSLogicVariants::checkOriginalTLS(), OptionsParser::checkParameter(), GUISUMOAbstractView::checkSnapshots(), NLHandler::closeEdge(), NLHandler::closeJunction(), NLHandler::closeLane(), MSRouteHandler::closeRouteDistribution(), NLHandler::closeSuccLane(), RORDLoader_SUMOBase::closeVehicle(), MSRouteHandler::closeVehicleTypeDistribution(), NLHandler::closeWAUT(), ROJTRRouter::compute(), DijkstraRouterTTBase< E, V, PF >::compute(), DijkstraRouterEffortBase< E, V, PF >::compute(), NBNode::computeInternalLaneShape(), NBEdge::computeLaneShape(), NBEdge::computeLaneShapes(), NBNode::computeLogic(), NBNode::computeNodeShape(), RONet::computeRoute(), RODFNet::computeRoutesFor(), NIImporter_OpenDrive::computeShapes(), RODFNet::computeTypes(), SUMOVehicleParameter::departlaneValidate(), SUMOVehicleParameter::departposValidate(), SUMOVehicleParameter::departspeedValidate(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), NIVissimTL::dict_SetSignals(), GUISUMOAbstractView::drawDecals(), SUMOSAXAttributes::emitEmptyError(), GeomConvHelper::emitError(), SUMOSAXAttributes::emitFormatError(), SUMOSAXAttributes::emitUngivenError(), NLHandler::endE3Detector(), MSE3Collector::enter(), MSInductLoop::enterDetectorByMove(), OptionsLoader::error(), OptionsLoader::fatalError(), RORDLoader_TripDefs::getEdge(), NLTriggerBuilder::getLane(), NIVissimDistrictConnection::getMeanSpeed(), NIImporter_VISUM::getNamedEdge(), NIImporter_VISUM::getNamedEdgeContinuating(), NIImporter_VISUM::getNamedNode(), XMLSubSys::getSAXReader(), OptionsCont::getStringVector(), NBNodeCont::guessRamps(), GeoConvHelper::init(), GUILoadThread::initOptions(), NIXMLEdgesHandler::insertNodeChecking(), NIImporter_OpenStreetMap::insertNodeChecking(), RODFNet::isDestination(), MSLane::isEmissionSuccess(), RODFNet::isFalseSource(), RODFNet::isSource(), MSMeanData_Net::MSLaneMeanDataValues::isStillActive(), MSMeanData_HBEFA::MSLaneMeanDataValues::isStillActive(), MSMeanData_Harmonoise::MSLaneMeanDataValues::isStillActive(), OptionsCont::isUsableFileList(), MSE3Collector::leave(), PCLoaderVisum::load(), PCLoaderArcView::load(), NIImporter_VISUM::load(), NIImporter_Vissim::load(), NIImporter_ArcView::load(), loadDistricts(), NIImporter_RobocupRescue::loadEdges(), PCLoaderOSM::loadIfSet(), NIImporter_SUMO::loadNetwork(), NIImporter_RobocupRescue::loadNetwork(), NIImporter_OpenStreetMap::loadNetwork(), NIImporter_OpenDrive::loadNetwork(), NIImporter_ArcView::loadNetwork(), NIImporter_RobocupRescue::loadNodes(), PCLoaderDlrNavteq::loadPOIFile(), PCLoaderDlrNavteq::loadPolyFile(), NILoader::loadXMLType(), main(), GUIRunThread::makeStep(), MSLane::moveCritical(), RORDLoader_SUMOBase::myCharacters(), ROJTRTurnDefLoader::myCharacters(), PCLoaderXML::myCharacters(), NLHandler::myCharacters(), MSRouteHandler::myCharacters(), NLHandler::myEndElement(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), RORDLoader_TripDefs::myStartElement(), RODFDetectorHandler::myStartElement(), PCTypeDefHandler::myStartElement(), PCLoaderXML::myStartElement(), PCLoaderOSM::EdgesHandler::myStartElement(), NLHandler::myStartElement(), NIXMLTypesHandler::myStartElement(), NIXMLNodesHandler::myStartElement(), NIXMLEdgesHandler::myStartElement(), NIXMLConnectionsHandler::myStartElement(), NIImporter_OpenStreetMap::EdgesHandler::myStartElement(), NIImporter_OpenStreetMap::NodesHandler::myStartElement(), NIImporter_OpenDrive::myStartElement(), MSRouteHandler::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSCalibrator::MSCalibrator_FileTriggeredChild::myStartElement(), NIVissimAbstractEdge::NIVissimAbstractEdge(), GUIDialog_Breakpoints::onCmdLoad(), NLHandler::openJunction(), ROLoader::openRoutes(), ROLoader::openTypedRoutes(), NLHandler::openWAUT(), OptionsParser::parse(), NIVissimSingleTypeParser_Simdauer::parse(), NIVissimSingleTypeParser_Signalgruppendefinition::parse(), NIVissimSingleTypeParser_Querverkehrsstoerungsdefinition::parse(), NIVissimSingleTypeParser_Lichtsignalanlagendefinition::parse(), NIImporter_VISUM::parse_AreaSubPartElement(), NIImporter_VISUM::parse_Connectors(), NIImporter_VISUM::parse_Districts(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Edges(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIImporter_VISUM::parse_Nodes(), NIImporter_VISUM::parse_Point(), NIImporter_VISUM::parse_SignalGroups(), NIImporter_VISUM::parse_Turns(), NLTriggerBuilder::parseAndBuildBusStop(), NLTriggerBuilder::parseAndBuildLaneEmitTrigger(), NLTriggerBuilder::parseAndBuildLaneSpeedTrigger(), NLTriggerBuilder::parseAndBuildRerouter(), RGBColor::parseColorReporting(), RONetHandler::parseConnectedEdge(), ODDistrictHandler::parseConnection(), NIXMLConnectionsHandler::parseConnection(), RONetHandler::parseDistrictEdge(), RONetHandler::parseEdge(), SUMOVehicleParserHelper::parseEmissionClass(), SUMOVehicleParserHelper::parseGuiShape(), NIXMLConnectionsHandler::parseLaneBound(), NIXMLEdgesHandler::parseSplitLanes(), SUMOSAXAttributes::parseStringVector(), SUMOVehicleParserHelper::parseVehicleClass(), parseVehicleClasses(), OptionsCont::processMetaOptions(), OptionsParser::processNonBooleanSingleSwitch(), ROLoader::processRoutesStepWise(), RODFDetFlowLoader::read(), RODFNet::removeEmptyDetectors(), MSE3Collector::removeOnTripEnd(), OptionsCont::reportDoubleSetting(), RODFNet::reportEmptyDetectors(), NIVissimEdge::reportUnsetSpeeds(), GUILoadThread::run(), XMLSubSys::runParser(), OptionsCont::set(), Option_IntVector::set(), NBEdge::setConnection(), MSLane::setCritical(), SUMOSAXAttributes::setIDFromAttributes(), NLHandler::setKey(), NLHandler::setLaneNumber(), NLHandler::setOffset(), NLHandler::setRequestSize(), NLHandler::setSubKey(), OptionsLoader::setValue(), RORDLoader_SUMOBase::startAlternative(), RORDLoader_SUMOBase::startRoute(), traci::TraCIServer::TraCIServer(), NIXMLEdgesHandler::tryGetShape(), SAXWeightsHandler::tryParse(), SUMOSAXHandler::warning(), GUIEmitter::GUIEmitterChild_UserTriggeredChild::wrappedExecute(), RODFDetector::writeEmitterDefinition(), TraCIServerAPIHelper::writeStatusCmd(), and traci::TraCIServer::writeStatusCmd().
00094 { 00095 if (myLock!=0) { 00096 myLock->lock(); 00097 } 00098 // beautify progress output 00099 if (myAmProcessingProcess && (myReport2COUT || myReport2CERR)) { 00100 std::cout << std::endl; 00101 } 00102 msg = build(msg, addType); 00103 // report to std::cout if wished 00104 if (myReport2COUT) { 00105 std::cout << msg << std::endl; 00106 } 00107 // report to std::cerr if wished 00108 if (myReport2CERR) { 00109 std::cerr << msg << std::endl; 00110 } 00111 // inform all other receivers 00112 for (RetrieverVector::iterator i=myRetrievers.begin(); i!=myRetrievers.end(); i++) { 00113 (*i)->inform(msg); 00114 } 00115 // set the information that something occured 00116 myWasInformed = true; 00117 myAmProcessingProcess = false; 00118 if (myLock!=0) { 00119 myLock->unlock(); 00120 } 00121 }
| void MsgHandler::initOutputOptions | ( | bool | gui = false |
) | [static] |
Definition at line 313 of file MsgHandler.cpp.
References addRetriever(), OptionsCont::getBool(), OutputDevice::getDevice(), getErrorInstance(), getMessageInstance(), OptionsCont::getOptions(), OptionsCont::getString(), getWarningInstance(), OptionsCont::isSet(), report2cerr(), and report2cout().
Referenced by main(), and GUILoadThread::run().
00313 { 00314 OptionsCont& oc = OptionsCont::getOptions(); 00315 getMessageInstance()->report2cout(!gui && oc.getBool("verbose")); 00316 getWarningInstance()->report2cerr(!gui && !oc.getBool("suppress-warnings")); 00317 // build the logger if possible 00318 if (oc.isSet("log-file")) { 00319 try { 00320 OutputDevice *logFile = &OutputDevice::getDevice(oc.getString("log-file")); 00321 getErrorInstance()->addRetriever(logFile); 00322 getWarningInstance()->addRetriever(logFile); 00323 getMessageInstance()->addRetriever(logFile); 00324 } catch (IOError &) { 00325 throw ProcessError("Could not build logging file '" + oc.getString("log-file") + "'"); 00326 } 00327 } 00328 if (oc.isSet("message-log")) { 00329 try { 00330 OutputDevice *logFile = &OutputDevice::getDevice(oc.getString("message-log")); 00331 getMessageInstance()->addRetriever(logFile); 00332 } catch (IOError &) { 00333 throw ProcessError("Could not build logging file '" + oc.getString("message-log") + "'"); 00334 } 00335 } 00336 if (oc.isSet("error-log")) { 00337 try { 00338 OutputDevice *logFile = &OutputDevice::getDevice(oc.getString("error-log")); 00339 getErrorInstance()->addRetriever(logFile); 00340 getWarningInstance()->addRetriever(logFile); 00341 } catch (IOError &) { 00342 throw ProcessError("Could not build logging file '" + oc.getString("error-log") + "'"); 00343 } 00344 } 00345 }
| MsgHandler& MsgHandler::operator<< | ( | const T & | t | ) | [inline] |
Generic output operator.
Definition at line 134 of file MsgHandler.h.
References myReport2CERR, myReport2COUT, and myRetrievers.
00134 { 00135 if (myReport2COUT) { 00136 std::cout << t; 00137 } 00138 // report to cerr if wished 00139 if (myReport2CERR) { 00140 std::cerr << t; 00141 } 00142 // inform all other receivers 00143 for (RetrieverVector::iterator i=myRetrievers.begin(); i!=myRetrievers.end(); i++) { 00144 (*(*i)) << t; 00145 } 00146 return *this; 00147 }
| MsgHandler& MsgHandler::operator= | ( | const MsgHandler & | s | ) | [private] |
invalid assignment operator
| void MsgHandler::progressMsg | ( | std::string | msg, | |
| bool | addType = true | |||
| ) |
Writes a progress message.
Writes the message and closes it with a (char) 13
Definition at line 125 of file MsgHandler.cpp.
References build(), AbstractMutex::lock(), myAmProcessingProcess, myLock, myReport2CERR, myReport2COUT, myRetrievers, myWasInformed, and AbstractMutex::unlock().
Referenced by NIVissimConnectionCluster::joinBySameEdges(), ODMatrix::write(), and ROLoader::writeStats().
00125 { 00126 if (myLock!=0) { 00127 myLock->lock(); 00128 } 00129 // beautify progress output 00130 if (myAmProcessingProcess && (myReport2COUT || myReport2CERR)) { 00131 std::cout << std::endl; 00132 } 00133 msg = build(msg, addType); 00134 // report to std::cout if wished 00135 if (myReport2COUT) { 00136 std::cout << msg << '\r'; 00137 } 00138 // report to std::cerr if wished 00139 if (myReport2CERR) { 00140 std::cerr << msg << '\r'; 00141 } 00142 // inform all other receivers 00143 for (RetrieverVector::iterator i=myRetrievers.begin(); i!=myRetrievers.end(); i++) { 00144 (*i)->inform(msg); 00145 } 00146 // set the information that something occured 00147 myWasInformed = true; 00148 myAmProcessingProcess = false; 00149 if (myLock!=0) { 00150 myLock->unlock(); 00151 } 00152 }
| void MsgHandler::removeRetriever | ( | OutputDevice * | retriever | ) |
Removes the retriever from the.
Definition at line 249 of file MsgHandler.cpp.
References OptionsCont::exists(), OptionsCont::getBool(), OptionsCont::getOptions(), AbstractMutex::lock(), MT_MESSAGE, MT_WARNING, myLock, myReport2COUT, myRetrievers, myType, and AbstractMutex::unlock().
Referenced by GUIRunThread::deleteSim(), and GUILoadThread::submitEndAndCleanup().
00249 { 00250 if (myLock!=0) { 00251 myLock->lock(); 00252 } 00253 RetrieverVector::iterator i = 00254 find(myRetrievers.begin(), myRetrievers.end(), retriever); 00255 if (i!=myRetrievers.end()) { 00256 myRetrievers.erase(i); 00257 } 00258 // check whether the message shall be generated 00259 if (myType==MT_WARNING) { 00260 gSuppressWarnings = OptionsCont::getOptions().exists("suppress-warnings") 00261 ? OptionsCont::getOptions().getBool("suppress-warnings") 00262 : myRetrievers.size()==0; 00263 } else if (myType==MT_MESSAGE) { 00264 gSuppressMessages = !(myRetrievers.size()==0||myReport2COUT); 00265 } 00266 if (myLock!=0) { 00267 myLock->unlock(); 00268 } 00269 }
| void MsgHandler::report2cerr | ( | bool | value | ) |
Sets the information whether stderr shall be used as output device.
Definition at line 293 of file MsgHandler.cpp.
References OptionsCont::exists(), OptionsCont::getBool(), OptionsCont::getOptions(), AbstractMutex::lock(), MT_MESSAGE, MT_WARNING, myLock, myReport2CERR, myReport2COUT, myRetrievers, myType, and AbstractMutex::unlock().
Referenced by initOutputOptions(), main(), and GUILoadThread::run().
00293 { 00294 if (myLock!=0) { 00295 myLock->lock(); 00296 } 00297 myReport2CERR = value; 00298 if (myType==MT_WARNING) { 00299 gSuppressWarnings = OptionsCont::getOptions().exists("suppress-warnings") 00300 ? OptionsCont::getOptions().getBool("suppress-warnings") 00301 : !myReport2CERR; 00302 } else if (myType==MT_MESSAGE) { 00303 gSuppressMessages = myRetrievers.size()==0&&!myReport2COUT; 00304 } 00305 std::cerr.setf(std::ios::fixed, std::ios::floatfield); 00306 if (myLock!=0) { 00307 myLock->unlock(); 00308 } 00309 }
| void MsgHandler::report2cout | ( | bool | value | ) |
Sets the information whether stdout shall be used as output device.
Definition at line 273 of file MsgHandler.cpp.
References OptionsCont::exists(), OptionsCont::getBool(), OptionsCont::getOptions(), AbstractMutex::lock(), MT_MESSAGE, MT_WARNING, myLock, myReport2COUT, myRetrievers, myType, and AbstractMutex::unlock().
Referenced by initOutputOptions(), main(), and GUILoadThread::run().
00273 { 00274 if (myLock!=0) { 00275 myLock->lock(); 00276 } 00277 myReport2COUT = value; 00278 if (myType==MT_WARNING) { 00279 gSuppressWarnings = OptionsCont::getOptions().exists("suppress-warnings") 00280 ? OptionsCont::getOptions().getBool("suppress-warnings") 00281 : !myReport2COUT; 00282 } else if (myType==MT_MESSAGE) { 00283 gSuppressMessages = myRetrievers.size()==0&&!myReport2COUT; 00284 } 00285 std::cout.setf(std::ios::fixed, std::ios::floatfield); 00286 if (myLock!=0) { 00287 myLock->unlock(); 00288 } 00289 }
| bool MsgHandler::wasInformed | ( | ) | const |
Returns the information whether any messages were added.
Definition at line 375 of file MsgHandler.cpp.
References myWasInformed.
Referenced by main(), ROLoader::makeSingleStep(), ROLoader::processRoutesStepWise(), XMLSubSys::runParser(), and traci::TraCIServer::TraCIServer().
00375 { 00376 return myWasInformed; 00377 }
bool MsgHandler::myAmProcessingProcess = false [static, private] |
Information whether a process information is printed to cout.
Definition at line 188 of file MsgHandler.h.
Referenced by beginProcessMsg(), endProcessMsg(), inform(), and progressMsg().
MsgHandler * MsgHandler::myErrorInstance = 0 [static, private] |
The instance to handle errors.
Definition at line 179 of file MsgHandler.h.
Referenced by cleanupOnEnd(), and getErrorInstance().
AbstractMutex * MsgHandler::myLock = 0 [static, private] |
The lock if any has to be used The lock will not be deleted.
Definition at line 192 of file MsgHandler.h.
Referenced by addRetriever(), assignLock(), beginProcessMsg(), cleanupOnEnd(), clear(), endProcessMsg(), inform(), progressMsg(), removeRetriever(), report2cerr(), and report2cout().
MsgHandler * MsgHandler::myMessageInstance = 0 [static, private] |
The instance to handle normal messages.
Definition at line 185 of file MsgHandler.h.
Referenced by cleanupOnEnd(), and getMessageInstance().
bool MsgHandler::myReport2CERR [private] |
Information whether stderr shall be used as output device, too.
Definition at line 205 of file MsgHandler.h.
Referenced by beginProcessMsg(), endProcessMsg(), inform(), operator<<(), progressMsg(), and report2cerr().
bool MsgHandler::myReport2COUT [private] |
Information whether stdout shall be used as output device, too.
Definition at line 202 of file MsgHandler.h.
Referenced by beginProcessMsg(), endProcessMsg(), inform(), operator<<(), progressMsg(), removeRetriever(), report2cerr(), and report2cout().
RetrieverVector MsgHandler::myRetrievers [private] |
The list of retrievers that shall be informed about new messages or errors.
Definition at line 211 of file MsgHandler.h.
Referenced by addRetriever(), beginProcessMsg(), endProcessMsg(), inform(), operator<<(), progressMsg(), removeRetriever(), report2cerr(), and report2cout().
MsgType MsgHandler::myType [private] |
The type of the instance.
Definition at line 196 of file MsgHandler.h.
Referenced by addRetriever(), build(), removeRetriever(), report2cerr(), and report2cout().
MsgHandler * MsgHandler::myWarningInstance = 0 [static, private] |
The instance to handle warnings.
Definition at line 182 of file MsgHandler.h.
Referenced by cleanupOnEnd(), and getWarningInstance().
bool MsgHandler::myWasInformed [private] |
information wehther an error occured at all
Definition at line 199 of file MsgHandler.h.
Referenced by beginProcessMsg(), clear(), endProcessMsg(), inform(), progressMsg(), and wasInformed().
1.5.6