@@ -17,16 +17,22 @@ namespace sdk
1717namespace configuration
1818{
1919
20+ class RymlDocument ;
21+
2022class RymlDocumentNode : public DocumentNode
2123{
2224public:
23- RymlDocumentNode (ryml::ConstNodeRef node, std::size_t depth) : node_(node), depth_(depth) {}
25+ RymlDocumentNode (const RymlDocument *doc, ryml::ConstNodeRef node, std::size_t depth)
26+ : doc_(doc), node_(node), depth_(depth)
27+ {}
2428 RymlDocumentNode (RymlDocumentNode &&) = delete ;
2529 RymlDocumentNode (const RymlDocumentNode &) = delete ;
2630 RymlDocumentNode &operator =(RymlDocumentNode &&) = delete ;
2731 RymlDocumentNode &operator =(const RymlDocumentNode &other) = delete ;
2832 ~RymlDocumentNode () override = default ;
2933
34+ DocumentNodeLocation Location () const override ;
35+
3036 std::string Key () const override ;
3137
3238 bool AsBoolean () const override ;
@@ -62,14 +68,16 @@ class RymlDocumentNode : public DocumentNode
6268 ryml::ConstNodeRef GetRequiredRymlChildNode (const std::string &name) const ;
6369 ryml::ConstNodeRef GetRymlChildNode (const std::string &name) const ;
6470
71+ const RymlDocument *doc_;
6572 ryml::ConstNodeRef node_;
6673 std::size_t depth_;
6774};
6875
6976class RymlDocumentNodeConstIteratorImpl : public DocumentNodeConstIteratorImpl
7077{
7178public:
72- RymlDocumentNodeConstIteratorImpl (ryml::ConstNodeRef parent,
79+ RymlDocumentNodeConstIteratorImpl (const RymlDocument *doc,
80+ ryml::ConstNodeRef parent,
7381 std::size_t index,
7482 std::size_t depth);
7583 RymlDocumentNodeConstIteratorImpl (RymlDocumentNodeConstIteratorImpl &&) = delete ;
@@ -84,6 +92,7 @@ class RymlDocumentNodeConstIteratorImpl : public DocumentNodeConstIteratorImpl
8492 bool Equal (const DocumentNodeConstIteratorImpl *rhs) const override ;
8593
8694private:
95+ const RymlDocument *doc_;
8796 ryml::ConstNodeRef parent_;
8897 std::size_t index_;
8998 std::size_t depth_;
@@ -92,7 +101,8 @@ class RymlDocumentNodeConstIteratorImpl : public DocumentNodeConstIteratorImpl
92101class RymlPropertiesNodeConstIteratorImpl : public PropertiesNodeConstIteratorImpl
93102{
94103public:
95- RymlPropertiesNodeConstIteratorImpl (ryml::ConstNodeRef parent,
104+ RymlPropertiesNodeConstIteratorImpl (const RymlDocument *doc,
105+ ryml::ConstNodeRef parent,
96106 std::size_t index,
97107 std::size_t depth);
98108 RymlPropertiesNodeConstIteratorImpl (RymlPropertiesNodeConstIteratorImpl &&) = delete ;
@@ -108,6 +118,7 @@ class RymlPropertiesNodeConstIteratorImpl : public PropertiesNodeConstIteratorIm
108118 bool Equal (const PropertiesNodeConstIteratorImpl *rhs) const override ;
109119
110120private:
121+ const RymlDocument *doc_;
111122 ryml::ConstNodeRef parent_;
112123 std::size_t index_;
113124 std::size_t depth_;
0 commit comments