CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
xpath_node_iterator.h
1
2
3#pragma once
4
5#include <system/shared_ptr.h>
6#include <system/collections/ienumerator.h>
7#include <system/collections/ienumerable.h>
8#include <cstdint>
9
10
12namespace System
13{
14namespace Internal
15{
16namespace Xml
17{
18namespace XPath
19{
20class CacheAxisQuery;
21class CacheOutputQuery;
22class ContextQuery;
23class ResetableIterator;
24} // namespace XPath
25} // namespace Xml
26} // namespace Internal
27namespace Xml
28{
29namespace XPath
30{
31class XPathNavigator;
32} // namespace XPath
33} // namespace Xml
34} // namespace System
36
37namespace System {
38
39namespace Xml {
40
41namespace XPath {
42
44class ASPOSECPP_SHARED_CLASS XPathNodeIterator : public Collections::Generic::IEnumerable<SharedPtr<System::Xml::XPath::XPathNavigator>>
45{
48
49 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
50 ASPOSECPP_SHARED_RTTI_INFO_DECL();
51
52public:
53
56
57private:
59 friend class Internal::Xml::XPath::ContextQuery;
60 friend class Internal::Xml::XPath::CacheAxisQuery;
61 friend class Internal::Xml::XPath::CacheOutputQuery;
62 friend class Internal::Xml::XPath::ResetableIterator;
64
65private:
66
67 class Enumerator : public Collections::Generic::IEnumerator<SharedPtr<System::Xml::XPath::XPathNavigator>>
68 {
69 typedef Enumerator ThisType;
71
72 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
73 RTTI_INFO_DECL();
74
75 public:
76
77 const SharedPtr<XPathNavigator>& get_Current() const override;
78
79 Enumerator(const SharedPtr<XPathNodeIterator>& original);
80
81 void Dispose() override;
82 bool MoveNext() override;
83 void Reset() override;
84
87 ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<SharedPtr<System::Xml::XPath::XPathNavigator>>* CloneIterator() const override;
88
89 protected:
90
91 #ifdef ASPOSE_GET_SHARED_MEMBERS
92 void GetSharedMembers(System::Object::shared_members_type& result) const override;
93 #endif
94
95
96 private:
97
100 bool _iterationStarted;
101 mutable SharedPtr<XPathNavigator> m_CurrentHolder;
102
103 };
104
105
106public:
107
112 virtual ASPOSECPP_SHARED_API const SharedPtr<XPathNavigator>& get_Current() = 0;
115 virtual ASPOSECPP_SHARED_API int32_t get_CurrentPosition() = 0;
118 virtual ASPOSECPP_SHARED_API int32_t get_Count();
119
122 virtual ASPOSECPP_SHARED_API SharedPtr<XPathNodeIterator> Clone() = 0;
126 virtual ASPOSECPP_SHARED_API bool MoveNext() = 0;
130
132 ASPOSECPP_SHARED_API XPathNodeIterator();
133
134protected:
135
137 int32_t count;
139
140 virtual ASPOSECPP_SHARED_API ~XPathNodeIterator();
141
142};
143
144} // namespace XPath
145} // namespace Xml
146} // namespace System
147
148
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
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
Provides an iterator over a selected set of nodes.
Definition: xpath_node_iterator.h:45
SharedPtr< Collections::Generic::IEnumerator< SharedPtr< XPathNavigator > > > GetEnumerator() override
Returns an IEnumerator object to iterate through the selected node set.
virtual int32_t get_CurrentPosition()=0
When overridden in a derived class, gets the index of the current position in the selected set of nod...
virtual int32_t get_Count()
Returns the index of the last node in the selected set of nodes.
virtual bool MoveNext()=0
When overridden in a derived class, moves the XPathNavigator object returned by the XPathNodeIterator...
virtual const SharedPtr< XPathNavigator > & get_Current()=0
When overridden in a derived class, gets the XPathNavigator object for this XPathNodeIterator,...
virtual SharedPtr< XPathNodeIterator > Clone()=0
When overridden in a derived class, returns a clone of this XPathNodeIterator object.
XPathNodeIterator()
Initializes a new instance of the XPathNodeIterator class.
@ Xml
Serialize according to the XML 1.0 rules.
Definition: db_command.h:9