Orxonox  0.0.5 Codename: Arcturus
BaseWriter.h
Go to the documentation of this file.
1 /*
2  * ORXONOX - the hottest 3D action shooter ever to exist
3  * > www.orxonox.net <
4  *
5  *
6  * License notice:
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  *
22  * Author:
23  * Fabian 'x3n' Landau
24  * Co-authors:
25  * ...
26  *
27  */
28 
35 #ifndef _BaseWriter_H__
36 #define _BaseWriter_H__
37 
38 #include "util/UtilPrereqs.h"
40 
41 namespace orxonox
42 {
66  {
67  public:
68  BaseWriter(const std::string& name, bool bRegister = true);
69  virtual ~BaseWriter();
70 
71  void setLevelMax(OutputLevel max);
72  void setAdditionalContextsLevelMax(OutputLevel max);
73 
75  const std::string& getName() const
76  { return this->name_; }
77 
82  { return this->name_ + "Level"; }
83 
88  { return this->name_ + "AdditionalContextsLevel"; }
89 
91  std::vector<std::string> configurableAdditionalContexts_;
94  { return this->name_ + "AdditionalContexts"; }
95 
96  void changedConfigurableLevel();
97  void changedConfigurableAdditionalContextsLevel();
98  void changedConfigurableAdditionalContexts();
99 
102  { return "Output"; }
103 
104  protected:
105  virtual void output(OutputLevel level, const OutputContextContainer& context, const std::vector<std::string>& lines) override;
106 
107  private:
108  virtual void printLine(const std::string& line, OutputLevel level) = 0;
109 
110  void setLevelRange(OutputLevel min, OutputLevel max);
111  void setLevelMask(OutputLevel mask);
112 
113  void setAdditionalContextsLevelRange(OutputLevel min, OutputLevel max);
114  void setAdditionalContextsLevelMask(OutputLevel mask);
115 
117  };
118 }
119 
120 #endif /* _BaseWriter_H__ */
This class extends the basic OutputListener interface and adds the ability to filter sub-contexts...
Definition: SubcontextOutputListener.h:69
#define _UtilExport
Definition: UtilPrereqs.h:60
int configurableMaxLevel_
Config value, used to define the maximum output level (independent of contexts)
Definition: BaseWriter.h:79
Stores all information about a context.
Definition: OutputDefinitions.h:112
static std::string getConfigurableSectionName()
Returns the (static) name of the section wherein the config-values are defined.
Definition: BaseWriter.h:101
::std::string string
Definition: gtest-port.h:756
OutputLevel
Output levels define type and importance of an output message.
Definition: OutputDefinitions.h:84
Declaration of the SubcontextOutputListener interface which adds the ability to filter sub-contexts t...
const std::string & getName() const
Returns the name of this instance.
Definition: BaseWriter.h:75
std::string getConfigurableMaxLevelName() const
Returns the name of the config value which defines the maximum output level (independent of contexts)...
Definition: BaseWriter.h:81
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
Shared library macros, enums, constants and forward declarations for the util library ...
BaseWriter is an output listener and makes the accepted output levels and contexts configurable...
Definition: BaseWriter.h:65
std::vector< std::string > configurableAdditionalContexts_
Config vector, used to define the additional contexts (and sub-contexts)
Definition: BaseWriter.h:91
std::string name_
The name of this instance, used to generate unique config-values.
Definition: BaseWriter.h:116
std::string getConfigurableAdditionalContextsName() const
Returns the name of the config vector which defines the additional contexts (and sub-contexts) ...
Definition: BaseWriter.h:93
internal::String name_
Definition: gtest.cc:2289
std::string getConfigurableAdditionalContextsMaxLevelName() const
Returns the name of the config value which defines the maximum output level of additional context...
Definition: BaseWriter.h:87
int configurableAdditionalContextsMaxLevel_
Config value, used to define the maximum output level of additional context.
Definition: BaseWriter.h:85