Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
IntersectIterator.cs
Go to the documentation of this file.
1
using
System.ComponentModel
;
2
using
System.Xml.XPath
;
3
4
namespace
System.Xml.Xsl.Runtime
;
5
6
[
EditorBrowsable
(
EditorBrowsableState
.Never)]
7
public
struct
IntersectIterator
8
{
9
private
enum
IteratorState
10
{
11
InitLeft
,
12
NeedLeft
,
13
NeedRight
,
14
NeedLeftAndRight
,
15
HaveCurrent
16
}
17
18
private
XmlQueryRuntime
_runtime
;
19
20
private
XPathNavigator
_navLeft
;
21
22
private
XPathNavigator
_navRight
;
23
24
private
IteratorState
_state
;
25
26
public
XPathNavigator
Current
=>
_navLeft
;
27
28
public
void
Create
(
XmlQueryRuntime
runtime
)
29
{
30
_runtime
=
runtime
;
31
_state
=
IteratorState
.InitLeft;
32
}
33
34
public
SetIteratorResult
MoveNext
(
XPathNavigator
nestedNavigator
)
35
{
36
switch
(
_state
)
37
{
38
case
IteratorState
.InitLeft:
39
_navLeft
=
nestedNavigator
;
40
_state
=
IteratorState
.NeedRight;
41
return
SetIteratorResult
.InitRightIterator;
42
case
IteratorState
.NeedLeft:
43
_navLeft
=
nestedNavigator
;
44
break
;
45
case
IteratorState
.NeedRight:
46
_navRight
=
nestedNavigator
;
47
break
;
48
case
IteratorState
.NeedLeftAndRight:
49
_navLeft
=
nestedNavigator
;
50
_state
=
IteratorState
.NeedRight;
51
return
SetIteratorResult
.NeedRightNode;
52
case
IteratorState
.HaveCurrent:
53
_state
=
IteratorState
.NeedLeftAndRight;
54
return
SetIteratorResult
.NeedLeftNode;
55
}
56
if
(
_navLeft
==
null
||
_navRight
==
null
)
57
{
58
return
SetIteratorResult
.NoMoreNodes;
59
}
60
int
num =
_runtime
.
ComparePosition
(
_navLeft
,
_navRight
);
61
if
(num < 0)
62
{
63
_state
=
IteratorState
.NeedLeft;
64
return
SetIteratorResult
.NeedLeftNode;
65
}
66
if
(num > 0)
67
{
68
_state
=
IteratorState
.NeedRight;
69
return
SetIteratorResult
.NeedRightNode;
70
}
71
_state
=
IteratorState
.HaveCurrent;
72
return
SetIteratorResult
.HaveCurrentNode;
73
}
74
}
System.Xml.XPath.XPathNavigator
Definition
XPathNavigator.cs:15
System.Xml.Xsl.Runtime.XmlQueryRuntime.ComparePosition
int ComparePosition(XPathNavigator navigatorThis, XPathNavigator navigatorThat)
Definition
XmlQueryRuntime.cs:589
System.Xml.Xsl.Runtime.XmlQueryRuntime
Definition
XmlQueryRuntime.cs:16
System.ComponentModel.EditorBrowsableState
EditorBrowsableState
Definition
EditorBrowsableState.cs:4
System.ComponentModel
Definition
ColumnAttribute.cs:3
System.Xml.XPath
Definition
Extensions.cs:5
System.Xml.Xsl.Runtime.SetIteratorResult
SetIteratorResult
Definition
SetIteratorResult.cs:7
System.Xml.Xsl.Runtime
Definition
AncestorDocOrderIterator.cs:4
System.Xml.ValueHandleType.Dictionary
@ Dictionary
System.Xml.Xsl.Runtime.IntersectIterator._runtime
XmlQueryRuntime _runtime
Definition
IntersectIterator.cs:18
System.Xml.Xsl.Runtime.IntersectIterator.IteratorState
IteratorState
Definition
IntersectIterator.cs:10
System.Xml.Xsl.Runtime.IntersectIterator.IteratorState.NeedLeft
@ NeedLeft
System.Xml.Xsl.Runtime.IntersectIterator.IteratorState.InitLeft
@ InitLeft
System.Xml.Xsl.Runtime.IntersectIterator.IteratorState.HaveCurrent
@ HaveCurrent
System.Xml.Xsl.Runtime.IntersectIterator.IteratorState.NeedRight
@ NeedRight
System.Xml.Xsl.Runtime.IntersectIterator.IteratorState.NeedLeftAndRight
@ NeedLeftAndRight
System.Xml.Xsl.Runtime.IntersectIterator.Current
XPathNavigator Current
Definition
IntersectIterator.cs:26
System.Xml.Xsl.Runtime.IntersectIterator._state
IteratorState _state
Definition
IntersectIterator.cs:24
System.Xml.Xsl.Runtime.IntersectIterator._navLeft
XPathNavigator _navLeft
Definition
IntersectIterator.cs:20
System.Xml.Xsl.Runtime.IntersectIterator.MoveNext
SetIteratorResult MoveNext(XPathNavigator nestedNavigator)
Definition
IntersectIterator.cs:34
System.Xml.Xsl.Runtime.IntersectIterator._navRight
XPathNavigator _navRight
Definition
IntersectIterator.cs:22
System.Xml.Xsl.Runtime.IntersectIterator.Create
void Create(XmlQueryRuntime runtime)
Definition
IntersectIterator.cs:28
System.Xml.Xsl.Runtime.IntersectIterator
Definition
IntersectIterator.cs:8
source
System.Private.Xml
System.Xml.Xsl.Runtime
IntersectIterator.cs
Generated by
1.10.0