Main Page | Class Hierarchy | Class List | File List | Class 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 //
00017 // Abstract socket interface
00018 //
00019 class FASTDB_DLL_ENTRY replication_socket_t : public socket_t {
00020   public:
00021     virtual int       read(void* buf, size_t min_size, size_t max_size, time_t timeout);
00022     virtual bool      write(void const* buf, size_t size);
00023 
00024     virtual bool      is_ok();
00025     virtual void      get_error_text(char* buf, size_t buf_size);
00026 
00027     virtual bool      shutdown();
00028 
00029     virtual bool      close();
00030 
00031     virtual void      handleError(int socket, const char* operation, const char* error);
00032 
00033     static replication_socket_t*  connect(char const* addresses[],
00034                                           int n_addresses, 
00035                                           int max_attempts = DEFAULT_CONNECT_MAX_ATTEMPTS,
00036                                           time_t timeout = DEFAULT_RECONNECT_TIMEOUT);
00037 
00038     // 
00039     // Not implemented for replication socket
00040     //
00041     virtual socket_t* accept();
00042     virtual bool      cancel_accept();
00043     virtual char*     get_peer_name();
00044     virtual int       get_handle();
00045 
00046     enum { 
00047         MaxSockets = 8
00048     };
00049 
00050 
00051     ~replication_socket_t();
00052 
00053   protected:
00054     replication_socket_t(char const* addresses[], int n_adresses, int max_attempts, time_t timeout);
00055 
00056     socket_t**   sockets;
00057     int          n_sockets;
00058     bool         succeed;
00059 };
00060 
00061 #endif
00062 
00063 
00064 

Generated on Thu Feb 12 13:04:48 2004 for FastDB by doxygen 1.3.5