Orxonox  0.0.5 Codename: Arcturus
NamespaceNode.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 
34 #ifndef _NamespaceNode_H__
35 #define _NamespaceNode_H__
36 
37 #include "CorePrereqs.h"
38 
39 #include <map>
40 #include <set>
41 #include <string>
42 
43 namespace orxonox
44 {
46  {
47  public:
48  NamespaceNode(const std::string& name, NamespaceNode* parent = nullptr);
50 
51  std::set<NamespaceNode*> getNodeRelative(const std::string& name);
52 
53  void setRoot(bool bRoot) { this->bRoot_ = bRoot; }
54  void setHidden(bool bHidden) { this->bHidden_ = bHidden; }
55 
56  bool isRoot() const { return this->bRoot_; }
57  bool isHidden() const { return this->bHidden_; }
58 
59  bool includes(const NamespaceNode*) const;
60 
61  std::string toString() const;
62  std::string toString(const std::string& indentation) const;
63 
64  private:
67  std::map<std::string, NamespaceNode*> subnodes_;
68  bool bHidden_;
69  bool bRoot_;
70  };
71 }
72 
73 #endif /* _NamespaceNode_H__ */
bool includes(const NamespaceNode *) const
Definition: NamespaceNode.cc:126
void setHidden(bool bHidden)
Definition: NamespaceNode.h:54
std::set< NamespaceNode * > getNodeRelative(const std::string &name)
Definition: NamespaceNode.cc:48
Shared library macros, enums, constants and forward declarations for the core library ...
::std::string string
Definition: gtest-port.h:756
Definition: NamespaceNode.h:45
bool bRoot_
Definition: NamespaceNode.h:69
std::string toString() const
Definition: NamespaceNode.cc:142
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
NamespaceNode * parent_
Definition: NamespaceNode.h:66
bool isHidden() const
Definition: NamespaceNode.h:57
std::map< std::string, NamespaceNode * > subnodes_
Definition: NamespaceNode.h:67
~NamespaceNode()
Definition: NamespaceNode.cc:42
bool isRoot() const
Definition: NamespaceNode.h:56
std::string name_
Definition: NamespaceNode.h:65
bool bHidden_
Definition: NamespaceNode.h:68
void setRoot(bool bRoot)
Definition: NamespaceNode.h:53
NamespaceNode(const std::string &name, NamespaceNode *parent=nullptr)
Definition: NamespaceNode.cc:34