Shadowrun: Awakened 29 September 2011 - Build 871
UDPProxyServer.h
Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 #include "NativeFeatureIncludes.h"
00015 #if _RAKNET_SUPPORT_UDPProxyServer==1 && _RAKNET_SUPPORT_UDPForwarder==1
00016 
00017 #ifndef __UDP_PROXY_SERVER_H
00018 #define __UDP_PROXY_SERVER_H
00019 
00020 #include "Export.h"
00021 #include "DS_Multilist.h"
00022 #include "RakNetTypes.h"
00023 #include "PluginInterface2.h"
00024 #include "UDPForwarder.h"
00025 #include "RakString.h"
00026 
00027 namespace RakNet
00028 {
00029 class UDPProxyServer;
00030 
00033 struct UDPProxyServerResultHandler
00034 {
00035     UDPProxyServerResultHandler() {}
00036     virtual ~UDPProxyServerResultHandler() {}
00037 
00041     virtual void OnLoginSuccess(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin)=0;
00042 
00047     virtual void OnAlreadyLoggedIn(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin)=0;
00048 
00052     virtual void OnNoPasswordSet(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin)=0;
00053 
00057     virtual void OnWrongPassword(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin)=0;
00058 };
00059 
00065 class RAK_DLL_EXPORT UDPProxyServer : public PluginInterface2
00066 {
00067 public:
00068     // GetInstance() and DestroyInstance(instance*)
00069     STATIC_FACTORY_DECLARATIONS(UDPProxyServer)
00070 
00071     UDPProxyServer();
00072     ~UDPProxyServer();
00073 
00076     void SetSocketFamily(unsigned short _socketFamily);
00077 
00081     void SetResultHandler(UDPProxyServerResultHandler *rh);
00082 
00087     bool LoginToCoordinator(RakNet::RakString password, SystemAddress coordinatorAddress);
00088 
00092     UDPForwarder udpForwarder;
00093 
00094     virtual void OnAttach(void);
00095     virtual void OnDetach(void);
00096 
00098     virtual void Update(void);
00099     virtual PluginReceiveResult OnReceive(Packet *packet);
00100     virtual void OnClosedConnection(const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason );
00101     virtual void OnRakPeerStartup(void);
00102     virtual void OnRakPeerShutdown(void);
00103 
00104 protected:
00105     void OnForwardingRequestFromCoordinatorToServer(Packet *packet);
00106 
00107     DataStructures::Multilist<ML_ORDERED_LIST, SystemAddress> loggingInCoordinators;
00108     DataStructures::Multilist<ML_ORDERED_LIST, SystemAddress> loggedInCoordinators;
00109 
00110     UDPProxyServerResultHandler *resultHandler;
00111     unsigned short socketFamily;
00112 
00113 };
00114 
00115 } // End namespace
00116 
00117 #endif
00118 
00119 #endif // _RAKNET_SUPPORT_*

Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.

GNU Lesser General Public License 3 Sourceforge.net