GameServer
ClientManager.h
[詳解]
1 #ifndef __CLIENTMANAGER_H__
2 #define __CLIENTMANAGER_H__
3 
4 #include <boost/unordered_map.hpp>
5 #include "Client.h"
6 #include "WeakPtrDefine.h"
7 
11 class ClientManager : noncopyable
12 {
13 
14 private: // 別名定義.
15 
16  typedef shared_ptr<Client> ClientSharedPtr;
17  typedef unordered_map<u32, ClientSharedPtr> ClientMap;
18  typedef ClientMap::iterator MapIterator;
19 
20 public:
21 
22  // デストラクタ
24 
25  // 定期処理.
26  void Poll();
27 
28  // クライアント生成.
29  void CreateClient(const shared_ptr<tcp::socket> &pSocket);
30 
31  // 取得.
32  ClientPtr Get(u32 Uuid);
33 
34  // カスタマIDから取得.
35  ClientPtr GetFromCustomerId(u32 CustomerId);
36 
37  // パケットをバラ撒く。
38  void BroadcastPacket(PacketBase *pPacket);
39 
40 private:
41 
42  // クライアントリスト
43  ClientMap Map;
44 
45  // 次に割り振るUUID
46  u32 NextUuid;
47 
48  // ======== Singleton ============
49 public:
50 
51  static ClientManager &GetInstance() { return Instance; }
52 
53 private:
54 
55  ClientManager();
56  static ClientManager Instance;
57 
58 };
59 
60 #endif // #ifndef __CLIENTMANAGER_H__
~ClientManager()
Definition: ClientManager.h:23
クライアントクラス
void Poll()
Definition: ClientManager.cpp:13
unsigned int u32
Definition: TypeDefs.h:10
void BroadcastPacket(PacketBase *pPacket)
Definition: ClientManager.cpp:62
weak_ptr< Client > ClientPtr
Definition: WeakPtrDefine.h:22
ClientPtr GetFromCustomerId(u32 CustomerId)
Definition: ClientManager.cpp:52
Definition: ClientManager.h:11
Definition: PacketBase.h:9
static ClientManager & GetInstance()
Definition: ClientManager.h:51
void CreateClient(const shared_ptr< tcp::socket > &pSocket)
Definition: ClientManager.cpp:30
ClientPtr Get(u32 Uuid)
Definition: ClientManager.cpp:44