]> git.lizzy.rs Git - dragonblocks3d.git/blobdiff - later_use/network_mgr.hpp
New structure
[dragonblocks3d.git] / later_use / network_mgr.hpp
diff --git a/later_use/network_mgr.hpp b/later_use/network_mgr.hpp
new file mode 100644 (file)
index 0000000..600b76b
--- /dev/null
@@ -0,0 +1,35 @@
+#pragma once
+
+#include <map>
+#include <set>
+#include <string>
+#include <queue>
+#include "udp_socket.hpp"
+
+namespace dragonblocks
+{
+       class NetworkMgr
+       {
+               public:
+               class IPeer
+               {
+                       public:
+                       UDPSocket::Address *address;
+                       NetworkMgr *network_mgr;
+               };
+               
+               class INamespace
+               {
+                       public:
+                       virtual void handle(Packet *);
+               };
+               
+               UDPSocket *socket;
+               std::queue<Packet *> out_queue;
+               std::set<IPeer *> peers_set;
+               std::map<Address *, IPeer *> peers;
+               void sendPacket(Packet *);
+               void disconnectPeer(IPeer *);
+               std::map<std::string, INamespace *> namespaces;
+       };
+}