CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
xml_named_node_map.h
1
2
3#pragma once
4
5#include <system/object.h>
6#include <system/collections/ienumerator.h>
7#include <system/collections/ienumerable.h>
8#include <cstdint>
9
10
12namespace System
13{
14namespace Collections
15{
16namespace Generic
17{
18template <typename> class List;
19} // namespace Generic
20} // namespace Collections
21class String;
22namespace Xml
23{
24class DocumentXmlWriter;
25class DocumentXPathNavigator;
26class XmlAttributeCollection;
27class XmlDocument;
28class XmlDocumentType;
29class XmlNode;
30} // namespace Xml
31} // namespace System
33
34namespace System {
35
36namespace Xml {
37
42class ASPOSECPP_SHARED_CLASS XmlNamedNodeMap : public Collections::Generic::IEnumerable<SharedPtr<System::Xml::XmlNode>>
43{
46
47 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
48 ASPOSECPP_SHARED_RTTI_INFO_DECL();
49
50public:
51
54
55private:
57 friend class DocumentXmlWriter;
58 friend class DocumentXPathNavigator;
59 friend class XmlAttributeCollection;
60 friend class XmlDocument;
61 friend class XmlDocumentType;
63
64protected:
65
67 class SmallXmlNodeList : public System::Object
68 {
69 typedef SmallXmlNodeList ThisType;
71
72 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
73 RTTI_INFO_DECL();
74
75 private:
76
77 class SingleObjectEnumerator : public Collections::Generic::IEnumerator<SharedPtr<System::Xml::XmlNode>>
78 {
79 typedef SingleObjectEnumerator ThisType;
81
82 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
83 RTTI_INFO_DECL();
84
85 public:
86
87 const SharedPtr<XmlNode>& get_Current() const override;
88
89 SingleObjectEnumerator(const SharedPtr<XmlNode>& value);
90
91 bool MoveNext() override;
92 void Reset() override;
93 void Dispose() override;
94
97 ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<SharedPtr<System::Xml::XmlNode>>* CloneIterator() const override;
98
99 protected:
100
101 #ifdef ASPOSE_GET_SHARED_MEMBERS
102 void GetSharedMembers(System::Object::shared_members_type& result) const override;
103 #endif
104
105 #ifdef __DBG_FOR_EACH_MEMBER
106 public:
109 ASPOSECPP_SHARED_API void DBG_for_each_member(DBG::for_each_member_visitor& visitor) const override;
112 const char* DBG_class_name() const override { return "SingleObjectEnumerator"; }
113 #endif
114
115
116 private:
117
118 SharedPtr<XmlNode> _loneValue;
119 int32_t _position;
120 mutable SharedPtr<XmlNode> m_CurrentHolder;
121
122 };
123
124
125 public:
126
127 int32_t get_Count();
128
129 SharedPtr<XmlNode> idx_get(int32_t index);
130
131 void Add(const SharedPtr<XmlNode>& value);
132 void RemoveAt(int32_t index);
133 void Insert(int32_t index, const SharedPtr<XmlNode>& value);
135
136 protected:
137
138 #ifdef ASPOSE_GET_SHARED_MEMBERS
139 void GetSharedMembers(System::Object::shared_members_type& result) const override;
140 #endif
141
142 #ifdef __DBG_FOR_EACH_MEMBER
143 public:
146 ASPOSECPP_SHARED_API void DBG_for_each_member(DBG::for_each_member_visitor& visitor) const override;
149 const char* DBG_class_name() const override { return "SingleObjectEnumerator"; }
150 #endif
151
152
153 private:
154
155 SharedPtr<XmlNode> _field;
156 SharedPtr<Collections::Generic::List<SharedPtr<XmlNode>>> _list;
157
158 public:
159
160 class ASPOSECPP_SHARED_CLASS Iterator : public Details::BaseIterator<std::forward_iterator_tag, const decltype(_field)>
161 {
162 public:
163 ASPOSECPP_SHARED_API Iterator(pointer ptr);
164
165 ASPOSECPP_SHARED_API Iterator& operator++();
166 ASPOSECPP_SHARED_API Iterator operator++(int);
167
168 ASPOSECPP_SHARED_API bool operator==(const Iterator& other) const;
169 ASPOSECPP_SHARED_API bool operator!=(const Iterator& other) const;
170
171 ASPOSECPP_SHARED_API reference operator*() const;
172
173 private:
174 pointer m_ptr;
175 };
176
177 Iterator begin() const noexcept;
178 Iterator end() const noexcept;
179
180 Iterator cbegin() const noexcept;
181 Iterator cend() const noexcept;
182 };
184
185public:
186
189 virtual ASPOSECPP_SHARED_API int32_t get_Count();
190
195 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> GetNamedItem(String name);
203 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> SetNamedItem(SharedPtr<XmlNode> node);
208 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> RemoveNamedItem(String name);
215 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> Item(int32_t index);
220 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> GetNamedItem(String localName, String namespaceURI);
225 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> RemoveNamedItem(String localName, String namespaceURI);
228 ASPOSECPP_SHARED_API SharedPtr<Collections::Generic::IEnumerator<SharedPtr<XmlNode>>> GetEnumerator() override;
229
230protected:
231
233 WeakPtr<XmlNode> parent;
234 SharedPtr<XmlNamedNodeMap::SmallXmlNodeList> nodes;
235
236 XmlNamedNodeMap(const SharedPtr<XmlNode>& parent);
237 MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(XmlNamedNodeMap, CODEPORTING_ARGS(SharedPtr<XmlNode> parent));
238
239 int32_t FindNodeOffset(const String& name);
240 int32_t FindNodeOffset(const String& localName, const String& namespaceURI);
241 virtual ASPOSECPP_SHARED_API const SharedPtr<XmlNode>& AddNode(const SharedPtr<XmlNode>& node);
242 virtual ASPOSECPP_SHARED_API const SharedPtr<XmlNode>& AddNodeForLoad(const SharedPtr<XmlNode>& node, const SharedPtr<XmlDocument>& doc);
243 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> RemoveNodeAt(int32_t i);
244 SharedPtr<XmlNode> ReplaceNodeAt(int32_t i, const SharedPtr<XmlNode>& node);
245 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> InsertNodeAt(int32_t i, SharedPtr<XmlNode> node);
247
248 virtual ASPOSECPP_SHARED_API ~XmlNamedNodeMap();
249
251 #ifdef ASPOSE_GET_SHARED_MEMBERS
252 ASPOSECPP_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
253 #endif
254
255 #ifdef __DBG_FOR_EACH_MEMBER
256public:
259 ASPOSECPP_SHARED_API void DBG_for_each_member(DBG::for_each_member_visitor& visitor) const override;
262 const char* DBG_class_name() const override { return "XmlNamedNodeMap"; }
263 #endif
265
266public:
268 using iterator = SmallXmlNodeList::Iterator;
269
272 ASPOSECPP_SHARED_API iterator begin() const noexcept;
275 ASPOSECPP_SHARED_API iterator end() const noexcept;
276
279 ASPOSECPP_SHARED_API iterator cbegin() const noexcept;
282 ASPOSECPP_SHARED_API iterator cend() const noexcept;
283
284};
285
286} // namespace Xml
287} // namespace System
288
289
Interface of object providing enumerator on contained elements.
Definition: ienumerable.h:25
Interface of enumerator which can be used to iterate through some elements. Objects of this class sho...
Definition: ienumerator.h:63
Base class that enables using methods available for System.Object class in C#. All non-trivial classe...
Definition: object.h:62
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
String class used across the library. Is a substitute for C# System.String when translating code....
Definition: string.h:122
Subclass of System::SmartPtr which sets itself to weak mode at construction. Please note that this cl...
Definition: weak_ptr.h:18
Represents a collection of attributes that can be accessed by name or index.
Definition: xml_attribute_collection.h:35
Represents an XML document. You can use this class to load, validate, edit, add, and position XML in ...
Definition: xml_document.h:100
Represents the document type declaration.
Definition: xml_document_type.h:37
Represents a collection of nodes that can be accessed by name or index.
Definition: xml_named_node_map.h:43
iterator begin() const noexcept
Gets iterator to the first element of collection.
SmallXmlNodeList::Iterator iterator
Iterator type.
Definition: xml_named_node_map.h:268
Represents a single node in the XML document.
Definition: xml_node.h:75
class ASPOSECPP_SHARED_CLASS List
Definition: ienumerable.h:18
bool operator!=(const SharedPtr< XmlQualifiedName > &a, const SharedPtr< XmlQualifiedName > &b)
Compares two XmlQualifiedName objects.
@ Xml
Serialize according to the XML 1.0 rules.
bool operator==(const SharedPtr< XmlQualifiedName > &a, const SharedPtr< XmlQualifiedName > &b)
Compares two XmlQualifiedName objects.
Definition: db_command.h:9
Decimal operator*(const T &x, const Decimal &d)
Returns a new instance of Decimal class that represents a value that is a result of multiplication of...
Definition: decimal.h:556