home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
cslio205.zip
/
INCLUDE
/
CSBASE.H
< prev
next >
Wrap
C/C++ Source or Header
|
1997-01-21
|
6KB
|
227 lines
/***********************************************************************
CSDB Library, Free Evaluation Version 2.0.5
Release: January 22th 1997
BASE class for many database classes.
Copyright(c) 1994-1997
ComBits
The Netherlands
***********************************************************************/
#ifndef __CSBASE_H
#define __CSBASE_H
#include "cstools.h"
#include "cswarnof.h"
#include "csfile.h"
#define CS_CLID_VRAM 1
#define CS_CLID_BTREE 2
#define CS_CLID_VBASE 3
#define CS_CLID_VBAXE 4
#define CS_CLID_OLAY 5
#define CS_CLID_DLAY 6
#define CS_CLID_OLAYd CS_CLID_DLAY
#define CS_CLID_TBASE 7
#define CS_CLID_RBASE 8
#define CS_CLID_DAVL 9
#define CS_CLID_RAVL 10
#define CS_CLID_PAGE 11
#define CS_CLID_BTREEb 12
#define CS_CLID_BTREEi 13
#define CS_CLID_BTREEc 14
#define CS_CLID_BTREEl 15
#define CS_CLID_BTREEf 16
#define CS_CLID_BTREEd 17
#define CS_CLID_BTREEa 18
#define CS_CLID_VBASEi 19
#define CS_CLID_VBASEd 20
#define CS_CLID_IBASE 21
#define CS_CLID_BTREEs 22
int cs_db_type(csCHAR *name,U32 &cs_lib,U32 &fi_ID, S16 &cl_ID);
U32 cs_fi_type(csCHAR *name);
U16 cs_cl_type(csCHAR *name);
csCHAR *lock_file_name(csCHAR *DBName,csCHAR *LockName);
int lock_file_exist(csCHAR *DBName);
int remove_lock_file(csCHAR *DBName);
class VBAXE;
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
class BASE
{
friend class VBAXE;
protected:
void *head;
U16 is_open;
U32 numpage;
U16 lenpage;
U16 page_foot;
csSTR db_name;
FILE_NAME LockFile;
FILE *fp;
int ReadOnly;
U16 ErrorNr;
int use_locking;
void set_page_size(U16 t);
void init_vars(void);
void init_defaults(void);
protected:
void close2(void);
U16 debug_error(U16 errnr);
U16 debug_error(U16 errnr,csCHAR *name);
U16 visible_error(U16 errnr);
U16 visible_error(U16 errnr,csCHAR *name);
public:
///////////////////////// Compatibility ////////////////////////////////////
void name(csCHAR *s) { db_name=s; }
int already_open(void) { return is_open; }
// void save(int updated);
// int set_open(int FT) { return is_open=(U16)FT; }
// void zap(void);
//////////////// Made public to support the program generator //////////////
S32 sj_updated(void);
S32 sj_created(void);
////////////////////////////////////////////////////////////////////////////////
//////////////////////// ////////////////////////////
//////////////////////// P U B L I C ////////////////////////////
//////////////////////// ////////////////////////////
////////////////////////////////////////////////////////////////////////////////
public:
BASE(void);
virtual
~BASE(void);
///////////////////////// Error & Messages ///////////////////////////
csCHAR *e_name(void) { return (csCHAR *)db_name; }
void e_name(csCHAR *s) { db_name=s; }
void error_nr(U16 nr) { ErrorNr=nr; }
U16 error_nr(void ) { U16 RC=ErrorNr; ErrorNr=0; return RC; }
U16 display_error(void);
///////////////////////// Read-Only Mode ////////////////////////////////
int read_only(void) { return read_only(TRUE); }
int read_only(int ToF);
int is_read_only(void) { return ReadOnly; }
///////////////////////// Open & Close //////////////////////////////////
int open(csCHAR *name);
void close(void);
int save(void) {return TRUE;}
int IsOpen(void) { return is_open; }
void IsOpen(int ToF) { is_open=ToF; }
///////////////////////// Lock files ////////////////////////////////////
void use_lock_file(int ToF) { use_locking=ToF; }
int use_lock_file(void ) { return use_locking; }
int lock_file_exist(csCHAR *DBNAME);
int if_cr_lofi(csCHAR *DBName,U16 Exist,U16 False);
int if_re_lofi(void);
int create_lock_file(csCHAR *DBName,U16 Exist,U16 False);
int remove_lock_file(csCHAR *DBName);
int remove_lock_file(void);
/////////////////////////Header block ///////////////////////////////////
virtual int read_header(void);
virtual int write_header(void);
void TimeStamp(void);
///////////////////////// Create /////////////////////////////////////
void define(void);
void page_size(U16 t) { set_page_size(t); }
U16 page_size(void) { return lenpage; }
U16 foot_size(void) { return page_foot; }
void foot_size(int size) { page_foot=(U16)size; }
//////////////////////// Number of Pages /////////////////////////////////////
long num_page(void) { return numpage; }
void set_num_page(long n) { numpage=n; }
////////////////////////// Miscellaneous ///////////////////////////////////////
int fseek(U32 l) { return ::fseek(fp,l,SEEK_SET); }
long ftell(void ) { return ::ftell(fp); }
U16 page_free(void) { return (U16)(page_size()-foot_size()); }
void empty(void);
virtual int class_ID(void)=0;
};
#endif