Main Page   Class Hierarchy   Compound List   File List   Compound Members  

repsock.h

00001 //-< REPSOCK.H >-----------------------------------------------------*--------*
00002 // FastDB                    Version 1.0         (c) 1999  GARRET    *     ?  *
00003 // (Main Memory Database Management System)                          *   /\|  *
00004 //                                                                   *  /  \  *
00005 //                          Created:      6-May-2003  K.A. Knizhnik  * / [] \ *
00006 //                          Last update:  6-Apr-2003  K.A. Knizhnik  * GARRET *
00007 //-------------------------------------------------------------------*--------*
00008 // Replication socket
00009 //-------------------------------------------------------------------*--------*
00010 
00011 #ifndef __REPSOCK_H__
00012 #define __REPSOCK_H__
00013 
00014 #include "sockio.h"
00015 
00016 BEGIN_FASTDB_NAMESPACE
00017 
00018 
00019 //
00020 // Abstract socket interface
00021 //
00022 class FASTDB_DLL_ENTRY replication_socket_t : public socket_t {
00023   public:
00024     virtual int       read(void* buf, size_t min_size, size_t max_size, time_t timeout);
00025     virtual bool      write(void const* buf, size_t size);
00026 
00027     virtual bool      is_ok();
00028     virtual void      get_error_text(char* buf, size_t buf_size);
00029 
00030     virtual bool      shutdown();
00031 
00032     virtual bool      close();
00033 
00034     virtual void      handleError(int socket, const char* operation, const char* error);
00035 
00036     static replication_socket_t*  connect(char const* addresses[],
00037                                           int n_addresses, 
00038                                           int max_attempts = DEFAULT_CONNECT_MAX_ATTEMPTS,
00039                                           time_t timeout = DEFAULT_RECONNECT_TIMEOUT);
00040 
00041     // 
00042     // Not implemented for replication socket
00043     //
00044     virtual socket_t* accept();
00045     virtual bool      cancel_accept();
00046     virtual char*     get_peer_name();
00047     virtual int       get_handle();
00048 
00049     enum { 
00050         MaxSockets = 8
00051     };
00052 
00053 
00054     ~replication_socket_t();
00055 
00056   protected:
00057     replication_socket_t(char const* addresses[], int n_adresses, int max_attempts, time_t timeout);
00058 
00059     socket_t**   sockets;
00060     int          n_sockets;
00061     bool         succeed;
00062 };
00063 
00064 END_FASTDB_NAMESPACE
00065 
00066 #endif
00067 
00068 
00069 

Generated on Mon Oct 23 13:23:58 2006 for FastDB by doxygen1.2.18