YAPOG
0.0.1
Yet Another Pokemon Online Game
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
Packet.cpp
Go to the documentation of this file.
1
#include "
YAPOG/System/Network/Packet.hpp
"
2
#include "
YAPOG/System/Error/Exception.hpp
"
3
#include "
YAPOG/System/StringHelper.hpp
"
4
#include "
YAPOG/System/IO/IReaderVisitor.hpp
"
5
#include "
YAPOG/System/IO/IReaderConstVisitor.hpp
"
6
#include "
YAPOG/System/IO/IWriterVisitor.hpp
"
7
#include "
YAPOG/System/IO/IWriterConstVisitor.hpp
"
8
#include "
YAPOG/System/IO/IReaderVisitor.hpp
"
9
#include "
YAPOG/System/IO/IReaderConstVisitor.hpp
"
10
#include "
YAPOG/System/Network/ClientSocket.hpp
"
11
12
namespace
yap
13
{
14
const
PacketType
Packet::DEFAULT_TYPE
= PacketType::None;
15
16
Packet::Packet
()
17
: type_ (DEFAULT_TYPE)
18
, packet_ ()
19
{
20
}
21
22
Packet::~Packet
()
23
{
24
}
25
26
void
Packet::CreateFromType
(
PacketType
type)
27
{
28
type_
= type;
29
30
Write
(
type_
);
31
}
32
33
bool
Packet::CreateFromSocket
(
ClientSocket
& socket)
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
58
PacketType
Packet::ReadPacketType
()
59
{
60
return
static_cast<
PacketType
>
(
ReadInt16
());
61
}
62
63
void
Packet::Accept
(
IWriterVisitor
& visitor)
64
{
65
visitor.
Visit
(*
this
);
66
}
67
68
void
Packet::Accept
(
IWriterConstVisitor
& visitor)
const
69
{
70
visitor.
Visit
(*
this
);
71
}
72
73
void
Packet::Accept
(
IReaderVisitor
& visitor)
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
224
String
Packet::ReadString
()
225
{
226
return
ReadData<String> ();
227
}
228
229
String
Packet::ReadString
(
const
String
& name)
230
{
231
YAPOG_THROW
(
"Invalid method call: `Packet::ReadString (const String&)'"
);
232
}
233
234
bool
Packet::ReadBool
()
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
244
char
Packet::ReadChar
()
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
254
uchar
Packet::ReadUChar
()
255
{
256
return
ReadData<uchar> ();
257
}
258
259
uchar
Packet::ReadUChar
(
const
String
& name)
260
{
261
YAPOG_THROW
(
"Invalid method call: `Packet::ReadUChar (const String&)'"
);
262
}
263
264
Int16
Packet::ReadInt16
()
265
{
266
return
ReadData<Int16> ();
267
}
268
269
Int16
Packet::ReadInt16
(
const
String
& name)
270
{
271
YAPOG_THROW
(
"Invalid method call: `Packet::ReadInt16 (const String&)'"
);
272
}
273
274
UInt16
Packet::ReadUInt16
()
275
{
276
return
ReadData<UInt16> ();
277
}
278
279
UInt16
Packet::ReadUInt16
(
const
String
& name)
280
{
281
YAPOG_THROW
(
"Invalid method call: `Packet::ReadUInt16 (const String&)'"
);
282
}
283
284
int
Packet::ReadInt
()
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
294
uint
Packet::ReadUInt
()
295
{
296
return
ReadData<uint> ();
297
}
298
299
uint
Packet::ReadUInt
(
const
String
& name)
300
{
301
YAPOG_THROW
(
"Invalid method call: `Packet::ReadUInt (const String&)'"
);
302
}
303
304
Int64
Packet::ReadInt64
()
305
{
306
return
ReadData<Int32> ();
307
}
308
309
Int64
Packet::ReadInt64
(
const
String
& name)
310
{
311
YAPOG_THROW
(
"Invalid method call: `Packet::ReadInt64 (const String&)'"
);
312
}
313
314
UInt64
Packet::ReadUInt64
()
315
{
316
return
ReadData<UInt32> ();
317
}
318
319
UInt64
Packet::ReadUInt64
(
const
String
& name)
320
{
321
YAPOG_THROW
(
"Invalid method call: `Packet::ReadUInt64 (const String&)'"
);
322
}
323
324
float
Packet::ReadFloat
()
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
334
double
Packet::ReadDouble
()
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
344
Vector2
Packet::ReadVector2
()
345
{
346
float
x =
ReadFloat
();
347
float
y =
ReadFloat
();
348
349
return
Vector2
(x, y);
350
}
351
352
Vector2
Packet::ReadVector2
(
const
String
& name)
353
{
354
YAPOG_THROW
(
"Invalid method call: `Packet::ReadVector2 (const String&)'"
);
355
}
356
357
ID
Packet::ReadID
()
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
YAPOG
src
YAPOG
System
Network
Packet.cpp
Generated on Mon Sep 17 2012 22:24:26 for YAPOG by
1.8.1.1