// Copyright (c) 2002 David Muse
// See the COPYING file for more information.
#ifndef RUDIMENTS_CLIENT_H
#define RUDIMENTS_CLIENT_H
#include <rudiments/private/clientincludes.h>
// The client class provides a base class for classes that implement the client
// side of a client-server communication model.
#ifdef RUDIMENTS_NAMESPACE
namespace rudiments {
#endif
class clientprivate;
class client : public filedescriptor {
public:
client();
client(const client &c);
client &operator=(const client &c);
virtual ~client();
virtual void initialize(constnamevaluepairs *cd)=0;
virtual int connect()=0;
// This method return an int instead of a bool
// because we want child classes that have non
// atomic connection procedures (such as a
// modem) to be able to implement return codes
// other than success or failure (such as
// abort).
virtual const char *getVerboseConnectError();
virtual void setVerboseConnectError(
const char *error);
#include <rudiments/private/client.h>
};
#ifdef RUDIMENTS_NAMESPACE
}
#endif
#endif