YAPOG  0.0.1
Yet Another Pokemon Online Game
IWriter.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_IWRITER_HPP
2 # define YAPOG_IWRITER_HPP
3 
4 # include "YAPOG/Macros.hpp"
5 # include "YAPOG/System/String.hpp"
8 # include "YAPOG/Game/ID.hpp"
9 
10 namespace yap
11 {
12  struct IWriterVisitor;
13  struct IWriterConstVisitor;
14 
16  {
17  virtual ~IWriter () {}
18 
19  virtual void Accept (IWriterVisitor& visitor) = 0;
20  virtual void Accept (IWriterConstVisitor& visitor) const = 0;
21 
22  virtual void Write (const String& value) = 0;
23  virtual void Write (const String& name, const String& value) = 0;
24 
25  virtual void Write (const bool& value) = 0;
26  virtual void Write (const String& name, const bool& value) = 0;
27 
28  virtual void Write (const char& value) = 0;
29  virtual void Write (const String& name, const char& value) = 0;
30 
31  virtual void Write (const uchar& value) = 0;
32  virtual void Write (const String& name, const uchar& value) = 0;
33 
34  virtual void Write (const Int16& value) = 0;
35  virtual void Write (const String& name, const Int16& value) = 0;
36 
37  virtual void Write (const UInt16& value) = 0;
38  virtual void Write (const String& name, const UInt16& value) = 0;
39 
40  virtual void Write (const int& value) = 0;
41  virtual void Write (const String& name, const int& value) = 0;
42 
43  virtual void Write (const uint& value) = 0;
44  virtual void Write (const String& name, const uint& value) = 0;
45 
46  virtual void Write (const Int64& value) = 0;
47  virtual void Write (const String& name, const Int64& value) = 0;
48 
49  virtual void Write (const UInt64& value) = 0;
50  virtual void Write (const String& name, const UInt64& value) = 0;
51 
52  virtual void Write (const float& value) = 0;
53  virtual void Write (const String& name, const float& value) = 0;
54 
55  virtual void Write (const double& value) = 0;
56  virtual void Write (const String& name, const double& value) = 0;
57 
58  virtual void Write (const Vector2& value) = 0;
59  virtual void Write (const String& name, const Vector2& value) = 0;
60 
61  virtual void Write (const ID& value) = 0;
62  virtual void Write (const String& name, const ID& value) = 0;
63  };
64 } // namespace yap
65 
66 #endif // YAPOG_IWRITER_HPP