00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef BELOS_OUTPUT_MANAGER_HPP
00030 #define BELOS_OUTPUT_MANAGER_HPP
00031
00036 #include "BelosConfigDefs.hpp"
00037 #include "BelosTypes.hpp"
00038
00051 namespace Belos {
00052
00053 template <class ScalarType>
00054 class OutputManager {
00055
00056 public:
00057
00059
00060
00062 OutputManager();
00063
00065 OutputManager( int myID, int vbLevel = Belos::Errors, int printID = 0, const Teuchos::RefCountPtr<ostream> &os = Teuchos::rcp(&std::cout,false) );
00066
00068 virtual ~OutputManager() {};
00070
00072
00073
00075 void SetOStream( const Teuchos::RefCountPtr<ostream> &os ) { myOS_ = os; };
00076
00078 void SetVerbosity( int vbLevel ) { vbLevel_ = vbLevel; };
00079
00081
00083
00084
00086 Teuchos::RefCountPtr<ostream> GetOStream() { return myOS_; };
00087
00089
00091
00092
00094
00097 bool isVerbosity( MsgType type ) const { return (( type == Belos::Errors ) || ( vbLevel_ & type )); };
00098
00100
00103 bool isVerbosityAndPrint( MsgType type ) const { return ( iPrint_ && isVerbosity( type )); };
00104
00106 bool doPrint( void ) const { return (iPrint_); };
00107
00109
00110 private:
00111
00113
00114
00116 OutputManager( const OutputManager<ScalarType>& OM );
00117
00119 OutputManager<ScalarType>& operator=( const OutputManager<ScalarType>& OM );
00120
00122
00123 int myID_, printID_;
00124 int vbLevel_;
00125 bool iPrint_;
00126 Teuchos::RefCountPtr<ostream> myOS_;
00127 };
00128
00129 template<class ScalarType>
00130 OutputManager<ScalarType>::OutputManager() :
00131 myID_(0),
00132 printID_(0),
00133 vbLevel_(0),
00134 iPrint_(true),
00135 myOS_(std::cout)
00136 {
00137 }
00138
00139 template<class ScalarType>
00140 OutputManager<ScalarType>::OutputManager( int myID, int vbLevel, int printID, const Teuchos::RefCountPtr<ostream> &os ) :
00141 myID_(myID),
00142 printID_(printID),
00143 vbLevel_(vbLevel),
00144 iPrint_(myID == printID),
00145 myOS_(os)
00146 {
00147 }
00148
00149 }
00150
00151 #endif
00152
00153