Go to the documentation of this file.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
00140 void set_keep_alive(bool enable, int timeout = 0, int interval = 0);
00141
00145
00146 private:
00148 };
00149