0cf3b40554d5296320745884b21c33016be08962
[senf.git] / senf / Utils / Console / ScopedDirectory.cci
1 // $Id$
2 //
3 // Copyright (C) 2008
4 // Fraunhofer Institute for Open Communication Systems (FOKUS)
5 // Competence Center NETwork research (NET), St. Augustin, GERMANY
6 //     Stefan Bund <g0dil@berlios.de>
7 //
8 // This program is free software; you can redistribute it and/or modify
9 // it under the terms of the GNU General Public License as published by
10 // the Free Software Foundation; either version 2 of the License, or
11 // (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
20 // Free Software Foundation, Inc.,
21 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22
23 /** \file
24     \brief ScopedDirectory inline non-template implementation */
25
26 //#include "ScopedDirectory.ih"
27
28 // Custom includes
29
30 #define prefix_ inline
31 //-/////////////////////////////////////////////////////////////////////////////////////////////////
32
33 //-/////////////////////////////////////////////////////////////////////////////////////////////////
34 // senf::console::ScopedDirectoryBase
35
36 prefix_ senf::console::DirectoryNode & senf::console::ScopedDirectoryBase::node()
37     const
38 {
39     return *node_;
40 }
41
42 prefix_ senf::console::ScopedDirectoryBase::operator DirectoryNode &()
43     const
44 {
45     return node();
46 }
47
48 prefix_ senf::console::GenericNode::ptr
49 senf::console::ScopedDirectoryBase::remove(std::string const & name)
50 {
51    return node().remove(name);
52 }
53
54 prefix_ bool senf::console::ScopedDirectoryBase::hasChild(std::string const & name)
55     const
56 {
57     return node().hasChild(name);
58 }
59
60 prefix_ senf::console::DirectoryNode &
61 senf::console::ScopedDirectoryBase::getDirectory(std::string const & name)
62     const
63 {
64     return node().getDirectory(name);
65 }
66
67 prefix_ senf::console::DirectoryNode &
68 senf::console::ScopedDirectoryBase::operator[](std::string const & name)
69     const
70 {
71     return node()[name];
72 }
73
74 prefix_ senf::console::CommandNode &
75 senf::console::ScopedDirectoryBase::getCommand(std::string const & name)
76     const
77 {
78     return node().getCommand(name);
79 }
80
81 prefix_ senf::console::CommandNode &
82 senf::console::ScopedDirectoryBase::operator()(std::string const & name)
83     const
84 {
85     return node()(name);
86 }
87
88 prefix_ senf::console::GenericNode &
89 senf::console::ScopedDirectoryBase::get(std::string const & name)
90     const
91 {
92     return node().get(name);
93 }
94
95 prefix_ senf::console::DirectoryNode::ChildrenRange
96 senf::console::ScopedDirectoryBase::children()
97     const
98 {
99     return node().children();
100 }
101
102 prefix_ senf::console::DirectoryNode &
103 senf::console::ScopedDirectoryBase::doc(std::string const & doc)
104 {
105     return node().doc(doc);
106 }
107
108 prefix_ std::string const & senf::console::ScopedDirectoryBase::name()
109     const
110 {
111     return node().name();
112 }
113
114 prefix_ bool senf::console::ScopedDirectoryBase::active()
115     const
116 {
117     return node().active();
118 }
119
120 prefix_ std::string senf::console::ScopedDirectoryBase::path()
121     const
122 {
123     return node().path();
124 }
125
126 prefix_ std::string senf::console::ScopedDirectoryBase::path(DirectoryNode const & root)
127     const
128 {
129     return node().path(root);
130 }
131
132 prefix_ boost::shared_ptr<senf::console::DirectoryNode>
133 senf::console::ScopedDirectoryBase::parent()
134     const
135 {
136     return node().parent();
137 }
138
139 prefix_ senf::console::GenericNode::ptr senf::console::ScopedDirectoryBase::unlink()
140 {
141     return node().unlink();
142 }
143
144 prefix_ void senf::console::ScopedDirectoryBase::help(std::ostream & output)
145     const
146 {
147     node().help( output);
148 }
149
150 prefix_ std::string senf::console::ScopedDirectoryBase::shorthelp()
151     const
152 {
153     return node().shorthelp();
154 }
155
156 prefix_ senf::console::ScopedDirectoryBase::ScopedDirectoryBase()
157     : node_ (DirectoryNode::create())
158 {}
159
160 prefix_ senf::console::ScopedDirectoryBase::~ScopedDirectoryBase()
161 {
162     node_->unlink();
163 }
164
165 //-/////////////////////////////////////////////////////////////////////////////////////////////////
166 #undef prefix_
167
168 \f
169 // Local Variables:
170 // mode: c++
171 // fill-column: 100
172 // comment-column: 40
173 // c-file-style: "senf"
174 // indent-tabs-mode: nil
175 // ispell-local-dictionary: "american"
176 // compile-command: "scons -u test"
177 // End: