YAPOG
0.0.1
Yet Another Pokemon Online Game
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
XmlReader.cpp
Go to the documentation of this file.
1
#include "
YAPOG/System/IO/Xml/XmlReader.hpp
"
2
#include "
YAPOG/System/Error/InvalidMethodCallException.hpp
"
3
#include "
YAPOG/System/IO/IReaderVisitor.hpp
"
4
#include "
YAPOG/System/IO/IReaderConstVisitor.hpp
"
5
#include "
YAPOG/System/IO/Xml/XmlReaderCollection.hpp
"
6
#include "
YAPOG/System/StringHelper.hpp
"
7
8
namespace
yap
9
{
10
XmlReader::XmlReader
()
11
: data_ ()
12
{
13
}
14
15
XmlReader::XmlReader
(
IStream
& iStream,
const
String
& rootName)
16
: data_ ()
17
{
18
data_
.
CreateFromStream
(iStream, rootName);
19
}
20
21
XmlReader::~XmlReader
()
22
{
23
}
24
25
XmlReaderPtrType
XmlReader::ChangeRoot
(
const
String
& rootName)
26
{
27
return
XmlReaderPtrType
(
28
new
XmlReader
(
29
rootName,
30
*
data_
.
ChangeRoot
(
31
rootName)));
32
}
33
34
XmlReaderCollection
&
XmlReader::ReadNodes
(
35
const
String
& name,
36
XmlReaderCollection
& xmlReaderCollection)
37
{
38
for
(
auto
& it : *
data_
.
GetRootRawData
())
39
{
40
if
(it.first != name)
41
continue
;
42
43
XmlReaderPtrType
xmlReader (
new
XmlReader
());
44
xmlReader->data_.CreateFromRawData (&it.second);
45
xmlReaderCollection.
Add
(xmlReader);
46
}
47
48
return
xmlReaderCollection;
49
}
50
51
bool
XmlReader::NodeExists
(
const
String
& name)
const
52
{
53
return
data_
.
NodeExists
(name);
54
}
55
56
const
String
&
XmlReader::GetNode
(
int
index)
const
57
{
58
return
data_
.
GetNode
(index);
59
}
60
61
void
XmlReader::Accept
(
IReaderVisitor
& visitor)
62
{
63
visitor.
Visit
(*
this
);
64
}
65
66
void
XmlReader::Accept
(
IReaderConstVisitor
& visitor)
const
67
{
68
visitor.
Visit
(*
this
);
69
}
70
71
String
XmlReader::ReadString
()
72
{
73
return
data_
.
Get
<
String
> ();
74
}
75
76
String
XmlReader::ReadString
(
const
String
& name)
77
{
78
return
data_
.
Get
<
String
> (name);
79
}
80
81
bool
XmlReader::ReadBool
()
82
{
83
return
data_
.
Get
<
bool
> ();
84
}
85
86
bool
XmlReader::ReadBool
(
const
String
& name)
87
{
88
return
data_
.
Get
<
bool
> (name);
89
}
90
91
char
XmlReader::ReadChar
()
92
{
93
return
data_
.
Get
<
char
> ();
94
}
95
96
char
XmlReader::ReadChar
(
const
String
& name)
97
{
98
return
data_
.
Get
<
char
> (name);
99
}
100
101
uchar
XmlReader::ReadUChar
()
102
{
103
return
data_
.
Get
<
uchar
> ();
104
}
105
106
uchar
XmlReader::ReadUChar
(
const
String
& name)
107
{
108
return
data_
.
Get
<
uchar
> (name);
109
}
110
111
Int16
XmlReader::ReadInt16
()
112
{
113
return
data_
.
Get
<
Int16
> ();
114
}
115
116
Int16
XmlReader::ReadInt16
(
const
String
& name)
117
{
118
return
data_
.
Get
<
Int16
> (name);
119
}
120
121
UInt16
XmlReader::ReadUInt16
()
122
{
123
return
data_
.
Get
<
UInt16
> ();
124
}
125
126
UInt16
XmlReader::ReadUInt16
(
const
String
& name)
127
{
128
return
data_
.
Get
<
UInt16
> (name);
129
}
130
131
int
XmlReader::ReadInt
()
132
{
133
return
data_
.
Get
<
int
> ();
134
}
135
136
int
XmlReader::ReadInt
(
const
String
& name)
137
{
138
return
data_
.
Get
<
int
> (name);
139
}
140
141
uint
XmlReader::ReadUInt
()
142
{
143
return
data_
.
Get
<
uint
> ();
144
}
145
146
uint
XmlReader::ReadUInt
(
const
String
& name)
147
{
148
return
data_
.
Get
<
uint
> (name);
149
}
150
151
Int64
XmlReader::ReadInt64
()
152
{
153
return
data_
.
Get
<
Int64
> ();
154
}
155
156
Int64
XmlReader::ReadInt64
(
const
String
& name)
157
{
158
return
data_
.
Get
<
Int64
> (name);
159
}
160
161
UInt64
XmlReader::ReadUInt64
()
162
{
163
return
data_
.
Get
<
UInt64
> ();
164
}
165
166
UInt64
XmlReader::ReadUInt64
(
const
String
& name)
167
{
168
return
data_
.
Get
<
UInt64
> (name);
169
}
170
171
float
XmlReader::ReadFloat
()
172
{
173
return
data_
.
Get
<
float
> ();
174
}
175
176
float
XmlReader::ReadFloat
(
const
String
& name)
177
{
178
return
data_
.
Get
<
float
> (name);
179
}
180
181
double
XmlReader::ReadDouble
()
182
{
183
return
data_
.
Get
<
double
> ();
184
}
185
186
double
XmlReader::ReadDouble
(
const
String
& name)
187
{
188
return
data_
.
Get
<
double
> (name);
189
}
190
191
Vector2
XmlReader::ReadVector2
()
192
{
193
String
data =
ReadString
();
194
collection::Array<String>
result;
195
StringHelper::Split
(data,
","
, result);
196
197
return
Vector2
(
198
StringHelper::Parse<float> (result[0]),
199
StringHelper::Parse<float> (result[1]));
200
}
201
202
Vector2
XmlReader::ReadVector2
(
const
String
& name)
203
{
204
String
data =
ReadString
(name);
205
collection::Array<String>
result;
206
StringHelper::Split
(data,
","
, result);
207
208
return
Vector2
(
209
StringHelper::Parse<float> (result[0]),
210
StringHelper::Parse<float> (result[1]));
211
}
212
213
ID
XmlReader::ReadID
()
214
{
215
return
ID
(
ReadUInt64
());
216
}
217
218
ID
XmlReader::ReadID
(
const
String
& name)
219
{
220
return
ID
(
ReadUInt64
(name));
221
}
222
223
XmlReader::XmlReader
(
const
String
& rootName,
XmlTree
& data)
224
: data_ (data)
225
{
226
}
227
}
// namespace yap
YAPOG
src
YAPOG
System
IO
Xml
XmlReader.cpp
Generated on Mon Sep 17 2012 22:24:26 for YAPOG by
1.8.1.1