mariadb/storage/connect/filamap.h
Dave Gosselin db0c28eff8 MDEV-33746 Supply missing override markings
Find and fix missing virtual override markings.  Updates cmake
maintainer flags to include -Wsuggest-override and
-Winconsistent-missing-override.
2024-06-20 11:32:13 -04:00

120 lines
4.3 KiB
C++

/*************** FilAMap H Declares Source Code File (.H) **************/
/* Name: FILAMAP.H Version 1.3 */
/* */
/* (C) Copyright to the author Olivier BERTRAND 2005-2014 */
/* */
/* This file contains the MAP file access method classes declares. */
/***********************************************************************/
#ifndef __FILAMAP_H
#define __FILAMAP_H
#include "block.h"
#include "filamtxt.h"
typedef class MAPFAM *PMAPFAM;
/***********************************************************************/
/* This is the variable file access method using file mapping. */
/***********************************************************************/
class DllExport MAPFAM : public TXTFAM {
friend class TDBJSON;
public:
// Constructor
MAPFAM(PDOSDEF tdp);
MAPFAM(PMAPFAM tmfp);
// Implementation
AMT GetAmType(void) override {return TYPE_AM_MAP;}
int GetPos(void) override;
int GetNextPos(void) override;
PTXF Duplicate(PGLOBAL g) override
{return (PTXF)new(g) MAPFAM(this);}
// Methods
void Reset(void) override;
int GetFileLength(PGLOBAL g) override;
int Cardinality(PGLOBAL g) override {return (g) ? -1 : 0;}
int MaxBlkSize(PGLOBAL g, int s) override {return s;}
int GetRowID(void) override;
bool RecordPos(PGLOBAL g) override;
bool SetPos(PGLOBAL g, int recpos) override;
int SkipRecord(PGLOBAL g, bool header) override;
bool OpenTableFile(PGLOBAL g) override;
bool DeferReading(void) override {return false;}
virtual int GetNext(PGLOBAL g) {return RC_EF;}
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;
protected:
int InitDelete(PGLOBAL g, int fpos, int spos) override;
// Members
char *Memory; // Pointer on file mapping view.
char *Mempos; // Position of next data to read
char *Fpos; // Position of last read record
char *Tpos; // Target Position for delete move
char *Spos; // Start position for delete move
char *Top; // Mark end of file mapping view
}; // end of class MAPFAM
/***********************************************************************/
/* This is the blocked file access method using file mapping. */
/***********************************************************************/
class DllExport MBKFAM : public MAPFAM {
public:
// Constructor
MBKFAM(PDOSDEF tdp);
MBKFAM(PMAPFAM tmfp) : MAPFAM(tmfp) {}
// Implementation
PTXF Duplicate(PGLOBAL g) override
{return (PTXF)new(g) MBKFAM(this);}
// Methods
void Reset(void) override;
int Cardinality(PGLOBAL g) override;
int MaxBlkSize(PGLOBAL g, int s) override
{return TXTFAM::MaxBlkSize(g, s);}
int GetRowID(void) override;
int SkipRecord(PGLOBAL g, bool header) override;
int ReadBuffer(PGLOBAL g) override;
void Rewind(void) override;
protected:
// No additional members
}; // end of class MBKFAM
/***********************************************************************/
/* This is the fixed file access method using file mapping. */
/***********************************************************************/
class DllExport MPXFAM : public MBKFAM {
public:
// Constructor
MPXFAM(PDOSDEF tdp);
MPXFAM(PMAPFAM tmfp) : MBKFAM(tmfp) {}
// Implementation
int GetPos(void) override;
PTXF Duplicate(PGLOBAL g) override
{return (PTXF)new(g) MPXFAM(this);}
// Methods
int Cardinality(PGLOBAL g) override {return TXTFAM::Cardinality(g);}
int MaxBlkSize(PGLOBAL g, int s) override
{return TXTFAM::MaxBlkSize(g, s);}
bool SetPos(PGLOBAL g, int recpos) override;
int GetNextPos(void) override {return GetPos() + 1;}
bool DeferReading(void) override {return false;}
int ReadBuffer(PGLOBAL g) override;
int WriteBuffer(PGLOBAL g) override;
protected:
int InitDelete(PGLOBAL g, int fpos, int spos) override;
// No additional members
}; // end of class MPXFAM
#endif // __FILAMAP_H