Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __PLUGIN_INTERFACE_2_H
00010 #define __PLUGIN_INTERFACE_2_H
00011
00012 #include "NativeFeatureIncludes.h"
00013
00014 class RakPeerInterface;
00015 class PacketizedTCP;
00016 struct Packet;
00017 struct InternalPacket;
00018
00020
00023
00026 enum PluginReceiveResult
00027 {
00029 RR_STOP_PROCESSING_AND_DEALLOCATE=0,
00030
00032 RR_CONTINUE_PROCESSING,
00033
00035 RR_STOP_PROCESSING,
00036 };
00037
00038 #include "RakNetTypes.h"
00039 #include "Export.h"
00040 #include "PacketPriority.h"
00041
00044 enum PI2_LostConnectionReason
00045 {
00047 LCR_CLOSED_BY_USER,
00048
00050 LCR_DISCONNECTION_NOTIFICATION,
00051
00053 LCR_CONNECTION_LOST
00054 };
00055
00058 enum PI2_FailedConnectionAttemptReason
00059 {
00060 FCAR_CONNECTION_ATTEMPT_FAILED,
00061 FCAR_ALREADY_CONNECTED,
00062 FCAR_NO_FREE_INCOMING_CONNECTIONS,
00063 FCAR_RSA_PUBLIC_KEY_MISMATCH,
00064 FCAR_CONNECTION_BANNED,
00065 FCAR_INVALID_PASSWORD,
00066 FCAR_INCOMPATIBLE_PROTOCOL,
00067 FCAR_IP_RECENTLY_CONNECTED
00068 };
00069
00077 class RAK_DLL_EXPORT PluginInterface2
00078 {
00079 public:
00080 PluginInterface2();
00081 virtual ~PluginInterface2();
00082
00085 virtual void OnAttach(void) {}
00086
00089 virtual void OnDetach(void) {}
00090
00092 virtual void Update(void) {}
00093
00097 virtual PluginReceiveResult OnReceive(Packet *packet) {(void) packet; return RR_CONTINUE_PROCESSING;}
00098
00100 virtual void OnRakPeerStartup(void) {}
00101
00103 virtual void OnRakPeerShutdown(void) {}
00104
00109 virtual void OnClosedConnection(SystemAddress systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason ){(void) systemAddress; (void) rakNetGUID; (void) lostConnectionReason;}
00110
00115 virtual void OnNewConnection(SystemAddress systemAddress, RakNetGUID rakNetGUID, bool isIncoming) {(void) systemAddress; (void) rakNetGUID; (void) isIncoming;}
00116
00120 virtual void OnFailedConnectionAttempt(Packet *packet, PI2_FailedConnectionAttemptReason failedConnectionAttemptReason) {(void) packet; (void) failedConnectionAttemptReason;}
00121
00126 virtual void OnDirectSocketSend(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) {(void) data; (void) bitsUsed; (void) remoteSystemAddress;}
00127
00132 virtual void OnDirectSocketReceive(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) {(void) data; (void) bitsUsed; (void) remoteSystemAddress;}
00133
00137 virtual void OnReliabilityLayerPacketError(const char *errorMessage, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) {(void) errorMessage; (void) bitsUsed; (void) remoteSystemAddress;}
00138
00145 virtual void OnInternalPacket(InternalPacket *internalPacket, unsigned frameNumber, SystemAddress remoteSystemAddress, RakNetTime time, int isSend) {(void) internalPacket; (void) frameNumber; (void) remoteSystemAddress; (void) time; (void) isSend;}
00146
00151 virtual void OnAck(unsigned int messageNumber, SystemAddress remoteSystemAddress, RakNetTime time) {(void) messageNumber; (void) remoteSystemAddress; (void) time;}
00152
00157 virtual void OnPushBackPacket(const char *data, const BitSize_t bitsUsed, SystemAddress remoteSystemAddress) {(void) data; (void) bitsUsed; (void) remoteSystemAddress;}
00158
00159 RakPeerInterface *GetRakPeerInterface(void) const {return rakPeerInterface;}
00160
00162 void SetRakPeerInterface( RakPeerInterface *ptr );
00163
00164 #if _RAKNET_SUPPORT_PacketizedTCP==1
00165
00166 void SetPacketizedTCP( PacketizedTCP *ptr );
00167 #endif
00168 protected:
00169
00170 void SendUnified( const RakNet::BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast );
00171 bool SendListUnified( const char **data, const int *lengths, const int numParameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast );
00172
00173 Packet *AllocatePacketUnified(unsigned dataSize);
00174 void PushBackPacketUnified(Packet *packet, bool pushAtHead);
00175 void DeallocPacketUnified(Packet *packet);
00176
00177
00178 RakPeerInterface *rakPeerInterface;
00179 #if _RAKNET_SUPPORT_PacketizedTCP==1
00180 PacketizedTCP *packetizedTCP;
00181 #endif
00182 };
00183
00184 #endif
00185