MCPcopy Create free account
hub / github.com/apache/trafficserver / search_node

Function search_node

src/traffic_ctl/FileConfigCommand.cc:122–150  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

120}
121
122std::pair<bool, YAML::Node>
123search_node(swoc::TextView variable, YAML::Node root, bool create)
124{
125 auto const key{variable.take_prefix_at('.')};
126 auto const key_str = std::string{key.data(), key.size()};
127 if (variable.empty()) {
128 if (root.IsMap() && root[key_str]) {
129 return {true, root[key_str]};
130 } else {
131 if (create) {
132 YAML::Node n;
133 root[key_str] = n;
134 return {true, n}; // new one created;
135 } else {
136 return NOT_FOUND;
137 }
138 }
139 }
140 if (!root[key_str]) {
141 if (create) {
142 YAML::Node n;
143 root[key_str] = n;
144 return search_node(variable, n, create);
145 }
146 } else {
147 return search_node(variable, root[key_str], create);
148 }
149 return NOT_FOUND;
150}
151} // namespace
152
153YAML::Node

Callers 2

find_or_create_nodeMethod · 0.85
find_nodeMethod · 0.85

Calls 4

take_prefix_atMethod · 0.80
dataMethod · 0.45
sizeMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected