@@ -15,7 +15,7 @@ struct VariantData;
1515class ResourceManager ;
1616
1717class CollectionIterator {
18- friend class CollectionImpl ;
18+ friend class VariantImpl ;
1919
2020 public:
2121 CollectionIterator () : slot_(nullptr ), currentId_(NULL_SLOT) {}
@@ -64,76 +64,4 @@ class CollectionIterator {
6464 SlotId currentId_, nextId_;
6565};
6666
67- class CollectionImpl {
68- protected:
69- VariantData* data_;
70- ResourceManager* resources_;
71-
72- public:
73- using iterator = CollectionIterator;
74-
75- CollectionImpl () : data_(nullptr ), resources_(nullptr ) {}
76-
77- CollectionImpl (VariantData* data, ResourceManager* resources)
78- : data_(data), resources_(resources) {}
79-
80- explicit operator bool () const {
81- return data_ && data_->isCollection ();
82- }
83-
84- bool isNull () const {
85- return !operator bool ();
86- }
87-
88- VariantData* getData () const {
89- return data_;
90- }
91-
92- ResourceManager* getResourceManager () const {
93- return resources_;
94- }
95-
96- iterator createIterator () const ;
97-
98- size_t size () const ;
99- size_t nesting () const ;
100-
101- void clear ();
102-
103- SlotId head () const {
104- return getCollectionData ()->head ;
105- }
106-
107- protected:
108- void appendOne (Slot<VariantData> slot);
109- void appendPair (Slot<VariantData> key, Slot<VariantData> value);
110-
111- void removeOne (iterator it);
112- void removePair (iterator it);
113-
114- VariantData* getVariant (SlotId id) const {
115- ARDUINOJSON_ASSERT (resources_ != nullptr );
116- return resources_->getVariant (id);
117- }
118-
119- void freeVariant (Slot<VariantData> slot) {
120- ARDUINOJSON_ASSERT (resources_ != nullptr );
121- resources_->freeVariant (slot);
122- }
123-
124- Slot<VariantData> allocVariant () {
125- ARDUINOJSON_ASSERT (resources_ != nullptr );
126- return resources_->allocVariant ();
127- }
128-
129- private:
130- Slot<VariantData> getPreviousSlot (VariantData*) const ;
131-
132- CollectionData* getCollectionData () const {
133- ARDUINOJSON_ASSERT (data_ != nullptr );
134- ARDUINOJSON_ASSERT (data_->isCollection ());
135- return &data_->content .asCollection ;
136- }
137- };
138-
13967ARDUINOJSON_END_PRIVATE_NAMESPACE
0 commit comments