YAPOG
0.0.1
Yet Another Pokemon Online Game
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
PacketHandler.cpp
Go to the documentation of this file.
1
#include "
YAPOG/System/Network/PacketHandler.hpp
"
2
#include "
YAPOG/System/Network/IPacket.hpp
"
3
#include "
YAPOG/System/Error/Exception.hpp
"
4
#include "
YAPOG/System/StringHelper.hpp
"
5
6
namespace
yap
7
{
8
PacketHandler::PacketHandler
()
9
: handlers_ ()
10
, relays_ ()
11
, parent_ (nullptr)
12
{
13
}
14
15
PacketHandler::~PacketHandler
()
16
{
17
}
18
19
void
PacketHandler::AddHandler
(
PacketType
packetType,
HandlerType
handler)
20
{
21
handlers_
.
Add
(packetType, handler);
22
}
23
24
bool
PacketHandler::HandlePacket
(
IPacket
& packet)
25
{
26
if
(
handlers_
.
Contains
(packet.
GetType
()))
27
{
28
handlers_
[packet.
GetType
()] (packet);
29
30
return
true
;
31
}
32
33
for
(
IPacketHandler
* relay :
relays_
)
34
if
(relay->HandlePacket (packet))
35
return
true
;
36
37
return
false
;
38
}
39
40
bool
PacketHandler::SendPacket
(
IPacket
& packet)
41
{
42
if
(
parent_
==
nullptr
)
43
return
false
;
44
45
return
parent_
->
SendPacket
(packet);
46
}
47
48
void
PacketHandler::AddRelay
(
IPacketHandler
* relay)
49
{
50
relays_
.
Add
(relay);
51
}
52
53
void
PacketHandler::RemoveRelay
(
IPacketHandler
* relay)
54
{
55
relays_
.
Remove
(relay);
56
}
57
58
void
PacketHandler::SetParent
(
IPacketHandler
* parent)
59
{
60
if
(parent !=
nullptr
&&
parent_
!=
nullptr
)
61
YAPOG_THROW
(
"Parent already exists."
);
62
63
parent_
= parent;
64
}
65
}
// namespace yap
YAPOG
src
YAPOG
System
Network
PacketHandler.cpp
Generated on Mon Sep 17 2012 22:24:26 for YAPOG by
1.8.1.1