Files
dbc/core/tree_node.cpp
T
2026-10-06 17:14:50 -04:00

75 lines
1.6 KiB
C++

/**
* @file tree_node.cpp
* @brief
*
* Created: 2026-03-13
* Author: Deeaitch (Dim. Himro)
*
* Licensed under the MIT License.
* See LICENSE file in the project root for full license text.
*/
#include "tree_node.h"
TreeNode::TreeNode()
: m_type(NodeType::Root), m_name("dbc"), m_children(), m_frame(), m_signal() {
}
TreeNode::TreeNode(const FrameInfo &frame)
: m_type(NodeType::Frame), m_name(frame.name), m_children(), m_frame(new FrameInfo(frame)), m_signal() {
}
TreeNode::TreeNode(const SignalInfo &signal)
: m_type(NodeType::Signal), m_name(signal.name), m_children(), m_frame(), m_signal(new SignalInfo(signal)) {
}
void TreeNode::AddChild(std::unique_ptr<TreeNode> child) {
if (child) {
m_children.push_back(std::move(child));
m_children.back()->m_parent = this;
m_children.back()->m_row = m_children.size() - 1U;
}
}
std::size_t TreeNode::GetChildCount() const {
return m_children.size();
}
const TreeNode *TreeNode::GetChild(std::size_t index) const {
if (index >= m_children.size())
return nullptr;
return m_children[index].get();
}
TreeNode *TreeNode::GetChild(std::size_t index) {
if (index >= m_children.size())
return nullptr;
return m_children[index].get();
}
NodeType TreeNode::GetType() const {
return m_type;
}
const std::string &TreeNode::GetName() const {
return m_name;
}
const FrameInfo *TreeNode::GetFrame() const {
return m_frame.get();
}
const SignalInfo *TreeNode::GetSignal() const {
return m_signal.get();
}
const TreeNode *TreeNode::GetParent() const {
return m_parent;
}
std::size_t TreeNode::GetRow() const {
return m_row;
}