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

socket_generic.h

Go to the documentation of this file.
00001 
00002 #ifndef socket_generic
00003 #define socket_generic
00004 
00005 #include "API/Core/System/keep_alive.h"
00006 #include "API/Network/socket.h"
00007 #include "event_trigger_socket.h"
00008 
00009 #ifndef WIN32
00010         #include <sys/socket.h>
00011         #include <netinet/in.h>
00012         #include <arpa/inet.h>
00013         #include <netdb.h>
00014 #else
00015         #include <windows.h>
00016         typedef int socklen_t;
00017 #endif
00018 
00019 class CL_EventTrigger_Socket;
00020 
00021 class CL_Socket_Generic : public CL_KeepAlive
00022 {
00023 // Static operations:
00024 public:
00025         static sockaddr_in create_sockaddr_in(const CL_IPAddress &address);
00026 
00027         static CL_IPAddress create_ip_address(const sockaddr_in &addr_in);
00028 
00029 // Construction:
00030 public:
00031         CL_Socket_Generic();
00032 
00033         virtual ~CL_Socket_Generic();
00034 
00035 // Attributes:
00036 public:
00037         int sock;
00038 
00039         CL_EventTrigger_Socket *read, *write, *exception;
00040 
00041         CL_Signal_v0 sig_read_triggered;
00042 
00043         CL_Signal_v0 sig_write_triggered;
00044 
00045         CL_Signal_v0 sig_exception_triggered;
00046 
00047 // Operations:
00048 public:
00049         void add_ref();
00050 
00051         void release_ref();
00052 
00053 // Overridables:
00054 public:
00055         virtual CL_EventTrigger_Socket *create_read_trigger();
00056 
00057         virtual CL_EventTrigger_Socket *create_write_trigger();
00058 
00059         virtual CL_EventTrigger_Socket *create_exception_trigger();
00060 
00061         virtual void keep_alive();
00062 
00063 // Implementation:
00064 private:
00065         int ref_count;
00066 };
00067 
00068 #endif

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