Scippy

SoPlex

Sequential object-oriented simPlex

Wrapper for several output streams. A verbosity level is used to decide which stream to use and whether to really print a given message. Regardless of whether the verbosity level is set via a manipulator or via the member function, it is persistent until a new value is set. More...

#include <spxout.h>

Classes

struct  struct_Verbosity
 helper struct for the output operator More...
 

Public Types

Output control types
enum  Verbosity {
  ERROR = 0, WARNING = 1, DEBUG = 2, INFO1 = 3,
  INFO2 = 4, INFO3 = 5
}
 Verbosity level. More...
 

Public Member Functions

Construction / destruction
 SPxOut ()
 constructor
 
virtual ~SPxOut ()
 destructor
 
 SPxOut (const SPxOut &)
 copy constructor
 
SPxOutoperator= (const SPxOut &)
 assignment operator
 
Verbosity
virtual void setVerbosity (const Verbosity &v)
 
Verbosity getVerbosity () const
 
Wrappers for the current stream
bool good () const
 
bool operator! () const
 
std::streamsize precision () const
 
Getting / setting streams
virtual void setStream (const Verbosity &verbosity, std::ostream &stream)
 Sets the stream for the specified verbosity level.
 
std::ostream & getStream (const Verbosity &verbosity) const
 Returns the stream for the specified verbosity level.
 
std::ostream & getCurrentStream () const
 Returns the stream for the current verbosity.
 

Private Attributes

Private data
Verbosity m_verbosity
 verbosity level
 
std::ostream ** m_streams
 array of pointers to internal streams, indexed by verbosity level
 

Detailed Description

Wrapper for several output streams. A verbosity level is used to decide which stream to use and whether to really print a given message. Regardless of whether the verbosity level is set via a manipulator or via the member function, it is persistent until a new value is set.

Most ostream member functions are not provided here; use the corresponding stream manipulators (e.g., setprecision()) instead. These are passed on to the current ostream, which is chosen according to the verbosity level. In particular, this means that the first element in an output stream should always be the verbosity. For instance, use

spxout << verb( SPxOut::WARNING ) << std::setw( 15 ) << 42 << std::endl;

or

spxout.setVerbosity( SPxOut::WARNING );
spxout << std::setw( 15 ) << 42 << std::endl;

instead of

spxout << std::setw( 15 ) << verb( SPxOut::WARNING ) << 42 << std::endl;

in order to make sure that std::setw( 15 ) is applied to the warning stream.

Definition at line 63 of file spxout.h.

Member Enumeration Documentation

enum Verbosity

Verbosity level.

Enumerator
ERROR 
WARNING 
DEBUG 
INFO1 
INFO2 
INFO3 

Definition at line 72 of file spxout.h.

Constructor & Destructor Documentation

SPxOut ( )

constructor

Definition at line 23 of file spxout.cpp.

References SPxOut::DEBUG, SPxOut::ERROR, SPxOut::INFO3, SPxOut::m_streams, soplex::spx_alloc(), and SPxOut::WARNING.

~SPxOut ( )
virtual

destructor

Definition at line 37 of file spxout.cpp.

References SPxOut::m_streams, and soplex::spx_free().

SPxOut ( const SPxOut rhs)

Member Function Documentation

std::ostream& getCurrentStream ( ) const

Returns the stream for the current verbosity.

Definition at line 163 of file spxout.h.

References SPxOut::getStream(), and SPxOut::getVerbosity().

Referenced by SPxOut::good(), SPxOut::operator!(), and SPxOut::precision().

std::ostream& getStream ( const Verbosity verbosity) const

Returns the stream for the specified verbosity level.

Definition at line 156 of file spxout.h.

References SPxOut::m_streams.

Referenced by SPxOut::getCurrentStream(), main(), and SoPlex::solve().

Verbosity getVerbosity ( ) const

Definition at line 117 of file spxout.h.

References SPxOut::m_verbosity.

Referenced by SPxOut::getCurrentStream().

bool good ( ) const

Definition at line 128 of file spxout.h.

References SPxOut::getCurrentStream().

bool operator! ( ) const

Definition at line 133 of file spxout.h.

References SPxOut::getCurrentStream().

SPxOut & operator= ( const SPxOut base)

assignment operator

Definition at line 42 of file spxout.cpp.

References SPxOut::DEBUG, SPxOut::INFO3, SPxOut::m_streams, and SPxOut::m_verbosity.

std::streamsize precision ( ) const
virtual void setStream ( const Verbosity verbosity,
std::ostream &  stream 
)
virtual

Sets the stream for the specified verbosity level.

Definition at line 149 of file spxout.h.

References SPxOut::m_streams.

Referenced by main().

virtual void setVerbosity ( const Verbosity v)
virtual

Definition at line 111 of file spxout.h.

References SPxOut::m_verbosity.

Referenced by main(), soplex::operator<<(), and SoPlex::setIntParam().

Member Data Documentation

std::ostream** m_streams
private

array of pointers to internal streams, indexed by verbosity level

Definition at line 178 of file spxout.h.

Referenced by SPxOut::getStream(), SPxOut::operator=(), SPxOut::setStream(), SPxOut::SPxOut(), and SPxOut::~SPxOut().

Verbosity m_verbosity
private

verbosity level

Definition at line 176 of file spxout.h.

Referenced by SPxOut::getVerbosity(), SPxOut::operator=(), SPxOut::setVerbosity(), and SPxOut::SPxOut().