/***********************************************************************/ /* This is the DOS/UNIX Access Method class declaration for files */ /* in vector format. If MaxBlk=0, each block containing "Elements" */ /* records, values of each columns are consecutively stored (vector). */ /* Otherwise, data is arranged by column in the file and MaxBlk is */ /* used to set the maximum number of blocks. This leave some white */ /* space allowing to insert new values up to this maximum size. */ /***********************************************************************/ class DllExport VCTFAM : public FIXFAM { friendclass TDBVCT; friendclass VCTCOL; public: // Constructor
VCTFAM(PVCTDEF tdp);
VCTFAM(PVCTFAM txfp);
// Implementation
AMT GetAmType(void) override {return TYPE_AM_VCT;}
PTXF Duplicate(PGLOBAL g) override
{return (PTXF)new(g) VCTFAM(this);} int GetFileLength(PGLOBAL g) override;
// Methods void Reset(void) override; int MaxBlkSize(PGLOBAL g, int s) override; bool AllocateBuffer(PGLOBAL g) override; virtualbool InitInsert(PGLOBAL g); void ResetBuffer(PGLOBAL g) override {} int Cardinality(PGLOBAL g) override; int GetRowID(void) override;
// Database routines bool OpenTableFile(PGLOBAL g) override; int ReadBuffer(PGLOBAL g) override; int WriteBuffer(PGLOBAL g) override; int DeleteRecords(PGLOBAL g, int irc) override; void CloseTableFile(PGLOBAL g, bool abort) override; void Rewind(void) override;
// Members char *NewBlock; // To block written on Insert char *Colfn; // Pattern for column file names (VEC) char *Tempat; // Pattern for temp file names (VEC) int *Clens; // Pointer to col size array int *Deplac; // Pointer to col start position array bool *Isnum; // Pointer to buffer type isnum result bool AddBlock; // True when adding new blocks on Insert bool Split; // true: split column file vector format int Header; // 0: no, 1: separate, 2: in data file int MaxBlk; // Max number of blocks (True vector format) int Bsize; // Because Nrec can be modified int Ncol; // The number of columns;
}; // end of class VCTFAM
/***********************************************************************/ /* This is the DOS/UNIX Access Method class declaration for files */ /* in vector format accessed using file mapping. */ /***********************************************************************/ class DllExport VCMFAM : public VCTFAM { friendclass TDBVCT; friendclass VCTCOL; public: // Constructor
VCMFAM(PVCTDEF tdp);
VCMFAM(PVCMFAM txfp);
// Members char* Memory; // Pointer on file mapping view. char* *Memcol; // Pointer on column start.
}; // end of class VCMFAM
/***********************************************************************/ /* This is the DOS/UNIX Access Method class declaration for files */ /* in full vertical format. Each column is contained in a separate */ /* file whose name is the table name followed by the column number. */ /***********************************************************************/ class DllExport VECFAM : public VCTFAM { friendclass TDBVCT; friendclass VCTCOL; public: // Constructor
VECFAM(PVCTDEF tdp);
VECFAM(PVECFAM txfp);
// Members
FILE* *Streams; // Points to Dos file structure array
FILE* *T_Streams; // Points to temp file structure array
PFBLOCK *To_Fbs; // Pointer to file block array
PFBLOCK *T_Fbs; // Pointer to temp file block array void* *To_Bufs; // Pointer to col val block array bool InitUpdate; // Used to initialize updating
}; // end of class VECFAM
/***********************************************************************/ /* This is the DOS/UNIX Access Method class declaration for files */ /* in full vertical format accessed using file mapping. */ /***********************************************************************/ class DllExport VMPFAM : public VCMFAM { friendclass TDBVCT; friendclass VCTCOL; public: // Constructor
VMPFAM(PVCTDEF tdp);
VMPFAM(PVMPFAM txfp);
// Database routines bool OpenTableFile(PGLOBAL g) override; int DeleteRecords(PGLOBAL g, int irc) override; void CloseTableFile(PGLOBAL g, bool abort) override;
protected: bool MapColumnFile(PGLOBAL g, MODE mode, int i);
// Members
PFBLOCK *To_Fbs; // Pointer to file block array
}; // end of class VMPFAM
/***********************************************************************/ /* This is the DOS/UNIX Access Method class declaration for files */ /* in (possibly blocked) vector format that can be larger than 2GB. */ /***********************************************************************/ class BGVFAM : public VCTFAM { friendclass VCTCOL; public: // Constructors
BGVFAM(PVCTDEF tdp);
BGVFAM(PBGVFAM txfp);
// Members
HANDLE Hfile; // Handle to big file
HANDLE Tfile; // Handle to temporary file
BIGINT *BigDep; // Pointer to col start position array
}; // end of class BGVFAM
#endif// __FILAMVCT__
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-10-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.