Diff for /parser3/src/sql/pa_sql_driver.h between versions 1.26 and 1.30

version 1.26, 2002/02/08 08:30:17 version 1.30, 2002/12/09 11:11:33
Line 4 Line 4
         Copyright (c) 2001, 2002 ArtLebedev Group (http://www.artlebedev.com)          Copyright (c) 2001, 2002 ArtLebedev Group (http://www.artlebedev.com)
         Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)          Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
   
         $Id$  
   
   
         driver dynamic library must look like this:          driver dynamic library must look like this:
         @code          @code
Line 28 Line 26
 #ifndef PA_SQL_DRIVER_H  #ifndef PA_SQL_DRIVER_H
 #define PA_SQL_DRIVER_H  #define PA_SQL_DRIVER_H
   
   static const char* IDENT_SQL_DRIVER_H="$Date$";
   
 #include <sys/types.h>  #include <sys/types.h>
   
   #define SQL_DRIVER_API_VERSION 0x0004
   #define SQL_DRIVER_CREATE create /* used in driver implementation */
   #define SQL_DRIVER_CREATE_NAME "create" /* could not figure out how to # it :( */
   
   /// fields are freed elsewhere
   class SQL_Exception {
           friend class SQL_Driver_services_impl;
   
           bool fdefined;
           const char *ftype;
           const void *fproblem_source;
           const char *fcomment;
   public:
           SQL_Exception():
                   fdefined(false) {}
           SQL_Exception(
                   const char *atype,
                   const void *aproblem_source, 
                   const char *acomment):
                   fdefined(true),
                   ftype(atype),
                   fproblem_source(aproblem_source),
                   fcomment(acomment) {}
           SQL_Exception(const char *acomment):
                   fdefined(true),
                   ftype(0),
                   fproblem_source(0),
                   fcomment(acomment) {}
   /*
           SQL_Exception(const SQL_Exception& src) : 
                   fdefined(src.fdefined),
                   ftype(src.ftype),
                   fproblem_source(src.fproblem_source),
                   fcomment(src.fcomment) {}
   */
           const SQL_Exception& operator =(const SQL_Exception& src) {
                   fdefined=src.fdefined;
                   ftype=src.ftype;
                   fproblem_source=src.fproblem_source;
                   fcomment=src.fcomment;
                   return *this;
           }
   
           bool defined() { return fdefined; }
           const char *type() { return ftype; }
           const void *problem_source() { return fproblem_source; }
           const char *comment() { return fcomment; }
   };
   
 /// service functions for SQL driver to use  /// service functions for SQL driver to use
 class SQL_Driver_services {  class SQL_Driver_services {
 public:  public:
Line 38  public: Line 87  public:
         /// allocates some bytes clearing them with zeros          /// allocates some bytes clearing them with zeros
         virtual void *calloc(size_t size) =0;          virtual void *calloc(size_t size) =0;
         /// prepare throw exception          /// prepare throw exception
         virtual void _throw(const char *comment) =0;          virtual void _throw(const SQL_Exception& e) =0;
         /// throw C++ exception from prepared          /// throw C++ exception from prepared
         virtual void propagate_exception() =0;          virtual void propagate_exception() =0;
           /// helper func
           void _throw(const char *comment) { _throw(SQL_Exception(0, 0, comment)); }
 public:  public:
         /// regretrully public, because can't make stack frames: "nowhere to return to"          /// regretrully public, because can't make stack frames: "nowhere to return to"
         jmp_buf mark;          jmp_buf mark;
 };  };
   
 #define SQL_DRIVER_API_VERSION 0x0003  
 #define SQL_DRIVER_CREATE create /* used in driver implementation */  
 #define SQL_DRIVER_CREATE_NAME "create" /* could not figure out how to # it :( */  
   
 /// events, occuring when SQL_Driver::query()-ing  /// events, occuring when SQL_Driver::query()-ing
 class SQL_Driver_query_event_handlers {  class SQL_Driver_query_event_handlers {
 public:  public:

Removed from v.1.26  
changed lines
  Added in v.1.30


E-mail: