• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

PluginInterface2.h

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         // Send through either rakPeerInterface or packetizedTCP, whichever is available
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         // Filled automatically in when attached
00178         RakPeerInterface *rakPeerInterface;
00179 #if _RAKNET_SUPPORT_PacketizedTCP==1
00180         PacketizedTCP *packetizedTCP;
00181 #endif
00182 };
00183 
00184 #endif
00185 

Generated on Thu Sep 30 2010 01:27:26 for RakNet by  doxygen 1.7.1