YAPOG
0.0.1
Yet Another Pokemon Online Game
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
Packet.hpp
Go to the documentation of this file.
1
#ifndef YAPOG_PACKET_HPP
2
# define YAPOG_PACKET_HPP
3
4
# include <SFML/Network/Packet.hpp>
5
6
# include "
YAPOG/Macros.hpp
"
7
# include "
YAPOG/System/Network/IPacket.hpp
"
8
9
namespace
yap
10
{
11
class
ClientSocket;
12
13
class
YAPOG_LIB
Packet
:
public
IPacket
14
{
15
DISALLOW_COPY
(
Packet
);
16
17
public
:
18
19
Packet
();
20
virtual
~
Packet
();
21
22
void
CreateFromType (
PacketType
type);
23
bool
CreateFromSocket (
ClientSocket
& socket);
24
27
virtual
const
PacketType
& GetType ()
const
;
28
29
virtual
sf::Packet& GetInnerPacket ();
31
34
virtual
void
Accept (
IWriterVisitor
& visitor);
35
virtual
void
Accept (
IWriterConstVisitor
& visitor)
const
;
36
37
virtual
void
Write (
const
String
& value);
38
virtual
void
Write (
const
String
& name,
const
String
& value);
39
40
virtual
void
Write (
const
bool
& value);
41
virtual
void
Write (
const
String
& name,
const
bool
& value);
42
43
virtual
void
Write (
const
char
& value);
44
virtual
void
Write (
const
String
& name,
const
char
& value);
45
46
virtual
void
Write (
const
uchar
& value);
47
virtual
void
Write (
const
String
& name,
const
uchar
& value);
48
49
virtual
void
Write (
const
Int16
& value);
50
virtual
void
Write (
const
String
& name,
const
Int16
& value);
51
52
virtual
void
Write (
const
UInt16
& value);
53
virtual
void
Write (
const
String
& name,
const
UInt16
& value);
54
55
virtual
void
Write (
const
int
& value);
56
virtual
void
Write (
const
String
& name,
const
int
& value);
57
58
virtual
void
Write (
const
uint
& value);
59
virtual
void
Write (
const
String
& name,
const
uint
& value);
60
63
virtual
void
Write (
const
Int64
& value);
64
virtual
void
Write (
const
String
& name,
const
Int64
& value);
65
68
virtual
void
Write (
const
UInt64
& value);
69
virtual
void
Write (
const
String
& name,
const
UInt64
& value);
70
71
virtual
void
Write (
const
float
& value);
72
virtual
void
Write (
const
String
& name,
const
float
& value);
73
74
virtual
void
Write (
const
double
& value);
75
virtual
void
Write (
const
String
& name,
const
double
& value);
76
77
virtual
void
Write (
const
Vector2
& value);
78
virtual
void
Write (
const
String
& name,
const
Vector2
& value);
79
80
virtual
void
Write (
const
ID
& value);
81
virtual
void
Write (
const
String
& name,
const
ID
& value);
83
86
virtual
void
Accept (
IReaderVisitor
& visitor);
87
virtual
void
Accept (
IReaderConstVisitor
& visitor)
const
;
88
89
virtual
String
ReadString ();
90
virtual
String
ReadString (
const
String
& name);
91
92
virtual
bool
ReadBool ();
93
virtual
bool
ReadBool (
const
String
& name);
94
95
virtual
char
ReadChar ();
96
virtual
char
ReadChar (
const
String
& name);
97
98
virtual
uchar
ReadUChar ();
99
virtual
uchar
ReadUChar (
const
String
& name);
100
101
virtual
Int16
ReadInt16 ();
102
virtual
Int16
ReadInt16 (
const
String
& name);
103
104
virtual
UInt16
ReadUInt16 ();
105
virtual
UInt16
ReadUInt16 (
const
String
& name);
106
107
virtual
int
ReadInt ();
108
virtual
int
ReadInt (
const
String
& name);
109
110
virtual
uint
ReadUInt ();
111
virtual
uint
ReadUInt (
const
String
& name);
112
115
virtual
Int64
ReadInt64 ();
116
virtual
Int64
ReadInt64 (
const
String
& name);
117
120
virtual
UInt64
ReadUInt64 ();
121
virtual
UInt64
ReadUInt64 (
const
String
& name);
122
123
virtual
float
ReadFloat ();
124
virtual
float
ReadFloat (
const
String
& name);
125
126
virtual
double
ReadDouble ();
127
virtual
double
ReadDouble (
const
String
& name);
128
129
virtual
Vector2
ReadVector2 ();
130
virtual
Vector2
ReadVector2 (
const
String
& name);
131
132
virtual
ID
ReadID ();
133
virtual
ID
ReadID (
const
String
& name);
135
136
private
:
137
138
void
Write (
PacketType
packetType);
139
PacketType
ReadPacketType ();
140
141
template
<
typename
T>
142
void
WriteData (
const
T& data);
143
144
template
<
typename
T>
145
T ReadData ();
146
147
static
const
PacketType
DEFAULT_TYPE
;
148
149
PacketType
type_
;
150
sf::Packet
packet_
;
151
};
152
}
// namespace yap
153
154
# include "
YAPOG/System/Network/Packet.hxx
"
155
156
#endif // YAPOG_PACKET_HPP
YAPOG
include
YAPOG
System
Network
Packet.hpp
Generated on Mon Sep 17 2012 22:24:24 for YAPOG by
1.8.1.1