00001 00002 00003 00004 00005 00006 00007 00008 00009 #ifndef __RAK_NETWORK_FACTORY_H 00010 #define __RAK_NETWORK_FACTORY_H 00011 00012 #include "Export.h" 00013 00014 class RakPeerInterface; 00015 class ConsoleServer; 00016 class ReplicaManager; 00017 class LogCommandParser; 00018 class PacketLogger; 00019 class RakNetCommandParser; 00020 class RakNetTransport; 00021 class TelnetTransport; 00022 class PacketConsoleLogger; 00023 class PacketFileLogger; 00024 class Router; 00025 class ConnectionGraph; 00026 00027 // TODO RakNet 4 - move these to the classes themselves 00028 class RAK_DLL_EXPORT RakNetworkFactory 00029 { 00030 public: 00031 // For DLL's, these are user classes that you might want to new and delete. 00032 // You can't instantiate exported classes directly in your program. The instantiation 00033 // has to take place inside the DLL. So these functions will do the news and deletes for you. 00034 // if you're using the source or static library you don't need these functions, but can use them if you want. 00035 static RakPeerInterface* GetRakPeerInterface( void ); 00036 static void DestroyRakPeerInterface( RakPeerInterface* i ); 00037 00038 #if _RAKNET_SUPPORT_ConsoleServer==1 00039 static ConsoleServer* GetConsoleServer( void ); 00040 static void DestroyConsoleServer( ConsoleServer* i); 00041 #endif 00042 00043 #if _RAKNET_SUPPORT_ReplicaManager==1 00044 static ReplicaManager* GetReplicaManager( void ); 00045 static void DestroyReplicaManager( ReplicaManager* i); 00046 #endif 00047 00048 #if _RAKNET_SUPPORT_LogCommandParser==1 00049 static LogCommandParser* GetLogCommandParser( void ); 00050 static void DestroyLogCommandParser( LogCommandParser* i); 00051 #if _RAKNET_SUPPORT_PacketLogger==1 00052 static PacketConsoleLogger* GetPacketConsoleLogger( void ); 00053 static void DestroyPacketConsoleLogger( PacketConsoleLogger* i ); 00054 #endif 00055 #endif 00056 00057 #if _RAKNET_SUPPORT_PacketLogger==1 00058 static PacketLogger* GetPacketLogger( void ); 00059 static void DestroyPacketLogger( PacketLogger* i); 00060 static PacketFileLogger* GetPacketFileLogger( void ); 00061 static void DestroyPacketFileLogger( PacketFileLogger* i ); 00062 #endif 00063 00064 #if _RAKNET_SUPPORT_RakNetCommandParser==1 00065 static RakNetCommandParser* GetRakNetCommandParser( void ); 00066 static void DestroyRakNetCommandParser( RakNetCommandParser* i ); 00067 #endif 00068 00069 #if _RAKNET_SUPPORT_RakNetTransport==1 00070 static RakNetTransport* GetRakNetTransport( void ); 00071 static void DestroyRakNetTransport( RakNetTransport* i ); 00072 #endif 00073 00074 #if _RAKNET_SUPPORT_TelnetTransport==1 00075 static TelnetTransport* GetTelnetTransport( void ); 00076 static void DestroyTelnetTransport( TelnetTransport* i ); 00077 #endif 00078 00079 #if _RAKNET_SUPPORT_Router==1 00080 static Router* GetRouter( void ); 00081 static void DestroyRouter( Router* i ); 00082 #endif 00083 00084 #if _RAKNET_SUPPORT_ConnectionGraph==1 00085 static ConnectionGraph* GetConnectionGraph( void ); 00086 static void DestroyConnectionGraph( ConnectionGraph* i ); 00087 #endif 00088 }; 00089 00090 #endif