Orxonox
0.0.5 Codename: Arcturus
|
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>
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... | |
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.
orxonox::BaseWriter::BaseWriter | ( | const std::string & | name, |
bool | bRegister = true |
||
) |
Constructor: Initializes the config-values.
|
virtual |
Destructor.
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.
|
inline |
Returns the name of the config value which defines the maximum output level of additional context.
|
inline |
Returns the name of the config vector which defines the additional contexts (and sub-contexts)
|
inline |
Returns the name of the config value which defines the maximum output level (independent of contexts).
|
inlinestatic |
Returns the (static) name of the section wherein the config-values are defined.
|
inline |
Returns the name of this instance.
|
overrideprotectedvirtual |
This function is inherited from OutputListener, each message is split into lines and sent to printLine().
Implements orxonox::OutputListener.
|
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.
|
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.
|
private |
Inherited function, overwritten as private because it is not supported by the config-value.
|
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.
|
private |
Inherited function, overwritten as private because it is not supported by the config-value.
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)
|
private |
The name of this instance, used to generate unique config-values.