00001
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef XAPIAN_INCLUDED_TCPCLIENT_H
00022 #define XAPIAN_INCLUDED_TCPCLIENT_H
00023
00024 #include "remote-database.h"
00025
00026 #ifdef __WIN32__
00027 # define SOCKET_INITIALIZER_MIXIN private WinsockInitializer,
00028 #else
00029 # define SOCKET_INITIALIZER_MIXIN
00030 #endif
00031
00036 class TcpClient : SOCKET_INITIALIZER_MIXIN public RemoteDatabase {
00038 void operator=(const TcpClient &);
00039
00041 TcpClient(const TcpClient &);
00042
00053 static int open_socket(const std::string & hostname, int port,
00054 int msecs_timeout_connect);
00055
00062 static std::string get_tcpcontext(const std::string & hostname, int port);
00063
00064 public:
00076 TcpClient(const std::string & hostname, int port,
00077 int msecs_timeout, int msecs_timeout_connect, bool writable)
00078 : RemoteDatabase(open_socket(hostname, port, msecs_timeout_connect),
00079 msecs_timeout, get_tcpcontext(hostname, port),
00080 writable) { }
00081
00083 ~TcpClient();
00084 };
00085
00086 #endif // XAPIAN_INCLUDED_TCPCLIENT_H