YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
paramGroupTree.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2024-2024 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#ifndef PARAMGROUPTREE_H
7#define PARAMGROUPTREE_H
8
9#include <string>
10#include <vector>
11#include <deque>
12#include <chrono>
13#include <ctime>
14#include <memory>
15
16#include "parameter.h"
17
19{
20 private:
21 class SectionNode
22 {
23 public:
24 SectionNode() = default;
25 virtual ~SectionNode() = default;
26
27 std::deque<std::unique_ptr<SectionNode>> nextNode;
28 std::string name;
29 size_t nestingLevel=0;
30 Parameter param;
31
32 bool isParameter();
33 bool isGroupOfParameters();
34 };
35
36 private:
37 void computePreOrderTraversal();
38
39 std::vector<SectionNode*>::iterator iterator_ptr;
40 std::vector<SectionNode*> prePreOrderTraversal;
41
42 SectionNode rootnode;
43 void insertRecursive(SectionNode& node, const std::deque<std::string>& groups, const Parameter& param, size_t levelOfNesting);
44 bool traverseNodes();
45
46 public:
47 void insert(const Parameter& param);
48 SectionNode* iterator_start();
49 SectionNode* iterator_next();
50 SectionNode* iterator_get();
51};
52
53#endif
SectionNode * iterator_next()
SectionNode * iterator_start()
SectionNode * iterator_get()
void insert(const Parameter &param)