Orxonox  0.0.5 Codename: Arcturus
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
orxonox::BaseWriter Class Referenceabstract

BaseWriter is an output listener and makes the accepted output levels and contexts configurable. More...

#include </home/jenkins/workspace/orxonox_doxygen_trunk/src/libraries/util/output/BaseWriter.h>

Inheritance diagram for orxonox::BaseWriter:
orxonox::SubcontextOutputListener orxonox::OutputListener orxonox::ConsoleWriter orxonox::LogWriter orxonox::Shell

Public Member Functions

 BaseWriter (const std::string &name, bool bRegister=true)
 Constructor: Initializes the config-values. More...
 
virtual ~BaseWriter ()
 Destructor. More...
 
void changedConfigurableAdditionalContexts ()
 Called if the config-vector of accepted contexts has changed, updates the masks in SubcontextOutputListener. More...
 
void changedConfigurableAdditionalContextsLevel ()
 Called if the config value has changed, updates the corresponding mask in OutputListener. More...
 
void changedConfigurableLevel ()
 Called if the config value has changed, updates the corresponding mask in OutputListener. More...
 
std::string getConfigurableAdditionalContextsMaxLevelName () const
 Returns the name of the config value which defines the maximum output level of additional context. More...
 
std::string getConfigurableAdditionalContextsName () const
 Returns the name of the config vector which defines the additional contexts (and sub-contexts) More...
 
std::string getConfigurableMaxLevelName () const
 Returns the name of the config value which defines the maximum output level (independent of contexts). More...
 
const std::string & getName () const
 Returns the name of this instance. More...
 
void setAdditionalContextsLevelMax (OutputLevel max)
 Overwritten implementation of the function inherited from OutputListener, sets also the corresponding config-value. More...
 
void setLevelMax (OutputLevel max)
 Overwritten implementation of the function inherited from OutputListener, sets also the corresponding config-value. More...
 
- Public Member Functions inherited from orxonox::SubcontextOutputListener
 SubcontextOutputListener (bool bRegister=true)
 Constructor, initializes the context masks. More...
 
virtual ~SubcontextOutputListener ()
 Destructor. More...
 
virtual bool acceptsOutput (OutputLevel level, const OutputContextContainer &context) const override
 Returns true if this listener accepts output of the given level and context, based on the levels and contexts masks, as well as the set of accepted sub-contexts. More...
 
const std::set< OutputContextSubID > & getSubcontexts () const
 
virtual void setAdditionalContextsMask (OutputContextMask mask) override
 Overwritten implementation of the function defined by OutputListener. More...
 
void setAdditionalSubcontexts (const std::set< const OutputContextContainer * > &subcontexts)
 Defines the set of accepted sub-contexts. More...
 
- Public Member Functions inherited from orxonox::OutputListener
 OutputListener (bool bRegister=true)
 Constructor, initializes the values and registers the instance at OutputManager if requested. More...
 
virtual ~OutputListener ()
 Destructor, unregisters the instance from OutputManager. More...
 
OutputLevel getAdditionalContextsLevelMask () const
 Returns the additional contexts level mask. More...
 
OutputContextMask getAdditionalContextsMask () const
 Returns the additional contexts mask. More...
 
OutputLevel getLevelMask () const
 Returns the level mask. More...
 
void registerListener (AdditionalContextListener *listener)
 Adds a listener to the list. More...
 
void setAdditionalContextsLevelMask (OutputLevel mask)
 Defines the level mask of additional contexts. More...
 
void setAdditionalContextsLevelMax (OutputLevel max)
 Defines the level mask of additional contexts in a way which accepts all output up to the level max. More...
 
void setAdditionalContextsLevelRange (OutputLevel min, OutputLevel max)
 Defines the level mask of additional contexts in a way which accepts all output between the levels min and max. More...
 
void setLevelMask (OutputLevel mask)
 Defines the level mask. More...
 
void setLevelMax (OutputLevel max)
 Defines the level mask in a way which accepts all output up to the level max. More...
 
void setLevelRange (OutputLevel min, OutputLevel max)
 Defines the level mask in a way which accepts all output between the levels min and max. More...
 
virtual void unfilteredOutput (OutputLevel level, const OutputContextContainer &context, const std::vector< std::string > &lines)
 Called by OutputManager for each line of output, checks if this listener actually accepts this output before it calls the output() function. More...
 
void unregisterListener (AdditionalContextListener *listener)
 Removes a listener from the list. More...
 

Static Public Member Functions

static std::string getConfigurableSectionName ()
 Returns the (static) name of the section wherein the config-values are defined. More...
 

Public Attributes

std::vector< std::string > configurableAdditionalContexts_
 Config vector, used to define the additional contexts (and sub-contexts) More...
 
int configurableAdditionalContextsMaxLevel_
 Config value, used to define the maximum output level of additional context. More...
 
int configurableMaxLevel_
 Config value, used to define the maximum output level (independent of contexts) More...
 

Protected Member Functions

virtual void output (OutputLevel level, const OutputContextContainer &context, const std::vector< std::string > &lines) override
 This function is inherited from OutputListener, each message is split into lines and sent to printLine(). More...
 
- Protected Member Functions inherited from orxonox::OutputListener
const std::vector< AdditionalContextListener * > & getListeners () const
 

Private Member Functions

virtual void printLine (const std::string &line, OutputLevel level)=0
 Pure virtual function, gets called for each line of output together with a prefix which describes level and context of the output. More...
 
void setAdditionalContextsLevelMask (OutputLevel mask)
 Inherited function, overwritten as private because it is not supported by the config-value. More...
 
void setAdditionalContextsLevelRange (OutputLevel min, OutputLevel max)
 Inherited function, overwritten as private because it is not supported by the config-value. More...
 
void setLevelMask (OutputLevel mask)
 Inherited function, overwritten as private because it is not supported by the config-value. More...
 
void setLevelRange (OutputLevel min, OutputLevel max)
 Inherited function, overwritten as private because it is not supported by the config-value. More...
 

Private Attributes

std::string name_
 The name of this instance, used to generate unique config-values. More...
 

Detailed Description

BaseWriter is an output listener and makes the accepted output levels and contexts configurable.

All output writers like ConsoleWriter and LogWriter are inherited from this class. BaseWriter itself inherits from SubcontextOutputListener. It adds helper functions to configure the accepted levels and contexts.

The levels are not fully configurable, only the "max" form is allowed (which means that it's only possible to define a maximum level, not the full mask).

Contexts are defined by a vector of strings, each context is defined by it's name. Sub-contexts have the form "main-name::sub-name", i.e. their name is concatenated with :: in between.

Each instance of BaseWriter needs a name to generate distinguishable config values.

Received output messages are split into lines and sent line by line to the virtual printLine() function. Each line has a prepended prefix which describes the level and context of the output.

Constructor & Destructor Documentation

orxonox::BaseWriter::BaseWriter ( const std::string &  name,
bool  bRegister = true 
)

Constructor: Initializes the config-values.

orxonox::BaseWriter::~BaseWriter ( )
virtual

Destructor.

Member Function Documentation

void orxonox::BaseWriter::changedConfigurableAdditionalContexts ( )

Called if the config-vector of accepted contexts has changed, updates the masks in SubcontextOutputListener.

void orxonox::BaseWriter::changedConfigurableAdditionalContextsLevel ( )

Called if the config value has changed, updates the corresponding mask in OutputListener.

void orxonox::BaseWriter::changedConfigurableLevel ( )

Called if the config value has changed, updates the corresponding mask in OutputListener.

std::string orxonox::BaseWriter::getConfigurableAdditionalContextsMaxLevelName ( ) const
inline

Returns the name of the config value which defines the maximum output level of additional context.

std::string orxonox::BaseWriter::getConfigurableAdditionalContextsName ( ) const
inline

Returns the name of the config vector which defines the additional contexts (and sub-contexts)

std::string orxonox::BaseWriter::getConfigurableMaxLevelName ( ) const
inline

Returns the name of the config value which defines the maximum output level (independent of contexts).

static std::string orxonox::BaseWriter::getConfigurableSectionName ( )
inlinestatic

Returns the (static) name of the section wherein the config-values are defined.

const std::string& orxonox::BaseWriter::getName ( void  ) const
inline

Returns the name of this instance.

void orxonox::BaseWriter::output ( OutputLevel  level,
const OutputContextContainer context,
const std::vector< std::string > &  lines 
)
overrideprotectedvirtual

This function is inherited from OutputListener, each message is split into lines and sent to printLine().

Implements orxonox::OutputListener.

virtual void orxonox::BaseWriter::printLine ( const std::string &  line,
OutputLevel  level 
)
privatepure virtual

Pure virtual function, gets called for each line of output together with a prefix which describes level and context of the output.

Implemented in orxonox::Shell, orxonox::LogWriter, and orxonox::ConsoleWriter.

void orxonox::BaseWriter::setAdditionalContextsLevelMask ( OutputLevel  mask)
private

Inherited function, overwritten as private because it is not supported by the config-value.

void orxonox::BaseWriter::setAdditionalContextsLevelMax ( OutputLevel  max)

Overwritten implementation of the function inherited from OutputListener, sets also the corresponding config-value.

void orxonox::BaseWriter::setAdditionalContextsLevelRange ( OutputLevel  min,
OutputLevel  max 
)
private

Inherited function, overwritten as private because it is not supported by the config-value.

void orxonox::BaseWriter::setLevelMask ( OutputLevel  mask)
private

Inherited function, overwritten as private because it is not supported by the config-value.

void orxonox::BaseWriter::setLevelMax ( OutputLevel  max)

Overwritten implementation of the function inherited from OutputListener, sets also the corresponding config-value.

void orxonox::BaseWriter::setLevelRange ( OutputLevel  min,
OutputLevel  max 
)
private

Inherited function, overwritten as private because it is not supported by the config-value.

Member Data Documentation

std::vector<std::string> orxonox::BaseWriter::configurableAdditionalContexts_

Config vector, used to define the additional contexts (and sub-contexts)

int orxonox::BaseWriter::configurableAdditionalContextsMaxLevel_

Config value, used to define the maximum output level of additional context.

int orxonox::BaseWriter::configurableMaxLevel_

Config value, used to define the maximum output level (independent of contexts)

std::string orxonox::BaseWriter::name_
private

The name of this instance, used to generate unique config-values.


The documentation for this class was generated from the following files: