00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef _ZOIDREPLICATORADVANCED_H_
00010 #define _ZOIDREPLICATORADVANCED_H_
00011
00015 #include "zoidcom.h"
00016
00017 class ZCom_Node;
00018
00037 class ZCOM_API ZCom_ReplicatorAdvanced : public ZCom_Replicator
00038 {
00039 protected:
00040 ZCom_Node* m_node;
00041 public:
00042 ZCom_ReplicatorAdvanced(ZCom_ReplicatorSetup *_setup);
00043
00048 ZCom_Node* getNode() const;
00049
00077 zU32* getLastUpdateTime(ZCom_ConnID _cid);
00078
00101 void sendData(eZCom_SendMode _mode, ZCom_BitStream *_stream, zU32 _reference_id = 0);
00102
00122 void sendDataDirect(eZCom_SendMode _mode, ZCom_ConnID _dest, ZCom_BitStream *_stream, zU32 _reference_id = 0);
00123
00148 virtual void onPreSendData(ZCom_ConnID _cid, eZCom_NodeRole _remoterole, zU32 *_lastupdate) = 0;
00149
00168 virtual void onDataReceived(ZCom_ConnID _cid, eZCom_NodeRole _remoterole, ZCom_BitStream &_stream, bool _store,
00169 zU32 _estimated_time_sent) = 0;
00170
00171 virtual void onDataAcked(ZCom_ConnID _cid, zU32 _reference_id, ZCom_BitStream *_data) = 0;
00172 virtual void onDataLost(ZCom_ConnID _cid, zU32 _reference_id, ZCom_BitStream *_data) = 0;
00173
00181 virtual void onPacketReceived(ZCom_ConnID _cid) = 0;
00182
00188 virtual void onConnectionAdded(ZCom_ConnID _cid, eZCom_NodeRole _remoterole) = 0;
00189
00195 virtual void onConnectionRemoved(ZCom_ConnID _cid, eZCom_NodeRole _remoterole) = 0;
00196
00202 virtual void onLocalRoleChanged(eZCom_NodeRole _oldrole, eZCom_NodeRole _newrole) = 0;
00203
00210 virtual void onRemoteRoleChanged(ZCom_ConnID _cid, eZCom_NodeRole _oldrole, eZCom_NodeRole _newrole) = 0;
00211
00219 void setNode(ZCom_Node *_node);
00220 };
00221
00222 #endif