\hypertarget{tree__node_8h_source}{}\doxysection{tree\+\_\+node.\+h}
\mbox{\hyperlink{tree__node_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00001}00001 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00002}00002 \textcolor{comment}{ * @file tree\_node.h}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00003}00003 \textcolor{comment}{ * @brief}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00004}00004 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00005}00005 \textcolor{comment}{ * Created: 2026-\/03-\/13}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00006}00006 \textcolor{comment}{ * Author: Deeaitch (Dim. Himro)}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00008}00008 \textcolor{comment}{ * Licensed under the MIT License.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00009}00009 \textcolor{comment}{ * See LICENSE file in the project root for full license text.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00010}00010 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00011}00011 }
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00012}00012 \textcolor{preprocessor}{\#ifndef TREE\_NODE\_H}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00013}00013 \textcolor{preprocessor}{\#define TREE\_NODE\_H}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00014}00014 }
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00015}00015 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00016}00016 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00017}00017 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00018}00018 \textcolor{preprocessor}{\#include <cstddef>}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00019}00019 }
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00020}00020 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{frame__info_8h}{frame\_info.h}}"{}}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00021}00021 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{signal__info_8h}{signal\_info.h}}"{}}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00022}00022 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00023}00023 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00024}00024 \textcolor{comment}{ * @brief Type of a tree node.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00025}00025 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00026}\mbox{\hyperlink{tree__node_8h_acac9cbaeea226ed297804c012dc12b16}{00026}} \textcolor{keyword}{enum class} \mbox{\hyperlink{tree__node_8h_acac9cbaeea226ed297804c012dc12b16}{NodeType}} \{}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00027}00027   \mbox{\hyperlink{tree__node_8h_acac9cbaeea226ed297804c012dc12b16afa03eb688ad8aa1db593d33dabd89bad}{Root}},}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00028}00028   \mbox{\hyperlink{tree__node_8h_acac9cbaeea226ed297804c012dc12b16a3bb3e8c8a24891ba0f7608bcc96f8b0a}{Frame}},}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00029}00029   \mbox{\hyperlink{tree__node_8h_acac9cbaeea226ed297804c012dc12b16a085fea7abdc5d904fe69a3081efd7398}{Signal}}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00030}00030 \};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00031}00031 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00032}00032 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00033}00033 \textcolor{comment}{ * @brief Tree node for later use in model/view or other hierarchy consumers.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00034}00034 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00035}\mbox{\hyperlink{classTreeNode}{00035}} \textcolor{keyword}{class }\mbox{\hyperlink{classTreeNode}{TreeNode}} \{}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00036}00036   \textcolor{keyword}{public}:\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00037}00037 \textcolor{comment}{    /**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00038}00038 \textcolor{comment}{     * @brief Create root node.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00039}00039 \textcolor{comment}{     */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00040}00040     \mbox{\hyperlink{classTreeNode_a984a98d5ccf7ef1f5a18094c6821f35d}{TreeNode}}();}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00041}00041 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00042}00042 \textcolor{comment}{    /**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00043}00043 \textcolor{comment}{     * @brief Create frame node.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00044}00044 \textcolor{comment}{     * @param frame Frame payload.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00045}00045 \textcolor{comment}{     */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00046}00046     \textcolor{keyword}{explicit} \mbox{\hyperlink{classTreeNode_a984a98d5ccf7ef1f5a18094c6821f35d}{TreeNode}} (\textcolor{keyword}{const} \mbox{\hyperlink{structFrameInfo}{FrameInfo}} \&frame);}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00047}00047 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00048}00048 \textcolor{comment}{    /**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00049}00049 \textcolor{comment}{     * @brief Create signal node.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00050}00050 \textcolor{comment}{     * @param signal Signal payload.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00051}00051 \textcolor{comment}{     */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00052}00052     \textcolor{keyword}{explicit} \mbox{\hyperlink{classTreeNode_a984a98d5ccf7ef1f5a18094c6821f35d}{TreeNode}} (\textcolor{keyword}{const} \mbox{\hyperlink{structSignalInfo}{SignalInfo}} \&signal);}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00053}00053 }
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00054}\mbox{\hyperlink{classTreeNode_a89eb1eb0e25fccaa83c780b85f95b570}{00054}}     \mbox{\hyperlink{classTreeNode_a89eb1eb0e25fccaa83c780b85f95b570}{\string~TreeNode}}() = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00055}00055 }
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00056}\mbox{\hyperlink{classTreeNode_a4d3054a033accf3e38ea132002fc35ff}{00056}}     \mbox{\hyperlink{classTreeNode_a4d3054a033accf3e38ea132002fc35ff}{TreeNode}} (\textcolor{keyword}{const} \mbox{\hyperlink{classTreeNode}{TreeNode}} \&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00057}\mbox{\hyperlink{classTreeNode_ad6ce97dcf532b452d520452b6d000daa}{00057}}     \mbox{\hyperlink{classTreeNode}{TreeNode}} \&\mbox{\hyperlink{classTreeNode_ad6ce97dcf532b452d520452b6d000daa}{operator= }}(\textcolor{keyword}{const} \mbox{\hyperlink{classTreeNode}{TreeNode}} \&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00058}00058 }
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00059}\mbox{\hyperlink{classTreeNode_a35724af755b5d0c43de40a723ef81ec1}{00059}}     \mbox{\hyperlink{classTreeNode_a35724af755b5d0c43de40a723ef81ec1}{TreeNode}} (\mbox{\hyperlink{classTreeNode}{TreeNode}} \&\&) = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00060}\mbox{\hyperlink{classTreeNode_a88fbcbec9c64d888b19c5edb95059a95}{00060}}     \mbox{\hyperlink{classTreeNode}{TreeNode}} \&\mbox{\hyperlink{classTreeNode_ad6ce97dcf532b452d520452b6d000daa}{operator= }}(\mbox{\hyperlink{classTreeNode}{TreeNode}} \&\&) = \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00061}00061 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00062}00062 \textcolor{comment}{    /**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00063}00063 \textcolor{comment}{     * @brief Add child node.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00064}00064 \textcolor{comment}{     * @param child Child node to add.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00065}00065 \textcolor{comment}{     */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00066}00066     \textcolor{keywordtype}{void} \mbox{\hyperlink{classTreeNode_a6161f2ebb92184eab4215d121870e788}{AddChild}} (std::unique\_ptr<TreeNode> child);}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00067}00067 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00068}00068 \textcolor{comment}{    /**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00069}00069 \textcolor{comment}{     * @brief Get child count.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00070}00070 \textcolor{comment}{     * @return Number of children.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00071}00071 \textcolor{comment}{     */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00072}00072     std::size\_t \mbox{\hyperlink{classTreeNode_abdd82460187dca8d3e5d66f5d5c529ea}{GetChildCount}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00073}00073 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00074}00074 \textcolor{comment}{    /**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00075}00075 \textcolor{comment}{     * @brief Get child by index.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00076}00076 \textcolor{comment}{     * @param index Child index.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00077}00077 \textcolor{comment}{     * @return Child pointer or nullptr if index is invalid.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00078}00078 \textcolor{comment}{     */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00079}00079     \textcolor{keyword}{const} \mbox{\hyperlink{classTreeNode}{TreeNode}} *\mbox{\hyperlink{classTreeNode_a4727ff801a2d1b9323c5ae50a35457a6}{GetChild}} (std::size\_t index) \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00080}00080 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00081}00081 \textcolor{comment}{    /**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00082}00082 \textcolor{comment}{     * @brief Get mutable child by index.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00083}00083 \textcolor{comment}{     * @param index Child index.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00084}00084 \textcolor{comment}{     * @return Child pointer or nullptr if index is invalid.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00085}00085 \textcolor{comment}{     */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00086}00086     \mbox{\hyperlink{classTreeNode}{TreeNode}} *\mbox{\hyperlink{classTreeNode_a4727ff801a2d1b9323c5ae50a35457a6}{GetChild}} (std::size\_t index);}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00087}00087 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00088}00088 \textcolor{comment}{    /**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00089}00089 \textcolor{comment}{     * @brief Get node type.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00090}00090 \textcolor{comment}{     * @return Node type.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00091}00091 \textcolor{comment}{     */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00092}00092     \mbox{\hyperlink{tree__node_8h_acac9cbaeea226ed297804c012dc12b16}{NodeType}} \mbox{\hyperlink{classTreeNode_afa2f4b0aafa12d3d41ed00df8e0250c9}{GetType}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00093}00093 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00094}00094 \textcolor{comment}{    /**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00095}00095 \textcolor{comment}{     * @brief Get display name.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00096}00096 \textcolor{comment}{     * @return Node name.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00097}00097 \textcolor{comment}{     */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00098}00098     \textcolor{keyword}{const} std::string \&\mbox{\hyperlink{classTreeNode_aaac5b8d9dc9e5ae1f367d1adbcf20e18}{GetName}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00099}00099 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00100}00100 \textcolor{comment}{    /**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00101}00101 \textcolor{comment}{     * @brief Get frame payload if node is frame.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00102}00102 \textcolor{comment}{     * @return Pointer to frame info or nullptr.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00103}00103 \textcolor{comment}{     */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00104}00104     \textcolor{keyword}{const} \mbox{\hyperlink{structFrameInfo}{FrameInfo}} *\mbox{\hyperlink{classTreeNode_afc503b40004764163605d6dbdb4ef811}{GetFrame}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00105}00105 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00106}00106 \textcolor{comment}{    /**}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00107}00107 \textcolor{comment}{     * @brief Get signal payload if node is signal.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00108}00108 \textcolor{comment}{     * @return Pointer to signal info or nullptr.}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00109}00109 \textcolor{comment}{     */}}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00110}00110     \textcolor{keyword}{const} \mbox{\hyperlink{structSignalInfo}{SignalInfo}} *\mbox{\hyperlink{classTreeNode_a226518612d0d00b5988a2c44fc21d3f1}{GetSignal}}() \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00111}00111 }
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00112}00112   \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00113}\mbox{\hyperlink{classTreeNode_a04bccab9e60a6a78777cd7dfec52d224}{00113}}     \mbox{\hyperlink{tree__node_8h_acac9cbaeea226ed297804c012dc12b16}{NodeType}} \mbox{\hyperlink{classTreeNode_a04bccab9e60a6a78777cd7dfec52d224}{m\_type}};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00114}\mbox{\hyperlink{classTreeNode_ac0ddcb8370e6b51e2d3de6b8211a47f8}{00114}}     std::string \mbox{\hyperlink{classTreeNode_ac0ddcb8370e6b51e2d3de6b8211a47f8}{m\_name}};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00115}\mbox{\hyperlink{classTreeNode_a1bd61f40df6d36e61021063e3816a351}{00115}}     std::vector<std::unique\_ptr<TreeNode> > \mbox{\hyperlink{classTreeNode_a1bd61f40df6d36e61021063e3816a351}{m\_children}};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00116}\mbox{\hyperlink{classTreeNode_a77ee6aa80774d67ba442a66b45c798c2}{00116}}     std::unique\_ptr<FrameInfo> \mbox{\hyperlink{classTreeNode_a77ee6aa80774d67ba442a66b45c798c2}{m\_frame}};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00117}\mbox{\hyperlink{classTreeNode_ae658355007bc9303f7bfae3bb3ec8386}{00117}}     std::unique\_ptr<SignalInfo> \mbox{\hyperlink{classTreeNode_ae658355007bc9303f7bfae3bb3ec8386}{m\_signal}};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00118}00118 \};}
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00119}00119 }
\DoxyCodeLine{\Hypertarget{tree__node_8h_source_l00120}00120 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* TREE\_NODE\_H */}\textcolor{preprocessor}{}}

\end{DoxyCode}
