Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

network_generic.h

Go to the documentation of this file.
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 */

Generated at Wed Apr 4 19:54:02 2001 for ClanLib by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001