10#ifndef TEUCHOS_VERBOSE_OBJECT_HPP
11#define TEUCHOS_VERBOSE_OBJECT_HPP
14#include "Teuchos_FancyOStream.hpp"
124 virtual OSTab getOSTab(
const int tabs = 1,
const std::string &linePrefix =
"")
const;
148 std::string thisLinePrefix_;
153#pragma warning(disable:4251)
201template<
class ObjectType>
280template<
class ObjectType>
289 verboseObject_(verboseObject),
292 if(verboseObject_.get()) {
293 oldOStream_ = verboseObject_->getOStream();
294 oldVerbLevel_ = verboseObject_->getVerbLevel();
295 verboseObject_->setOStream(newOStream);
296 verboseObject_->setVerbLevel(newVerbLevel);
302 if(verboseObject_.get()) {
303 verboseObject_->setOStream(oldOStream_);
304 verboseObject_->setVerbLevel(oldVerbLevel_);
330template<
class ObjectType>
333 privateDefaultVerbLevel() = defaultVerbLevel;
337template<
class ObjectType>
340 return privateDefaultVerbLevel();
347template<
class ObjectType>
358template<
class ObjectType>
364 thisVerbLevel_ = verbLevel;
369template<
class ObjectType>
373 thisVerbLevel_ = verbLevel;
379template<
class ObjectType>
385 thisOverridingVerbLevel_ = verbLevel;
394template<
class ObjectType>
398 return thisOverridingVerbLevel_;
401 return thisVerbLevel_;
408template<
class ObjectType>
412 return defaultVerbLevel;
Reference-counted pointer class and non-member templated function implementations.
Smart reference counting pointer class for automatic garbage collection.
virtual RCP< FancyOStream > getOStream() const
Return the output stream to be used for out for *this object.
void initializeVerboseObjectBase(const RCP< FancyOStream > &oStream=Teuchos::null)
Calls initializeVerboseObject().
VerboseObjectBase(const RCP< FancyOStream > &oStream=Teuchos::null)
Calls initializeVerboseObject().
virtual std::string getLinePrefix() const
Get the line prefix for this object.
virtual OSTab getOSTab(const int tabs=1, const std::string &linePrefix="") const
Create a tab object which sets the number of tabs and optionally the line prefix.
virtual void informUpdatedVerbosityState() const
Function that is called whenever the verbosity state is updated.
virtual VerboseObjectBase & setLinePrefix(const std::string &linePrefix)
Set line prefix name for this object.
virtual const VerboseObjectBase & setOStream(const RCP< FancyOStream > &oStream) const
The output stream for *this object.
static void setDefaultOStream(const RCP< FancyOStream > &defaultOStream)
Set the default output stream object.
static RCP< FancyOStream > getDefaultOStream()
Get the default output stream object.
virtual RCP< FancyOStream > getOverridingOStream() const
Return the the overriding output stream if set.
virtual const VerboseObjectBase & setOverridingOStream(const RCP< FancyOStream > &oStream) const
Set the overriding the output stream for *this object.
Set and release a stream and verbosity level.
VerboseObjectTempState(const RCP< const VerboseObject< ObjectType > > &verboseObject, const RCP< FancyOStream > &newOStream, const EVerbosityLevel newVerbLevel)
~VerboseObjectTempState()
Templated base class for objects that can print their activities to a stream and have a verbosity lev...
static void setDefaultVerbLevel(const EVerbosityLevel defaultVerbLevel)
Set the default verbosity level.
virtual const VerboseObject & setVerbLevel(const EVerbosityLevel verbLevel) const
Set this object's verbosity level.
virtual EVerbosityLevel getVerbLevel() const
Get the verbosity level.
VerboseObject(const EVerbosityLevel verbLevel=VERB_DEFAULT, const RCP< FancyOStream > &oStream=Teuchos::null)
Constructor: calls initializeVerboseObject().
void initializeVerboseObject(const EVerbosityLevel verbLevel=VERB_DEFAULT, const RCP< FancyOStream > &oStream=Teuchos::null)
Initialize the VerboseObject.
static EVerbosityLevel getDefaultVerbLevel()
Get the default verbosity level.
virtual const VerboseObject & setOverridingVerbLevel(const EVerbosityLevel verbLevel) const
Set the overriding verbosity level for *this object.
basic_OSTab< char > OSTab
EVerbosityLevel
Verbosity level.
@ VERB_DEFAULT
Generate output as defined by the object.
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...