36#ifndef PreferenceTree_h
37#define PreferenceTree_h
43#include "yaml-cpp/yaml.h"
45enum class PreferenceTreeNodeType
65 std::size_t GetLength()
const;
66 const std::string& GetCurrentSegment()
const;
69 std::vector<std::string> m_segments;
76 : m_identifier{ std::move(
identifier) }, m_type{ type }
93 virtual void ToYAML(YAML::Node&
node)
const = 0;
94 virtual void FromYAML(
const YAML::Node&
node) = 0;
96 virtual bool IsVisible()
const = 0;
99 const std::string& GetIdentifier()
const;
100 PreferenceTreeNodeType GetType()
const;
101 bool IsCategory()
const;
102 bool IsPreference()
const;
108 std::string m_identifier;
109 PreferenceTreeNodeType m_type;
119 virtual void ToYAML(YAML::Node&
node)
const;
120 virtual void FromYAML(
const YAML::Node&
node);
124 virtual bool IsVisible()
const;
135 using map_type = std::map<std::string, std::unique_ptr<internal::PreferenceTreeNodeBase>>;
136 using seq_type = std::vector<std::string>;
143 const Preference& GetLeaf(
const std::string& path)
const;
144 virtual void ToYAML(YAML::Node&
node)
const;
145 virtual void FromYAML(
const YAML::Node&
node);
148 void AddPreference(impl::PreferenceBuilder&&
pref);
150 map_type& GetChildren();
151 const seq_type& GetOrdering()
const;
152 virtual bool IsVisible()
const;
Basic preference class and auxilliary types.
Definition AcceleratorBuffer.h:204
Definition PreferenceTree.h:133
Definition Preference.h:147
Definition PreferenceTree.h:114
Definition PreferenceTree.h:56
Definition PreferenceTree.h:73