00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../api_network.h"
00035 #include "../../Core/IOData/iodevice.h"
00036
00037 class CL_SocketName;
00038 class CL_Event;
00039
00043 class CL_API_NETWORK CL_TCPConnection : public CL_IODevice
00044 {
00047
00048 public:
00049 CL_TCPConnection();
00050
00054 CL_TCPConnection(const CL_SocketName &remote);
00055
00060 CL_TCPConnection(const CL_SocketName &remote, const CL_SocketName &local);
00061
00066 CL_TCPConnection(int socket, bool close_socket);
00067
00068 ~CL_TCPConnection();
00069
00073
00074 public:
00075
00079 int get_handle() const;
00080
00084 CL_SocketName get_local_name() const;
00085
00089 CL_SocketName get_remote_name() const;
00090
00094 CL_Event get_read_event();
00095
00099 CL_Event get_write_event();
00100
00104
00105 public:
00106
00110 void connect(const CL_SocketName &remote);
00111
00116 void connect(const CL_SocketName &remote, const CL_SocketName &local);
00117
00122 void set_handle(int socket, bool close_socket);
00123
00125 void disconnect_graceful();
00126
00128 void disconnect_abortive();
00129
00131 void set_nodelay(bool enable = true);
00132
00136
00137 private:
00139 };
00140