Anasazi  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
AnasaziOutputManager.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Anasazi: Block Eigensolvers Package
4 //
5 // Copyright 2004 NTESS and the Anasazi contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef ANASAZI_OUTPUT_MANAGER_HPP
11 #define ANASAZI_OUTPUT_MANAGER_HPP
12 
17 #include "AnasaziConfigDefs.hpp"
18 #include "AnasaziTypes.hpp"
19 
20 #include "Teuchos_FancyOStream.hpp"
21 #include "Teuchos_RCP.hpp"
22 #include "Teuchos_oblackholestream.hpp"
23 
33 namespace Anasazi {
34 
35 template <class ScalarType>
37 
38  public:
39 
41 
42 
45  const Teuchos::RCP<Teuchos::FancyOStream> &fos = Teuchos::getFancyOStream(Teuchos::rcpFromRef(std::cout)) )
46  : vb_(vb),
47  fos_(fos)
48  {
49  bh_fos_ = Teuchos::getFancyOStream(Teuchos::rcpFromRef( myBHS_ ));
50  };
51 
53  virtual ~OutputManager() {};
55 
57 
58 
60  virtual void setVerbosity( int vb ) { vb_ = vb; }
61 
63  virtual int getVerbosity( ) const { return vb_; }
64 
66  virtual void setFancyOStream( const Teuchos::RCP<Teuchos::FancyOStream>& fos ) { fos_ = fos; }
67 
69  virtual const Teuchos::RCP<Teuchos::FancyOStream>& getFancyOStream( ) const { return fos_; }
70 
72 
74 
75 
77 
80  virtual bool isVerbosity( MsgType type ) const;
81 
83  virtual void print( MsgType type, const std::string output );
84 
86  virtual Teuchos::FancyOStream &stream( MsgType type );
87 
89 
90  private:
91 
93 
94 
97 
100 
102 
103  protected:
104  int vb_;
107 };
108 
109 template<class ScalarType>
111 {
112  if ( (type & vb_) == type ) {
113  return true;
114  }
115  return false;
116 }
117 
118 template<class ScalarType>
119 void OutputManager<ScalarType>::print( MsgType type, const std::string output )
120 {
121  if ( (type & vb_) == type ) {
122  *fos_ << output;
123  }
124 }
125 
126 template<class ScalarType>
128  if ( (type & vb_) == type )
129  {
130  return *fos_;
131  }
132  return *bh_fos_;
133 }
134 
135 } // end Anasazi namespace
136 
137 #endif
138 
139 // end of file AnasaziOutputManager.hpp
virtual void setVerbosity(int vb)
Set the message output types for this manager.
virtual Teuchos::FancyOStream & stream(MsgType type)
Create a stream for outputting to.
Output managers remove the need for the eigensolver to know any information about the required output...
virtual bool isVerbosity(MsgType type) const
Find out whether we need to print out information for this message type.
virtual void print(MsgType type, const std::string output)
Send output to the output manager.
virtual const Teuchos::RCP< Teuchos::FancyOStream > & getFancyOStream() const
Get the formatted output stream object for this manager.
Anasazi header file which uses auto-configuration information to include necessary C++ headers...
virtual ~OutputManager()
Destructor.
Types and exceptions used within Anasazi solvers and interfaces.
OutputManager(int vb=Anasazi::Errors, const Teuchos::RCP< Teuchos::FancyOStream > &fos=Teuchos::getFancyOStream(Teuchos::rcpFromRef(std::cout)))
Default constructor.
MsgType
Enumerated list of available message types recognized by the eigensolvers.
virtual int getVerbosity() const
Get the message output types for this manager.
virtual void setFancyOStream(const Teuchos::RCP< Teuchos::FancyOStream > &fos)
Set the formatted output stream object for this manager.