]> git.lizzy.rs Git - dragonblocks3d.git/blob - later_use/network_mgr.hpp
New structure
[dragonblocks3d.git] / later_use / network_mgr.hpp
1 #pragma once
2
3 #include <map>
4 #include <set>
5 #include <string>
6 #include <queue>
7 #include "udp_socket.hpp"
8
9 namespace dragonblocks
10 {
11         class NetworkMgr
12         {
13                 public:
14                 class IPeer
15                 {
16                         public:
17                         UDPSocket::Address *address;
18                         NetworkMgr *network_mgr;
19                 };
20                 
21                 class INamespace
22                 {
23                         public:
24                         virtual void handle(Packet *);
25                 };
26                 
27                 UDPSocket *socket;
28                 std::queue<Packet *> out_queue;
29                 std::set<IPeer *> peers_set;
30                 std::map<Address *, IPeer *> peers;
31                 void sendPacket(Packet *);
32                 void disconnectPeer(IPeer *);
33                 std::map<std::string, INamespace *> namespaces;
34         };
35 }