YAPOG  0.0.1
Yet Another Pokemon Online Game
Packet.cpp
Go to the documentation of this file.
11 
12 namespace yap
13 {
14  const PacketType Packet::DEFAULT_TYPE = PacketType::None;
15 
17  : type_ (DEFAULT_TYPE)
18  , packet_ ()
19  {
20  }
21 
23  {
24  }
25 
27  {
28  type_ = type;
29 
30  Write (type_);
31  }
32 
34  {
35  if (!socket.Receive (*this))
36  return false;
37 
38  type_ = ReadPacketType ();
39 
40  return true;
41  }
42 
43  const PacketType& Packet::GetType () const
44  {
45  return type_;
46  }
47 
48  sf::Packet& Packet::GetInnerPacket ()
49  {
50  return packet_;
51  }
52 
53  void Packet::Write (PacketType packetType)
54  {
55  Write (static_cast<Int16> (packetType));
56  }
57 
59  {
60  return static_cast<PacketType> (ReadInt16 ());
61  }
62 
64  {
65  visitor.Visit (*this);
66  }
67 
68  void Packet::Accept (IWriterConstVisitor& visitor) const
69  {
70  visitor.Visit (*this);
71  }
72 
74  {
75  visitor.Visit (*this);
76  }
77 
78  void Packet::Accept (IReaderConstVisitor& visitor) const
79  {
80  visitor.Visit (*this);
81  }
82 
83  void Packet::Write (const String& value)
84  {
85  WriteData (value);
86  }
87 
88  void Packet::Write (const String& name, const String& value)
89  {
90  YAPOG_THROW("Packet::Write (const String&, const String&)");
91  }
92 
93  void Packet::Write (const bool& value)
94  {
95  WriteData (value);
96  }
97 
98  void Packet::Write (const String& name, const bool& value)
99  {
100  YAPOG_THROW("Packet::Write (const String&, const bool&)");
101  }
102 
103  void Packet::Write (const char& value)
104  {
105  WriteData (value);
106  }
107 
108  void Packet::Write (const String& name, const char& value)
109  {
110  YAPOG_THROW("Packet::Write (const String&, const char&)");
111  }
112 
113  void Packet::Write (const uchar& value)
114  {
115  WriteData (value);
116  }
117 
118  void Packet::Write (const String& name, const uchar& value)
119  {
120  YAPOG_THROW("Packet::Write (const String&, const uchar&)");
121  }
122 
123  void Packet::Write (const Int16& value)
124  {
125  WriteData (value);
126  }
127 
128  void Packet::Write (const String& name, const Int16& value)
129  {
130  YAPOG_THROW("Packet::Write (const String&, const Int16&)");
131  }
132 
133  void Packet::Write (const UInt16& value)
134  {
135  WriteData (value);
136  }
137 
138  void Packet::Write (const String& name, const UInt16& value)
139  {
140  YAPOG_THROW("Packet::Write (const String&, const UInt16&)");
141  }
142 
143  void Packet::Write (const int& value)
144  {
145  WriteData (value);
146  }
147 
148  void Packet::Write (const String& name, const int& value)
149  {
150  YAPOG_THROW("Packet::Write (const String&, const int&)");
151  }
152 
153  void Packet::Write (const uint& value)
154  {
155  WriteData (value);
156  }
157 
158  void Packet::Write (const String& name, const uint& value)
159  {
160  YAPOG_THROW("Packet::Write (const String&, const uint&)");
161  }
162 
163  void Packet::Write (const Int64& value)
164  {
165  WriteData<Int32> (value);
166  }
167 
168  void Packet::Write (const String& name, const Int64& value)
169  {
170  YAPOG_THROW("Packet::Write (const String&, const Int64&)");
171  }
172 
173  void Packet::Write (const UInt64& value)
174  {
175  WriteData<UInt32> (value);
176  }
177 
178  void Packet::Write (const String& name, const UInt64& value)
179  {
180  YAPOG_THROW("Packet::Write (const String&, const UInt64&)");
181  }
182 
183  void Packet::Write (const float& value)
184  {
185  WriteData (value);
186  }
187 
188  void Packet::Write (const String& name, const float& value)
189  {
190  YAPOG_THROW("Packet::Write (const String&, const float&)");
191  }
192 
193  void Packet::Write (const double& value)
194  {
195  WriteData (value);
196  }
197 
198  void Packet::Write (const String& name, const double& value)
199  {
200  YAPOG_THROW("Packet::Write (const String&, const double&)");
201  }
202 
203  void Packet::Write (const Vector2& value)
204  {
205  Write (value.x);
206  Write (value.y);
207  }
208 
209  void Packet::Write (const String& name, const Vector2& value)
210  {
211  YAPOG_THROW("Packet::Write (const String&, const Vector2&)");
212  }
213 
214  void Packet::Write (const ID& value)
215  {
216  Write (value.GetValue ());
217  }
218 
219  void Packet::Write (const String& name, const ID& value)
220  {
221  YAPOG_THROW("Packet::Write (const String&, const ID&)");
222  }
223 
225  {
226  return ReadData<String> ();
227  }
228 
230  {
231  YAPOG_THROW("Invalid method call: `Packet::ReadString (const String&)'");
232  }
233 
235  {
236  return ReadData<bool> ();
237  }
238 
239  bool Packet::ReadBool (const String& name)
240  {
241  YAPOG_THROW("Invalid method call: `Packet::ReadBool (const String&)'");
242  }
243 
245  {
246  return ReadData<Int8> ();
247  }
248 
249  char Packet::ReadChar (const String& name)
250  {
251  YAPOG_THROW("Invalid method call: `Packet::ReadChar (const String&)'");
252  }
253 
255  {
256  return ReadData<uchar> ();
257  }
258 
260  {
261  YAPOG_THROW("Invalid method call: `Packet::ReadUChar (const String&)'");
262  }
263 
265  {
266  return ReadData<Int16> ();
267  }
268 
270  {
271  YAPOG_THROW("Invalid method call: `Packet::ReadInt16 (const String&)'");
272  }
273 
275  {
276  return ReadData<UInt16> ();
277  }
278 
280  {
281  YAPOG_THROW("Invalid method call: `Packet::ReadUInt16 (const String&)'");
282  }
283 
285  {
286  return ReadData<int> ();
287  }
288 
289  int Packet::ReadInt (const String& name)
290  {
291  YAPOG_THROW("Invalid method call: `Packet::ReadInt (const String&)'");
292  }
293 
295  {
296  return ReadData<uint> ();
297  }
298 
300  {
301  YAPOG_THROW("Invalid method call: `Packet::ReadUInt (const String&)'");
302  }
303 
305  {
306  return ReadData<Int32> ();
307  }
308 
310  {
311  YAPOG_THROW("Invalid method call: `Packet::ReadInt64 (const String&)'");
312  }
313 
315  {
316  return ReadData<UInt32> ();
317  }
318 
320  {
321  YAPOG_THROW("Invalid method call: `Packet::ReadUInt64 (const String&)'");
322  }
323 
325  {
326  return ReadData<float> ();
327  }
328 
329  float Packet::ReadFloat (const String& name)
330  {
331  YAPOG_THROW("Invalid method call: `Packet::ReadFloat (const String&)'");
332  }
333 
335  {
336  return ReadData<double> ();
337  }
338 
339  double Packet::ReadDouble (const String& name)
340  {
341  YAPOG_THROW("Invalid method call: `Packet::ReadDouble (const String&)'");
342  }
343 
345  {
346  float x = ReadFloat ();
347  float y = ReadFloat ();
348 
349  return Vector2 (x, y);
350  }
351 
353  {
354  YAPOG_THROW("Invalid method call: `Packet::ReadVector2 (const String&)'");
355  }
356 
358  {
359  return ID (ReadUInt64 ());
360  }
361 
362  ID Packet::ReadID (const String& name)
363  {
364  YAPOG_THROW("Invalid method call: `Packet::ReadID (const String&)'");
365  }
366 } // namespace yap