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
106 private:
107
108 SharedPtr<XmlNode> _loneValue;
109 int32_t _position;
110 mutable SharedPtr<XmlNode> m_CurrentHolder;
111
112 };
113
114
115 public:
116
117 int32_t get_Count();
118
119 SharedPtr<XmlNode> idx_get(int32_t index);
120
121 void Add(const SharedPtr<XmlNode>& value);
122 void RemoveAt(int32_t index);
123 void Insert(int32_t index, const SharedPtr<XmlNode>& value);
125
126 protected:
127
128 #ifdef ASPOSE_GET_SHARED_MEMBERS
129 void GetSharedMembers(System::Object::shared_members_type& result) const override;
130 #endif
131
132
133 private:
134
135 SharedPtr<XmlNode> _field;
137
138 public:
139
140 class ASPOSECPP_SHARED_CLASS Iterator : public Details::BaseIterator<std::forward_iterator_tag, const decltype(_field)>
141 {
142 public:
143 ASPOSECPP_SHARED_API Iterator(pointer ptr);
144
145 ASPOSECPP_SHARED_API Iterator& operator++();
146 ASPOSECPP_SHARED_API Iterator operator++(int);
147
148 ASPOSECPP_SHARED_API bool operator==(const Iterator& other) const;
149 ASPOSECPP_SHARED_API bool operator!=(const Iterator& other) const;
150
151 ASPOSECPP_SHARED_API reference operator*() const;
152
153 private:
154 pointer m_ptr;
155 };
156
157 Iterator begin() const noexcept;
158 Iterator end() const noexcept;
159
160 Iterator cbegin() const noexcept;
161 Iterator cend() const noexcept;
162 };
164
165public:
166
169 virtual ASPOSECPP_SHARED_API int32_t get_Count();
170
175 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> GetNamedItem(String name);
183 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> SetNamedItem(SharedPtr<XmlNode> node);
188 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> RemoveNamedItem(String name);
195 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> Item(int32_t index);
200 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> GetNamedItem(String localName, String namespaceURI);
205 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> RemoveNamedItem(String localName, String namespaceURI);
208 ASPOSECPP_SHARED_API SharedPtr<Collections::Generic::IEnumerator<SharedPtr<XmlNode>>> GetEnumerator() override;
209
210protected:
211
213 WeakPtr<XmlNode> parent;
214 SharedPtr<XmlNamedNodeMap::SmallXmlNodeList> nodes;
215
216 XmlNamedNodeMap(const SharedPtr<XmlNode>& parent);
217 MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(XmlNamedNodeMap, CODEPORTING_ARGS(SharedPtr<XmlNode> parent));
218
219 int32_t FindNodeOffset(const String& name);
220 int32_t FindNodeOffset(const String& localName, const String& namespaceURI);
221 virtual ASPOSECPP_SHARED_API const SharedPtr<XmlNode>& AddNode(const SharedPtr<XmlNode>& node);
222 virtual ASPOSECPP_SHARED_API const SharedPtr<XmlNode>& AddNodeForLoad(const SharedPtr<XmlNode>& node, const SharedPtr<XmlDocument>& doc);
223 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> RemoveNodeAt(int32_t i);
224 SharedPtr<XmlNode> ReplaceNodeAt(int32_t i, const SharedPtr<XmlNode>& node);
225 virtual ASPOSECPP_SHARED_API SharedPtr<XmlNode> InsertNodeAt(int32_t i, SharedPtr<XmlNode> node);
227
228 virtual ASPOSECPP_SHARED_API ~XmlNamedNodeMap();
229
231 #ifdef ASPOSE_GET_SHARED_MEMBERS
232 ASPOSECPP_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
233 #endif
235
236public:
238 using iterator = SmallXmlNodeList::Iterator;
239
242 ASPOSECPP_SHARED_API iterator begin() const noexcept;
245 ASPOSECPP_SHARED_API iterator end() const noexcept;
246
249 ASPOSECPP_SHARED_API iterator cbegin() const noexcept;
252 ASPOSECPP_SHARED_API iterator cend() const noexcept;
253
254};
255
256} // namespace Xml
257} // namespace System
258
259
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:238
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