--- a/src/NetworkObject.hh Wed Dec 03 19:16:32 2008 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-#ifndef NETWORK_OBJECT_HH
-#define NETWORK_OBJECT_HH
-
-#include "NetworkSession.hh"
-#include "NetworkNode.hh"
-#include "Logger.hh"
-
-#include <map>
-
-typedef uint32_t NetworkObjectID;
-typedef uint16_t NetworkMessageID;
-
-// forward-declare
-class NetworkObject;
-class NetworkObject_Client;
-class NetworkObject_Server;
-
-class NetworkObjectController {
- friend class NetworkObject;
- friend class NetworkObject_Server;
- friend class NetworkObject_Client;
-
- private:
- NetworkSession &session;
- NetworkChannelID channel_id;
-
- std::map<NetworkObjectID, NetworkObject*> objects;
-
- CL_Slot slot_message;
-
- protected:
- NetworkObjectController (NetworkSession &session, NetworkChannelID channel_id);
-
- private:
- void on_message (NetworkPacket &pkt, NetworkNode *node);
-
- protected:
- virtual void handle_create (NetworkObjectID obj_id, NetworkMessageID msg_id, NetworkPacket &pkt, NetworkNode *node) = 0;
-};
-
-class NetworkObject_ServerController : public NetworkObjectController {
- friend class NetworkObject_Server;
-
- private:
- NetworkObjectID id_pool;
-
- public:
- NetworkObject_ServerController (NetworkSession &session, NetworkChannelID channel_id);
-
- protected:
- NetworkObjectID getObjectID (void);
-
- virtual void handle_create (NetworkObjectID obj_id, NetworkMessageID msg_id, NetworkPacket &pkt, NetworkNode *node);
-};
-
-class NetworkObject_ClientController : public NetworkObjectController {
- friend class NetworkObject_Client;
-
- private:
- NetworkNode *server;
-
- CL_Signal_v3<NetworkObject_Client*, NetworkMessageID, NetworkPacket&> _sig_create;
-
- public:
- NetworkObject_ClientController (NetworkSession &session, NetworkChannelID channel_id, NetworkNode *server);
-
- protected:
- virtual void handle_create (NetworkObjectID obj_id, NetworkMessageID msg_id, NetworkPacket &pkt, NetworkNode *node);
-
- public:
- CL_Signal_v3<NetworkObject_Client*, NetworkMessageID, NetworkPacket&>& sig_create (void) { return _sig_create; }
-};
-
-class NetworkObject {
- friend class NetworkObjectController;
- friend std::ostream& operator<< (std::ostream &s, const NetworkObject &obj);
-
- protected:
- NetworkObjectID obj_id;
-
- protected:
- NetworkObject (NetworkObjectController &controller, NetworkObjectID obj_id);
-
- virtual void handle_packet (NetworkNode *node, NetworkMessageID msg_id, NetworkPacket &pkt) = 0;
-
- void buildPacket (NetworkPacket &pkt, NetworkMessageID msg_id, const NetworkPacket &payload);
-};
-
-std::ostream& operator<< (std::ostream &s, const NetworkObject &obj);
-
-class NetworkObject_Server : public NetworkObject {
- friend class NetworkObject_ServerController;
-
- private:
- NetworkObject_ServerController &controller;
-
- std::map<NetworkMessageID, CL_Signal_v2<NetworkNode*, NetworkPacket&> > _map_sig_message;
-
- public:
- NetworkObject_Server (NetworkObject_ServerController &controller);
-
- protected:
- virtual void handle_packet (NetworkNode *node, NetworkMessageID msg_id, NetworkPacket &pkt);
-
- public:
- void send_to (NetworkNode *dst, NetworkMessageID msg_id, const NetworkPacket &pkt, bool reliable = true);
- void send_all (NetworkMessageID msg_id, const NetworkPacket &pkt, bool reliable = true);
- void send_all_except (NetworkMessageID msg_id, const NetworkPacket &pkt, NetworkNode *black_sheep, bool reliable = true);
-
- CL_Signal_v2<NetworkNode*, NetworkPacket&>& sig_message (NetworkMessageID msg_id) { return _map_sig_message[msg_id]; }
-};
-
-class NetworkObject_Client : public NetworkObject {
- friend class NetworkObject_ClientController;
-
- private:
- NetworkObject_ClientController &controller;
-
- std::map<NetworkMessageID, CL_Signal_v1<NetworkPacket&> > _map_sig_message;
-
- protected:
- NetworkObject_Client (NetworkObject_ClientController &controller, NetworkObjectID id);
-
- virtual void handle_packet (NetworkNode *node, NetworkMessageID msg_id, NetworkPacket &pkt);
-
- public:
- void send (NetworkMessageID msg_id, const NetworkPacket &pkt, bool reliable = true);
-
- CL_Signal_v1<NetworkPacket&>& sig_message (NetworkMessageID msg_id) { return _map_sig_message[msg_id]; }
-};
-
-#endif /* NETWORK_OBJECT_HH */