YAPOG  0.0.1
Yet Another Pokemon Online Game
XmlReader.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_XMLREADER_HPP
2 # define YAPOG_XMLREADER_HPP
3 
4 # include <memory>
5 
6 # include "YAPOG/Macros.hpp"
7 # include "YAPOG/System/String.hpp"
11 
12 namespace yap
13 {
14  class XmlReader;
15  typedef std::shared_ptr<XmlReader> XmlReaderPtrType;
16 
17  class XmlReaderCollection;
18 
19  class YAPOG_LIB XmlReader : public IReader
20  {
22 
23  public:
24 
25  XmlReader ();
26  XmlReader (IStream& iStream, const String& rootName);
27  virtual ~XmlReader ();
28 
29  XmlReaderPtrType ChangeRoot (const String& name);
30 
31  XmlReaderCollection& ReadNodes (
32  const String& name,
33  XmlReaderCollection& xmlReaderCollection);
34 
35  bool NodeExists (const String& name) const;
36 
37  const String& GetNode (int index) const;
38 
41  virtual void Accept (IReaderVisitor& visitor);
42  virtual void Accept (IReaderConstVisitor& visitor) const;
43 
44  virtual String ReadString ();
45  virtual String ReadString (const String& name);
46 
47  virtual bool ReadBool ();
48  virtual bool ReadBool (const String& name);
49 
50  virtual char ReadChar ();
51  virtual char ReadChar (const String& name);
52 
53  virtual uchar ReadUChar ();
54  virtual uchar ReadUChar (const String& name);
55 
56  virtual Int16 ReadInt16 ();
57  virtual Int16 ReadInt16 (const String& name);
58 
59  virtual UInt16 ReadUInt16 ();
60  virtual UInt16 ReadUInt16 (const String& name);
61 
62  virtual int ReadInt ();
63  virtual int ReadInt (const String& name);
64 
65  virtual uint ReadUInt ();
66  virtual uint ReadUInt (const String& name);
67 
68  virtual Int64 ReadInt64 ();
69  virtual Int64 ReadInt64 (const String& name);
70 
71  virtual UInt64 ReadUInt64 ();
72  virtual UInt64 ReadUInt64 (const String& name);
73 
74  virtual float ReadFloat ();
75  virtual float ReadFloat (const String& name);
76 
77  virtual double ReadDouble ();
78  virtual double ReadDouble (const String& name);
79 
80  virtual Vector2 ReadVector2 ();
81  virtual Vector2 ReadVector2 (const String& name);
82 
83  virtual ID ReadID ();
84  virtual ID ReadID (const String& name);
86 
87  private:
88 
89  XmlReader (const String& rootName, XmlTree& data);
90 
92  };
93 } // namespace yap
94 
95 #endif // YAPOG_XMLREADER_HPP