Config.cci
Go to the documentation of this file.
1 //
2 // Copyright (c) 2020 Fraunhofer Institute for Applied Information Technology (FIT)
3 // Network Research Group (NET)
4 // Schloss Birlinghoven, 53754 Sankt Augustin, GERMANY
5 // Contact: support@wiback.org
6 //
7 // This file is part of the SENF code tree.
8 // It is licensed under the 3-clause BSD License (aka New BSD License).
9 // See LICENSE.txt in the top level directory for details or visit
10 // https://opensource.org/licenses/BSD-3-Clause
11 //
12 
13 
14 /** \file
15  \brief Config inline non-template implementation */
16 
17 #include "Config.ih"
18 
19 // Custom includes
20 
21 #define prefix_ inline
22 //-/////////////////////////////////////////////////////////////////////////////////////////////////
23 
24 //-/////////////////////////////////////////////////////////////////////////////////////////////////
25 // senf::console::detail::RestrictedExecutor
26 
27 prefix_ bool senf::console::detail::RestrictedExecutor::complete()
28  const
29 {
30  return parsedNodes_.size() == 1
31  && ! parsedNodes_[0].expired()
32  && *parsedNodes_[0].lock() == executor_.chroot();
33 }
34 
35 prefix_ void senf::console::detail::RestrictedExecutor::reset()
36 {
37  parsedNodes_.clear();
38 }
39 
40 prefix_ senf::console::DirectoryNode & senf::console::detail::RestrictedExecutor::root()
41  const
42 {
43  return executor_.chroot();
44 }
45 
46 prefix_ void senf::console::detail::RestrictedExecutor::chroot(DirectoryNode & node)
47 {
48  executor_.chroot(node);
49 }
50 
51 prefix_ std::ostream & senf::console::detail::RestrictedExecutor::stream()
52 {
53  return stream_;
54 }
55 
56 //-/////////////////////////////////////////////////////////////////////////////////////////////////
57 // senf::console::ConfigBundle
58 
59 prefix_ senf::console::ConfigBundle::ConfigBundle()
60 {}
61 
62 prefix_ senf::console::ConfigBundle::ConfigBundle(DirectoryNode & root)
63  : executor_ (root)
64 {}
65 
66 prefix_ bool senf::console::ConfigBundle::complete()
67  const
68 {
69  return executor_.complete();
70 }
71 
72 prefix_ bool senf::console::ConfigBundle::parsed(GenericNode & node)
73  const
74 {
75  return executor_.parsed(node);
76 }
77 
78 prefix_ void senf::console::ConfigBundle::reset()
79 {
80  executor_.reset();
81 }
82 
83 prefix_ senf::console::DirectoryNode & senf::console::ConfigBundle::root()
84  const
85 {
86  return executor_.root();
87 }
88 
89 prefix_ void senf::console::ConfigBundle::chroot(DirectoryNode & node)
90 {
91  executor_.chroot(node);
92 }
93 
94 //-/////////////////////////////////////////////////////////////////////////////////////////////////
95 // senf::console::detail::ConfigSource
96 
97 prefix_ void senf::console::detail::ConfigSource::parse(RestrictedExecutor & executor)
98 {
99  v_parse(executor);
100 }
101 
102 //-/////////////////////////////////////////////////////////////////////////////////////////////////
103 // senf::console::detail::BundleMixin
104 
105 prefix_ senf::console::detail::BundleMixin::BundleMixin()
106 {}
107 
108 prefix_ senf::console::detail::BundleMixin::BundleMixin(DirectoryNode & root)
109  : bundle_ (root)
110 {}
111 
112 prefix_ void senf::console::detail::BundleMixin::parse()
113 {
114  bundle_.parse();
115 }
116 
117 prefix_ void senf::console::detail::BundleMixin::parse(DirectoryNode & restrict)
118 {
119  bundle_.parse(restrict);
120 }
121 
122 prefix_ bool senf::console::detail::BundleMixin::complete()
123  const
124 {
125  return bundle_.complete();
126 }
127 
128 prefix_ bool senf::console::detail::BundleMixin::parsed(GenericNode & node)
129  const
130 {
131  return bundle_.parsed(node);
132 }
133 
134 prefix_ void senf::console::detail::BundleMixin::reset()
135 {
136  bundle_.reset();
137 }
138 
139 //-/////////////////////////////////////////////////////////////////////////////////////////////////
140 #undef prefix_
141 
142 
143 // Local Variables:
144 // mode: c++
145 // fill-column: 100
146 // comment-column: 40
147 // c-file-style: "senf"
148 // indent-tabs-mode: nil
149 // ispell-local-dictionary: "american"
150 // compile-command: "scons -u test"
151 // End: