YAPOG
0.0.1
Yet Another Pokemon Online Game
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
PacketHandler.hpp
Go to the documentation of this file.
1
#ifndef YAPOG_PACKETHANDLER_HPP
2
# define YAPOG_PACKETHANDLER_HPP
3
4
# include <functional>
5
6
# include "
YAPOG/Macros.hpp
"
7
# include "
YAPOG/System/Network/IPacketHandler.hpp
"
8
# include "
YAPOG/Collection/Map.hpp
"
9
# include "
YAPOG/Collection/List.hpp
"
10
# include "
YAPOG/System/Network/PacketType.hpp
"
11
12
# define ADD_HANDLER(TYPE, HANDLER) \
13
packetHandler_.AddHandler ( \
14
yap::PacketType::TYPE, \
15
std::bind (&HANDLER, this, std::placeholders::_1))
16
17
namespace
yap
18
{
19
struct
IPacket;
20
struct
ISocket;
21
22
class
YAPOG_LIB
PacketHandler
:
public
IPacketHandler
23
{
24
DISALLOW_COPY
(
PacketHandler
);
25
26
public
:
27
28
typedef
std::function<void (IPacket&)>
HandlerType
;
29
30
PacketHandler
();
31
virtual
~
PacketHandler
();
32
33
void
AddHandler (
PacketType
packetType,
HandlerType
action);
34
37
virtual
bool
HandlePacket (
IPacket
& packet);
38
virtual
bool
SendPacket (
IPacket
& packet);
39
40
virtual
void
AddRelay (
IPacketHandler
* relay);
41
virtual
void
RemoveRelay (
IPacketHandler
* relay);
42
virtual
void
SetParent (
IPacketHandler
* parent);
44
45
private
:
46
47
collection::Map<PacketType, HandlerType>
handlers_
;
48
49
collection::List<IPacketHandler*>
relays_
;
50
IPacketHandler
*
parent_
;
51
};
52
}
// namespace yap
53
54
#endif // YAPOG_PACKETHANDLER_HPP
YAPOG
include
YAPOG
System
Network
PacketHandler.hpp
Generated on Mon Sep 17 2012 22:24:24 for YAPOG by
1.8.1.1