home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cslio205.zip / INCLUDE / CSVBAXE.H < prev    next >
C/C++ Source or Header  |  1997-01-21  |  5KB  |  169 lines

  1. /***********************************************************************
  2.  
  3.                       CSDB Library, Free Evaluation Version 2.0.5 
  4.                                        Release: January 22th 1997 
  5.  
  6.        Header file of the VBAXE class.
  7.        Just like the VBASE class but for very large
  8.        databases.
  9.  
  10.                                            Copyright(c) 1994-1997 
  11.                                                           ComBits 
  12.                                                   The Netherlands 
  13. ***********************************************************************/
  14.  
  15. #ifndef __CSVBAXE_H
  16. #define __CSVBAXE_H
  17.  
  18. #include "cstypes.h"
  19. #include "cstbase.h"
  20. #include "csvram.h"
  21.  
  22. ////////////////////////////////////////////////////////////////////////
  23.  
  24. class VBASEi:public TBASE
  25. {
  26.    virtual int class_ID(void)  { return CS_CLID_VBASEi; }
  27. };
  28.  
  29. ////////////////////////////////////////////////////////////////////////
  30.  
  31. class VBASEd:public VRAM
  32. {
  33.    virtual int class_ID(void)  { return CS_CLID_VBASEd; }
  34. };
  35.  
  36.  
  37. ////////////////////////////////////////////////////////////////////////
  38.  
  39.  
  40.  
  41. class VBAXE
  42. {
  43.  
  44.     typedef struct
  45.     {
  46.       VPOI p;
  47.       U16 len;
  48.     }vbi;
  49.  
  50.     VBASEi  in;
  51.     VBASEd  da;
  52.  
  53.  
  54. public:
  55.  
  56. ///////////////////////// Error & Messages ///////////////////////////
  57.  
  58.    void error_nr(U16 nr)          { in.error_nr(nr);}
  59.    U16  error_nr(void  )          { return in.error_nr(); }
  60.  
  61.    U16  debug_error(U16 errnr)    { return in.debug_error(errnr); }
  62.  
  63.    U16  debug_error(U16 errnr,csCHAR *name)
  64.                                   { return in.debug_error(errnr,name); }
  65.  
  66.    U16  visible_error(U16 errnr)  { return in.visible_error(errnr); }
  67.  
  68.    U16  visible_error(U16 errnr,csCHAR *name)
  69.                                   { return in.visible_error(errnr,name); }
  70.  
  71.  
  72.  
  73. ////////////////////////////////////////////////////////////////////////
  74. ////////////////////// PUBLIC FUNCTIONS ////////////////////////////////
  75. ////////////////////////////////////////////////////////////////////////
  76.  public:
  77.  
  78.  
  79. //////////////////////// Definition//////////////////////////////////////////
  80.    int  define(csCHAR *name,U16 struclen);
  81.    int  relocate_when_shrunk(void)    { return da.relocate_when_shrunk();}
  82.    void relocate_when_shrunk(int ToF) { da.relocate_when_shrunk(ToF);    }
  83.  
  84.  
  85. ///////////////////////// Read-Only Mode ////////////////////////////////
  86.  
  87.    int  read_only(void)     { return read_only(TRUE); }
  88.    int  read_only(int ToF);
  89.  
  90.    int  is_read_only(void)  { return in.is_read_only(); }
  91.  
  92.  
  93. ///////////////////////// Lock files ////////////////////////////////////
  94.  
  95.    void use_lock_file(int ToF)  { in.use_lock_file(ToF); da.use_lock_file(ToF); }
  96.    int  use_lock_file(void   )  { return in.use_lock_file(); }
  97.  
  98.    int  lock_file_exist(csCHAR *DBNAME);
  99.  
  100.    int  remove_lock_file(csCHAR *DBName);
  101.  
  102. //////////////////////// Open & Close////////////////////////////////////////
  103.    int  open(csCHAR *name,S16 kb_buf=100);
  104.    int  close(void);
  105.    int  save(void);
  106.  
  107.  
  108.  
  109.    int  IsOpen(void)        { return in.IsOpen(); }
  110.    int  already_open(void)  { return in.already_open(); }
  111.  
  112.  
  113. //////////////////////// Locate, Read & Writes records//////////////////////
  114.  
  115.    csCHAR *locate_rec(U32  rec);
  116.    csCHAR *locate_rec_d(U32  rec);
  117.  
  118.    void read_rec(U32 pos,void *ptr,U16  &length);
  119.    void read_rec(U32 pos,U16  maxlen,void *ptr,U16  &length);
  120.    void write_rec(U32 i,void *d,U16 len);
  121.  
  122. //////////////////////// Add Records/////////////////////////////////////////
  123.    U32  append_rec(void *p,U16 len);
  124.  
  125. //////////////////////// Number of Records///////////////////////////////////
  126.    U32  numvrec(void)        { return in.numrec(); }
  127.  
  128. //////////////////////// Data in Header Page/////////////////////////////////
  129.    int  data_2_header(void * ptr,U16 length)
  130.         { return in.data_2_header(ptr,length); }
  131.    int  header_2_data(void * ptr,U16 length)
  132.         { return in.header_2_data(ptr,length); }
  133.    U16  max_data_in_header(void)
  134.         { return in.max_data_in_header(); }
  135.  
  136. ////////////////////////// Deleting////////////////////////////////////////////
  137.    int  is_delet(U32 k)      { return in.is_delet(k); }
  138.    void delet(U32 k)         { in.delet(k);     }
  139.    void undelet(U32 k )      { in.undelet(k);   }
  140.  
  141. ////////////////////////// Record Length///////////////////////////////////////
  142.    U16  rec_len(U32 k)       { return ((vbi *)in.locate_rec(k))->len; }
  143.    U16  max_len(void)        { return da.max_len(); }
  144.  
  145. //////////////////////// Report Writing//////////////////////////////////////
  146.    U16  report(csCHAR *name,S16 sub=1);
  147.    void report(FILE *fipo,S16 sub);
  148.  
  149. ////////////////////////// Miscellaneous///////////////////////////////////////
  150.  
  151.    int  background(void);
  152.    int  pack(void);
  153. // int  zap(void)              { return (da.zap() && in.zap()); }
  154.    int  empty(void)            { return (da.empty() && in.empty()); }
  155.    void info(void);
  156.  
  157.    virtual int class_ID(void)  { return CS_CLID_VBAXE; }
  158.    void  echo_IO(int TF)       { in.echo_IO(TF); da.echo_IO(TF); }
  159.  
  160.  
  161. // Made public to support the program generator.
  162.    S32  sj_updated(void) { return in.sj_updated(); }
  163.    S32  sj_created(void) { return in.sj_created(); }
  164.  
  165.  
  166. };
  167.  
  168. #endif
  169.