Teuchos Package Browser (Single Doxygen Collection) Version of the Day
Static Private Member Functions | Private Attributes | Related Functions
Teuchos::VerboseObject< ObjectType > Class Template Reference

Templated base class for objects that can print their activities to a stream and have a verbosity level. More...

#include <Teuchos_VerboseObject.hpp>

Inheritance diagram for Teuchos::VerboseObject< ObjectType >:
Inheritance graph
[legend]

List of all members.

Static Private Member Functions

static EVerbosityLevelprivateDefaultVerbLevel ()

Private Attributes

EVerbosityLevel thisVerbLevel_
EVerbosityLevel thisOverridingVerbLevel_

Related Functions

(Note that these are not member functions.)

TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT
RCP< const ParameterList
getValidVerboseObjectSublist ()
 Return the sublist of valid parameters for the "VerboseObject" sublist.
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT
void 
setupVerboseObjectSublist (ParameterList *paramList)
 Setup a sublist called "VerboseObject" in the given parameter list.
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT
void 
readVerboseObjectSublist (ParameterList *paramList, RCP< FancyOStream > *oStream, EVerbosityLevel *verbLevel)
 Read the parameters in the "VerboseObject" sublist and set them on the given VerboseObject.
template<class ObjectType >
void readVerboseObjectSublist (ParameterList *paramList, VerboseObject< ObjectType > *verboseObject)
 Read the parameters in the "VerboseObject" sublist and set them on the given VerboseObject.

Public static member functions

static void setDefaultVerbLevel (const EVerbosityLevel defaultVerbLevel)
 Set the default verbosity level.
static EVerbosityLevel getDefaultVerbLevel ()
 Get the default verbosity level.

Constructors/Initializers

 VerboseObject (const EVerbosityLevel verbLevel=VERB_DEFAULT, const RCP< FancyOStream > &oStream=Teuchos::null)
 Constructor: calls initializeVerboseObject().
virtual void initializeVerboseObject (const EVerbosityLevel verbLevel=VERB_DEFAULT, const RCP< FancyOStream > &oStream=Teuchos::null)
 Initialize the VerboseObject.
virtual const VerboseObjectsetVerbLevel (const EVerbosityLevel verbLevel) const
 Set this object's verbosity level.
virtual const VerboseObjectsetOverridingVerbLevel (const EVerbosityLevel verbLevel) const
 Set the overriding verbosity level for *this object.

Query functions

virtual EVerbosityLevel getVerbLevel () const
 Get the verbosity level.

Detailed Description

template<class ObjectType>
class Teuchos::VerboseObject< ObjectType >

Templated base class for objects that can print their activities to a stream and have a verbosity level.

Objects that derive from this interface print to a default class-owned (i.e. static) output stream object (set using setDefaultOStream()) or the output stream can be set on an object-by-object basis using setOStream() . In addition, each object, by default, has a verbosity level that is shared by all objects (set using setDefaultVerbosityLevel()) or can be set on an object-by-object basis using setVerbLevel().

The output stream type is FancyOStream which allows for automated indentation (using the OSTab class) and has other useful features.

Note that setOStream() and setVerbLevel() are actually declared as const functions. This is to allow a client to temporarily change the stream and verbosity level. To do this saftely, use the class VerboseObjectTempState which will revert the output state after it is destroyed.

If the ParameterList subpackage of Teuchos is enabled (which it is by default), you may use the readVerboseObjectSublist nonmember function to pass a verbosity level and output stream filename to a VerboseObject using a ParameterList. The parameters are passed through a "VerboseObject" sublist of the input ParameterList. The sublist in turn takes optional parameters "Verbosity Level" (std::string) and "Output File" (std::string). "Verbosity Level" has six valid values: "VERB_DEFAULT", "VERB_NONE", "VERB_LOW", "VERB_MEDIUM", "VERB_HIGH", and "VERB_EXTREME". "VERB_DEFAULT" tells the object to use its default verbosity level, and the remaining values indicate increasing verbosity starting with "VERB_NONE" (say nothing). "Output File" is the name of a file to use for output; "none" means do not open a file, but write to the default output stream.

Definition at line 234 of file Teuchos_VerboseObject.hpp.


Constructor & Destructor Documentation

template<class ObjectType >
Teuchos::VerboseObject< ObjectType >::VerboseObject ( const EVerbosityLevel  verbLevel = VERB_DEFAULT,
const RCP< FancyOStream > &  oStream = Teuchos::null 
) [explicit]

Constructor: calls initializeVerboseObject().

Definition at line 377 of file Teuchos_VerboseObject.hpp.


Member Function Documentation

template<class ObjectType >
void Teuchos::VerboseObject< ObjectType >::setDefaultVerbLevel ( const EVerbosityLevel  defaultVerbLevel) [static]

