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 #ifndef _terimber_socket_h_
00029 #define _terimber_socket_h_
00030
00031 #include "base/primitives.h"
00032 #include "aiocomport/aiocomport.h"
00033
00034 BEGIN_TERIMBER_NAMESPACE
00035 #pragma pack(4)
00036
00039 class terimber_socket
00040 {
00041 public:
00043 terimber_socket(int num = (int)INVALID_SOCKET
00044 );
00046 ~terimber_socket();
00047
00049 bool
00050 close();
00052 bool
00053 connect();
00055 int
00056 send( const char* data,
00057 size_t len,
00058 size_t& timeout
00059 );
00061 int
00062 receive( char* data,
00063 size_t len,
00064 size_t& timeout
00065 );
00067 int
00068 receive_whatever(char* data,
00069 size_t len,
00070 size_t& timeout,
00071 size_t& rlen
00072 );
00073
00075 inline
00076 const sockaddr_in&
00077 get_address() const
00078 {
00079 return _addr;
00080 }
00082 inline
00083 void
00084 set_address( const sockaddr_in& addr
00085 )
00086 {
00087 _addr = addr;
00088 }
00090 static
00091 void
00092 set_options( int number
00093 );
00095 static
00096 int
00097 resolve_address(const char* str,
00098 ub2_t port,
00099 sockaddr_in& addr
00100 );
00102 static
00103 void
00104 set_send_timeout(int number,
00105 size_t timeout
00106 );
00108 static
00109 void
00110 set_recv_timeout(int number,
00111 size_t timeout
00112 );
00114 int
00115 set_invalid();
00117 bool
00118 is_invalid() const;
00119 private:
00120 SOCKET _number;
00121 sockaddr_in _addr;
00122 };
00123
00124
00125 #pragma pack()
00126 END_TERIMBER_NAMESPACE
00127
00128 #endif // _terimber_socket_h_