00001 /*
00002 #ifndef header_network_generic
00003 #define header_network_generic
00004
00005 #include <stdio.h>
00006 #include <list>
00007 #include <queue>
00008 #include <string>
00009
00010 #include "API/Network/network.h"
00011 #include "API/Network/netcomputer.h"
00012 #include "API/Network/netgroup.h"
00013 #include "API/Network/netsession.h"
00014 #include "API/Network/netmessage.h"
00015 #include "API/Core/System/thread.h"
00016 #include "API/Core/System/mutex.h"
00017 #include "API/Core/System/cl_assert.h"
00018 #include "API/Core/System/error.h"
00019 #include "API/Core/System/keep_alive.h"
00020
00021 #include "Core/IOData/Generic/inputsource_memory_generic.h"
00022 #include "Core/IOData/Generic/outputsource_memory_generic.h"
00023
00024 #include "network_delivery_impl.h"
00025
00026 class CL_NetSession_Generic;
00027 class CL_IncomingGame;
00028
00029 class CL_Network_Generic : public CL_Network, CL_KeepAlive
00030 {
00031 public:
00032 CL_Network_Generic(CL_ConnectionProvider *provider);
00033 ~CL_Network_Generic();
00034
00035 void find_sessions_broadcast(
00036 std::string game_id,
00037 int port);
00038 void find_session_at(
00039 std::string game_id,
00040 const char *host_address,
00041 int port);
00042 bool peek_game_found();
00043 CL_NetSession *receive_session_found(int timeout_millis);
00044 void clear_games_found();
00045 CL_NetSession *create_session(std::string session_id, int port);
00046
00047 CL_ConnectionProvider *provider;
00048 std::queue<CL_NetSession*> queue;
00049 std::list<CL_NetSession_Generic*> netsessions;
00050 std::list<CL_IncomingGame*> incoming_netsessions;
00051
00052 static CL_Network_Generic *self;
00053
00054 void keep_alive();
00055 private:
00056 CL_UDPConnection *udp_connection;
00057 };
00058
00059 class CL_IncomingGame
00060 {
00061 public:
00062 CL_Connection *connection;
00063 std::string game_id;
00064 };
00065
00066 #endif
00067 */
1.2.6 written by Dimitri van Heesch,
© 1997-2001