Set the default verbosity level.

If not called, then the default verbosity level is VERB_DEFAULT.

Definition at line 360 of file Teuchos_VerboseObject.hpp.

template<class ObjectType >
EVerbosityLevel Teuchos::VerboseObject< ObjectType >::getDefaultVerbLevel ( ) [static]

Get the default verbosity level.

Definition at line 367 of file Teuchos_VerboseObject.hpp.

template<class ObjectType >
void Teuchos::VerboseObject< ObjectType >::initializeVerboseObject ( const EVerbosityLevel  verbLevel = VERB_DEFAULT,
const RCP< FancyOStream > &  oStream = Teuchos::null 
) [virtual]

Initialize the VerboseObject.

Parameters:
verbLevel[in] Initial verbosity level.
oStream[in/out] Initial output stream.
Note:
verbLevel must be the same as the default value for defaultVerbLevel_.

Definition at line 388 of file Teuchos_VerboseObject.hpp.

template<class ObjectType >
const VerboseObject< ObjectType > & Teuchos::VerboseObject< ObjectType >::setVerbLevel ( const EVerbosityLevel  verbLevel) const [virtual]

Set this object's verbosity level.

This function is supposed by called by general clients to set the output level according to some general logic in the code.

Definition at line 400 of file Teuchos_VerboseObject.hpp.

template<class ObjectType >
const VerboseObject< ObjectType > & Teuchos::VerboseObject< ObjectType >::setOverridingVerbLevel ( const EVerbosityLevel  verbLevel) const [virtual]

Set the overriding verbosity level for *this object.

This function is supposed to be called by special clients that want to set the output level in a way that will not be overridden by setOStream().

Definition at line 410 of file Teuchos_VerboseObject.hpp.

template<class ObjectType >
EVerbosityLevel Teuchos::VerboseObject< ObjectType >::getVerbLevel ( ) const [virtual]

Get the verbosity level.

Definition at line 424 of file Teuchos_VerboseObject.hpp.

template<class ObjectType >
EVerbosityLevel & Teuchos::VerboseObject< ObjectType >::privateDefaultVerbLevel ( ) [static, private]

Definition at line 438 of file Teuchos_VerboseObject.hpp.


Friends And Related Function Documentation

template<class ObjectType>
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT RCP< const ParameterList > getValidVerboseObjectSublist ( ) [related]

Return the sublist of valid parameters for the "VerboseObject" sublist.

This function need not be directly called by clients since the function setupVerboseObjectSublist() sets up the sublist automatically.

template<class ObjectType>
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT void setupVerboseObjectSublist ( ParameterList paramList) [related]

Setup a sublist called "VerboseObject" in the given parameter list.

Parameters:
paramList[in/out] The parameter list hat the "VerboseObject" sublist will be added to

Preconditions:

  • paramList!=0
template<class ObjectType>
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT void readVerboseObjectSublist ( ParameterList paramList,
RCP< FancyOStream > *  oStream,
EVerbosityLevel verbLevel 
) [related]

Read the parameters in the "VerboseObject" sublist and set them on the given VerboseObject.

Parameters:
paramList[in/out] On input, contains the user's parameter list for the given objet for which "VerboseObject" can be a sublist of.
oStream[out] The oStream object to be used. On output, oStream->get()!=0 if an output stream was specified by the parameter sublist.
verbLevel[out] The verbosity level to be used. On output, *verbLevel gives the verbosity level set in the parameter list. If no verbosity level was set, then a value of *verbLevel==VERB_DEFAULT will be set on return.

Preconditions:

  • oStream!=0
  • verbLevel!=0
template<class ObjectType >
void readVerboseObjectSublist ( ParameterList paramList,
VerboseObject< ObjectType > *  verboseObject 
) [related]

Read the parameters in the "VerboseObject" sublist and set them on the given VerboseObject.

Parameters:
paramList[in/out] On input, contains the user's parameter list for the given object of which "VerboseObject" can be a sublist.
verboseObject[in/out] The verbose object that will have its verbosity level and/or output stream set.

This function just calls the above nontemplated readVerboseObjectSublist() to validate and and read the verbosity and output stream from the "VerboseObject" sublist.


Member Data Documentation

template<class ObjectType>
EVerbosityLevel Teuchos::VerboseObject< ObjectType >::thisVerbLevel_ [mutable, private]

Definition at line 299 of file Teuchos_VerboseObject.hpp.

template<class ObjectType>
EVerbosityLevel Teuchos::VerboseObject< ObjectType >::thisOverridingVerbLevel_ [mutable, private]

Definition at line 300 of file Teuchos_VerboseObject.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines