YAPOG  0.0.1
Yet Another Pokemon Online Game
XmlReader.cpp
Go to the documentation of this file.
7 
8 namespace yap
9 {
11  : data_ ()
12  {
13  }
14 
15  XmlReader::XmlReader (IStream& iStream, const String& rootName)
16  : data_ ()
17  {
18  data_.CreateFromStream (iStream, rootName);
19  }
20 
22  {
23  }
24 
26  {
27  return XmlReaderPtrType (
28  new XmlReader (
29  rootName,
30  *data_.ChangeRoot (
31  rootName)));
32  }
33 
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 
62  {
63  visitor.Visit (*this);
64  }
65 
66  void XmlReader::Accept (IReaderConstVisitor& visitor) const
67  {
68  visitor.Visit (*this);
69  }
70 
72  {
73  return data_.Get<String> ();
74  }
75 
77  {
78  return data_.Get<String> (name);
79  }
80 
82  {
83  return data_.Get<bool> ();
84  }
85 
86  bool XmlReader::ReadBool (const String& name)
87  {
88  return data_.Get<bool> (name);
89  }
90 
92  {
93  return data_.Get<char> ();
94  }
95 
96  char XmlReader::ReadChar (const String& name)
97  {
98  return data_.Get<char> (name);
99  }
100 
102  {
103  return data_.Get<uchar> ();
104  }
105 
107  {
108  return data_.Get<uchar> (name);
109  }
110 
112  {
113  return data_.Get<Int16> ();
114  }
115 
117  {
118  return data_.Get<Int16> (name);
119  }
120 
122  {
123  return data_.Get<UInt16> ();
124  }
125 
127  {
128  return data_.Get<UInt16> (name);
129  }
130 
132  {
133  return data_.Get<int> ();
134  }
135 
136  int XmlReader::ReadInt (const String& name)
137  {
138  return data_.Get<int> (name);
139  }
140 
142  {
143  return data_.Get<uint> ();
144  }
145 
147  {
148  return data_.Get<uint> (name);
149  }
150 
152  {
153  return data_.Get<Int64> ();
154  }
155 
157  {
158  return data_.Get<Int64> (name);
159  }
160 
162  {
163  return data_.Get<UInt64> ();
164  }
165 
167  {
168  return data_.Get<UInt64> (name);
169  }
170 
172  {
173  return data_.Get<float> ();
174  }
175 
176  float XmlReader::ReadFloat (const String& name)
177  {
178  return data_.Get<float> (name);
179  }
180 
182  {
183  return data_.Get<double> ();
184  }
185 
186  double XmlReader::ReadDouble (const String& name)
187  {
188  return data_.Get<double> (name);
189  }
190 
192  {
193  String data = ReadString ();
195  StringHelper::Split (data, ",", result);
196 
197  return Vector2 (
198  StringHelper::Parse<float> (result[0]),
199  StringHelper::Parse<float> (result[1]));
200  }
201 
203  {
204  String data = ReadString (name);
206  StringHelper::Split (data, ",", result);
207 
208  return Vector2 (
209  StringHelper::Parse<float> (result[0]),
210  StringHelper::Parse<float> (result[1]));
211  }
212 
214  {
215  return ID (ReadUInt64 ());
216  }
217 
219  {
220  return ID (ReadUInt64 (name));
221  }
222 
223  XmlReader::XmlReader (const String& rootName, XmlTree& data)
224  : data_ (data)
225  {
226  }
227 } // namespace yap