//! Constructor PrintMonitor(const BaseClass& object, const std::string& msg, MsgType msgLevel = Runtime0) { // Inherit verbosity from 'object' SetVerbLevel(object.GetVerbLevel()); setOStream(object.getOStream()); // Print description and new indent if (IsPrint(msgLevel)) { GetOStream(msgLevel, 0) << msg << std::endl; tab_ = rcp(new Teuchos::OSTab(getOStream())); } }
/*! @brief Constructor @param[in] object Reference to the class instance that is creating this MutuallyExclusiveTimeMonitor. @param[in] msg String that indicates what the Monitor is monitoring, e.g., "Build" @param[in] timerLevel Governs whether timing information should be *gathered*. Setting this to NoTimeReport prevents the creation of timers. */ MutuallyExclusiveTimeMonitor(const BaseClass& object, const std::string& msg, MsgType timerLevel = Timings0) { // Inherit verbosity from 'object' SetVerbLevel(object.GetVerbLevel()); setOStream(object.getOStream()); if (IsPrint(timerLevel) && /* disable timer if never printed: */ (IsPrint(RuntimeTimings) || (!IsPrint(NoTimeReport)))) { if (!IsPrint(NoTimeReport)) { timer_ = MutuallyExclusiveTime<TagName>::getNewTimer("MueLu: " + msg /*+ " (MutuallyExclusive)" */); } else { timer_ = rcp(new MutuallyExclusiveTime<TagName> ("MueLu: " + msg /*+ " (MutuallyExclusive)" */)); } timer_->start(); timer_->incrementNumCalls(); } }
TimeMonitor(const BaseClass& object, const std::string& msg, MsgType timerLevel = Timings0) { // Inherit verbosity from 'object' SetVerbLevel(object.GetVerbLevel()); setOStream(object.getOStream()); if (IsPrint(timerLevel) && /* disable timer if never printed: */ (IsPrint(RuntimeTimings) || (!IsPrint(NoTimeReport)))) { if (!IsPrint(NoTimeReport)) { // TODO: there is no function to register a timer in Teuchos::TimeMonitor after the creation of the timer. But would be useful... timer_ = Teuchos::TimeMonitor::getNewTimer("MueLu: " + msg); } else { timer_ = rcp(new Teuchos::Time("MueLu: " + msg)); } // Start the timer (this is what is done by Teuchos::TimeMonitor) timer_->start(); timer_->incrementNumCalls(); } }