00001
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef XAPIAN_INCLUDED_REMOTETCPCLIENT_H
00022 #define XAPIAN_INCLUDED_REMOTETCPCLIENT_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 RemoteTcpClient : SOCKET_INITIALIZER_MIXIN public RemoteDatabase {
00038 void operator=(const RemoteTcpClient &);
00039
00041 RemoteTcpClient(const RemoteTcpClient &);
00042
00053 static int open_socket(const std::string & hostname, int port,
00054 double timeout_connect);
00055
00062 static std::string get_tcpcontext(const std::string & hostname, int port);
00063
00064 public:
00075 RemoteTcpClient(const std::string & hostname, int port,
00076 double timeout_, double timeout_connect, bool writable)
00077 : RemoteDatabase(open_socket(hostname, port, timeout_connect),
00078 timeout_, get_tcpcontext(hostname, port),
00079 writable) { }
00080
00082 ~RemoteTcpClient();
00083 };
00084
00085 #endif // XAPIAN_INCLUDED_REMOTETCPCLIENT_H