DBC Framework
DBC parsing and CAN signal decoding framework
Loading...
Searching...
No Matches
tree_node.h
Go to the documentation of this file.
1
12#ifndef TREE_NODE_H
13#define TREE_NODE_H
14
15#include <cstddef>
16#include <memory>
17#include <string>
18#include <vector>
19
20#include "frame_info.h"
21#include "signal_info.h"
22
26enum class NodeType {
27 Root,
28 Frame,
29 Signal
30};
31
35class TreeNode {
36public:
40 TreeNode();
41
46 explicit TreeNode(const FrameInfo &frame);
47
52 explicit TreeNode(const SignalInfo &signal);
53
54 ~TreeNode() = default;
55
56 TreeNode(const TreeNode &) = delete;
57 TreeNode &operator=(const TreeNode &) = delete;
58
59 TreeNode(TreeNode &&) = delete;
60 TreeNode &operator=(TreeNode &&) = delete;
61
66 void AddChild(std::unique_ptr<TreeNode> child);
67
69 const TreeNode *GetParent() const;
70
72 std::size_t GetRow() const;
73
78 std::size_t GetChildCount() const;
79
85 const TreeNode *GetChild(std::size_t index) const;
86
92 TreeNode *GetChild(std::size_t index);
93
98 NodeType GetType() const;
99
104 const std::string &GetName() const;
105
110 const FrameInfo *GetFrame() const;
111
116 const SignalInfo *GetSignal() const;
117
118private:
119 TreeNode *m_parent = nullptr;
120 std::size_t m_row = 0U;
121 NodeType m_type;
122 std::string m_name;
123 std::vector<std::unique_ptr<TreeNode>> m_children;
124 std::unique_ptr<FrameInfo> m_frame;
125 std::unique_ptr<SignalInfo> m_signal;
126};
127
128#endif /* TREE_NODE_H */
Tree node for later use in model/view or other hierarchy consumers.
Definition tree_node.h:35
const SignalInfo * GetSignal() const
Get signal payload if node is signal.
Definition tree_node.cpp:64
const TreeNode * GetChild(std::size_t index) const
Get child by index.
Definition tree_node.cpp:38
void AddChild(std::unique_ptr< TreeNode > child)
Add child node.
Definition tree_node.cpp:26
TreeNode()
Create root node.
Definition tree_node.cpp:14
const TreeNode * GetParent() const
Definition tree_node.cpp:68
const std::string & GetName() const
Get display name.
Definition tree_node.cpp:56
std::size_t GetChildCount() const
Get child count.
Definition tree_node.cpp:34
std::size_t GetRow() const
Definition tree_node.cpp:72
NodeType GetType() const
Get node type.
Definition tree_node.cpp:52
const FrameInfo * GetFrame() const
Get frame payload if node is frame.
Definition tree_node.cpp:60
Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
Describes one CAN frame from a DBC file.
Definition frame_info.h:24
Describes one signal inside a DBC frame.
Definition signal_info.h:24
NodeType
Type of a tree node.
Definition tree_node.h:26