//-< REPSOCK.H >-----------------------------------------------------*--------*
// FastDB Version 1.0 (c) 1999 GARRET * ? *
// (Main Memory Database Management System) * /\| *
// * / \ *
// Created: 6-May-2003 K.A. Knizhnik * / [] \ *
// Last update: 6-Apr-2003 K.A. Knizhnik * GARRET *
//-------------------------------------------------------------------*--------*
// Replication socket
//-------------------------------------------------------------------*--------*
#ifndef __REPSOCK_H__
#define __REPSOCK_H__
#include "sockio.h"
//
// Abstract socket interface
//
class FASTDB_DLL_ENTRY replication_socket_t : public socket_t {
public:
virtual int read(void* buf, size_t min_size, size_t max_size, time_t timeout);
virtual bool write(void const* buf, size_t size);
virtual bool is_ok();
virtual void get_error_text(char* buf, size_t buf_size);
virtual bool shutdown();
virtual bool close();
virtual void handleError(int socket, const char* operation, const char* error);
static replication_socket_t* connect(char const* addresses[],
int n_addresses,
int max_attempts = DEFAULT_CONNECT_MAX_ATTEMPTS,
time_t timeout = DEFAULT_RECONNECT_TIMEOUT);
//
// Not implemented for replication socket
//
virtual socket_t* accept();
virtual bool cancel_accept();
virtual char* get_peer_name();
virtual int get_handle();
enum {
MaxSockets = 8
};
~replication_socket_t();
protected:
replication_socket_t(char const* addresses[], int n_adresses, int max_attempts, time_t timeout);
socket_t** sockets;
int n_sockets;
bool succeed;
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1