1 | /***************** FilAmDbf H Declares Source Code File (.H) ****************/ |
2 | /* Name: filamdbf.h Version 1.4 */ |
3 | /* */ |
4 | /* (C) Copyright to the author Olivier BERTRAND 2005-2014 */ |
5 | /* */ |
6 | /* This file contains the DBF file access method classes declares. */ |
7 | /****************************************************************************/ |
8 | |
9 | #ifndef __FILAMDBF_H |
10 | #define __FILAMDBF_H |
11 | |
12 | #include "filamfix.h" |
13 | #include "filamap.h" |
14 | |
15 | typedef class DBFBASE *PDBF; |
16 | typedef class DBFFAM *PDBFFAM; |
17 | typedef class DBMFAM *PDBMFAM; |
18 | |
19 | /****************************************************************************/ |
20 | /* Functions used externally. */ |
21 | /****************************************************************************/ |
22 | PQRYRES DBFColumns(PGLOBAL g, PCSZ dp, PCSZ fn, bool info); |
23 | |
24 | /****************************************************************************/ |
25 | /* This is the base class for dBASE file access methods. */ |
26 | /****************************************************************************/ |
27 | class DllExport DBFBASE { |
28 | public: |
29 | // Constructors |
30 | DBFBASE(PDOSDEF tdp); |
31 | DBFBASE(PDBF txfp); |
32 | |
33 | // Implementation |
34 | int (PGLOBAL g, PCSZ fname, int lrecl, int *rlen, PCSZ defpath); |
35 | |
36 | protected: |
37 | // Default constructor, not to be used |
38 | DBFBASE(void) {} |
39 | |
40 | // Members |
41 | int Records; /* records in the file */ |
42 | bool Accept; /* true if bad lines are accepted */ |
43 | int Nerr; /* Number of bad records */ |
44 | int Maxerr; /* Maximum number of bad records */ |
45 | int ReadMode; /* 1: ALL 2: DEL 0: NOT DEL */ |
46 | }; // end of class DBFBASE |
47 | |
48 | /****************************************************************************/ |
49 | /* This is the DOS/UNIX Access Method class declaration for DBase files. */ |
50 | /****************************************************************************/ |
51 | class DllExport DBFFAM : public FIXFAM, public DBFBASE { |
52 | public: |
53 | // Constructors |
54 | DBFFAM(PDOSDEF tdp) : FIXFAM(tdp), DBFBASE(tdp) {} |
55 | DBFFAM(PDBFFAM txfp) : FIXFAM(txfp), DBFBASE((PDBF)txfp) {} |
56 | |
57 | // Implementation |
58 | virtual AMT GetAmType(void) {return TYPE_AM_DBF;} |
59 | virtual PTXF Duplicate(PGLOBAL g) |
60 | {return (PTXF)new(g) DBFFAM(this);} |
61 | |
62 | // Methods |
63 | virtual int GetNerr(void) {return Nerr;} |
64 | virtual int Cardinality(PGLOBAL g); |
65 | virtual bool OpenTableFile(PGLOBAL g); |
66 | virtual bool AllocateBuffer(PGLOBAL g); |
67 | virtual void ResetBuffer(PGLOBAL g); |
68 | virtual int ReadBuffer(PGLOBAL g); |
69 | virtual int DeleteRecords(PGLOBAL g, int irc); |
70 | virtual void CloseTableFile(PGLOBAL g, bool abort); |
71 | virtual void Rewind(void); |
72 | |
73 | protected: |
74 | virtual bool (PGLOBAL g); |
75 | //virtual int InitDelete(PGLOBAL g, int fpos, int spos); |
76 | |
77 | // Members |
78 | }; // end of class DBFFAM |
79 | |
80 | /****************************************************************************/ |
81 | /* This is the DOS/UNIX Access Method class declaration for DBase files */ |
82 | /* using file mapping to access the file. */ |
83 | /****************************************************************************/ |
84 | class DllExport DBMFAM : public MPXFAM, public DBFBASE { |
85 | public: |
86 | // Constructors |
87 | DBMFAM(PDOSDEF tdp) : MPXFAM(tdp), DBFBASE(tdp) {} |
88 | DBMFAM(PDBMFAM txfp) : MPXFAM(txfp), DBFBASE((PDBF)txfp) {} |
89 | |
90 | // Implementation |
91 | virtual AMT GetAmType(void) {return TYPE_AM_DBF;} |
92 | virtual PTXF Duplicate(PGLOBAL g) |
93 | {return (PTXF)new(g) DBMFAM(this);} |
94 | virtual int GetDelRows(void); |
95 | |
96 | // Methods |
97 | virtual int GetNerr(void) {return Nerr;} |
98 | virtual int Cardinality(PGLOBAL g); |
99 | virtual bool AllocateBuffer(PGLOBAL g); |
100 | virtual int ReadBuffer(PGLOBAL g); |
101 | virtual int DeleteRecords(PGLOBAL g, int irc); |
102 | virtual void Rewind(void); |
103 | |
104 | protected: |
105 | // Members |
106 | }; // end of class DBFFAM |
107 | |
108 | #endif // __FILAMDBF_H |
109 | |