summaryrefslogtreecommitdiffstats
path: root/storage/connect/filamdbf.h
diff options
context:
space:
mode:
Diffstat (limited to 'storage/connect/filamdbf.h')
-rw-r--r--storage/connect/filamdbf.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/storage/connect/filamdbf.h b/storage/connect/filamdbf.h
new file mode 100644
index 00000000..6cf6331a
--- /dev/null
+++ b/storage/connect/filamdbf.h
@@ -0,0 +1,108 @@
+/***************** FilAmDbf H Declares Source Code File (.H) ****************/
+/* Name: filamdbf.h Version 1.4 */
+/* */
+/* (C) Copyright to the author Olivier BERTRAND 2005-2014 */
+/* */
+/* This file contains the DBF file access method classes declares. */
+/****************************************************************************/
+
+#ifndef __FILAMDBF_H
+#define __FILAMDBF_H
+
+#include "filamfix.h"
+#include "filamap.h"
+
+typedef class DBFBASE *PDBF;
+typedef class DBFFAM *PDBFFAM;
+typedef class DBMFAM *PDBMFAM;
+
+/****************************************************************************/
+/* Functions used externally. */
+/****************************************************************************/
+PQRYRES DBFColumns(PGLOBAL g, PCSZ dp, PCSZ fn, PTOS tiop, bool info);
+
+/****************************************************************************/
+/* This is the base class for dBASE file access methods. */
+/****************************************************************************/
+class DllExport DBFBASE {
+ public:
+ // Constructors
+ DBFBASE(PDOSDEF tdp);
+ DBFBASE(PDBF txfp);
+
+ // Implementation
+ int ScanHeader(PGLOBAL g, PCSZ fname, int lrecl, int *rlen, PCSZ defpath);
+
+ protected:
+ // Default constructor, not to be used
+ DBFBASE(void) = default;
+
+ // Members
+ int Records; /* records in the file */
+ bool Accept; /* true if bad lines are accepted */
+ int Nerr; /* Number of bad records */
+ int Maxerr; /* Maximum number of bad records */
+ int ReadMode; /* 1: ALL 2: DEL 0: NOT DEL */
+ }; // end of class DBFBASE
+
+/****************************************************************************/
+/* This is the DOS/UNIX Access Method class declaration for DBase files. */
+/****************************************************************************/
+class DllExport DBFFAM : public FIXFAM, public DBFBASE {
+ public:
+ // Constructors
+ DBFFAM(PDOSDEF tdp) : FIXFAM(tdp), DBFBASE(tdp) {}
+ DBFFAM(PDBFFAM txfp) : FIXFAM(txfp), DBFBASE((PDBF)txfp) {}
+
+ // Implementation
+ virtual AMT GetAmType(void) {return TYPE_AM_DBF;}
+ virtual PTXF Duplicate(PGLOBAL g)
+ {return (PTXF)new(g) DBFFAM(this);}
+
+ // Methods
+ virtual int GetNerr(void) {return Nerr;}
+ virtual int Cardinality(PGLOBAL g);
+ virtual bool OpenTableFile(PGLOBAL g);
+ virtual bool AllocateBuffer(PGLOBAL g);
+ virtual void ResetBuffer(PGLOBAL g);
+ virtual int ReadBuffer(PGLOBAL g);
+ virtual int DeleteRecords(PGLOBAL g, int irc);
+ virtual void CloseTableFile(PGLOBAL g, bool abort);
+ virtual void Rewind(void);
+
+ protected:
+ virtual bool CopyHeader(PGLOBAL g);
+//virtual int InitDelete(PGLOBAL g, int fpos, int spos);
+
+ // Members
+ }; // end of class DBFFAM
+
+/****************************************************************************/
+/* This is the DOS/UNIX Access Method class declaration for DBase files */
+/* using file mapping to access the file. */
+/****************************************************************************/
+class DllExport DBMFAM : public MPXFAM, public DBFBASE {
+ public:
+ // Constructors
+ DBMFAM(PDOSDEF tdp) : MPXFAM(tdp), DBFBASE(tdp) {}
+ DBMFAM(PDBMFAM txfp) : MPXFAM(txfp), DBFBASE((PDBF)txfp) {}
+
+ // Implementation
+ virtual AMT GetAmType(void) {return TYPE_AM_DBF;}
+ virtual PTXF Duplicate(PGLOBAL g)
+ {return (PTXF)new(g) DBMFAM(this);}
+ virtual int GetDelRows(void);
+
+ // Methods
+ virtual int GetNerr(void) {return Nerr;}
+ virtual int Cardinality(PGLOBAL g);
+ virtual bool AllocateBuffer(PGLOBAL g);
+ virtual int ReadBuffer(PGLOBAL g);
+ virtual int DeleteRecords(PGLOBAL g, int irc);
+ virtual void Rewind(void);
+
+ protected:
+ // Members
+ }; // end of class DBFFAM
+
+#endif // __FILAMDBF_H