mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	Find and fix missing virtual override markings. Updates cmake maintainer flags to include -Wsuggest-override and -Winconsistent-missing-override.
		
			
				
	
	
		
			232 lines
		
	
	
	
		
			7.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			232 lines
		
	
	
	
		
			7.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/************** filamzip H Declares Source Code File (.H) **************/
 | 
						|
/*  Name: filamzip.h   Version 1.3                                     */
 | 
						|
/*                                                                     */
 | 
						|
/*  (C) Copyright to the author Olivier BERTRAND          2016-2020    */
 | 
						|
/*                                                                     */
 | 
						|
/*  This file contains the ZIP file access method classes declares.    */
 | 
						|
/***********************************************************************/
 | 
						|
#ifndef __FILAMZIP_H
 | 
						|
#define __FILAMZIP_H
 | 
						|
 | 
						|
#include "block.h"
 | 
						|
#include "filamap.h"
 | 
						|
#include "filamfix.h"
 | 
						|
#include "filamdbf.h"
 | 
						|
#include "zip.h"
 | 
						|
#include "unzip.h"
 | 
						|
 | 
						|
#define DLLEXPORT extern "C"
 | 
						|
 | 
						|
typedef class UNZFAM *PUNZFAM;
 | 
						|
typedef class UZXFAM *PUZXFAM;
 | 
						|
typedef class UZDFAM* PUZDFAM;
 | 
						|
typedef class ZIPFAM *PZIPFAM;
 | 
						|
typedef class ZPXFAM *PZPXFAM;
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  This is the ZIP utility fonctions class.                           */
 | 
						|
/***********************************************************************/
 | 
						|
class DllExport ZIPUTIL : public BLOCK {
 | 
						|
 public:
 | 
						|
	// Constructor
 | 
						|
	ZIPUTIL(PCSZ tgt);
 | 
						|
	//ZIPUTIL(ZIPUTIL *zutp);
 | 
						|
 | 
						|
	// Methods
 | 
						|
	bool OpenTable(PGLOBAL g, MODE mode, PCSZ fn, bool append);
 | 
						|
	bool open(PGLOBAL g, PCSZ fn, bool append);
 | 
						|
	bool addEntry(PGLOBAL g, PCSZ entry);
 | 
						|
	void close(void);
 | 
						|
	void closeEntry(void);
 | 
						|
  int  writeEntry(PGLOBAL g, char *buf, int len);
 | 
						|
	void getTime(tm_zip& tmZip);
 | 
						|
 | 
						|
	// Members
 | 
						|
	zipFile         zipfile;							// The ZIP container file
 | 
						|
	PCSZ            target;								// The target file name
 | 
						|
	PCSZ            pwd;								  // The ZIP file password
 | 
						|
	PFBLOCK         fp;
 | 
						|
	bool            entryopen;						// True when open current entry
 | 
						|
}; // end of ZIPUTIL
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  This is the unZIP utility fonctions class.                         */
 | 
						|
/***********************************************************************/
 | 
						|
class DllExport UNZIPUTL : public BLOCK {
 | 
						|
 public:
 | 
						|
	// Constructor
 | 
						|
  UNZIPUTL(PCSZ tgt, PCSZ pw, bool mul);
 | 
						|
  UNZIPUTL(PDOSDEF tdp);
 | 
						|
 | 
						|
	// Implementation
 | 
						|
//PTXF Duplicate(PGLOBAL g) { return (PTXF) new(g)UNZFAM(this); }
 | 
						|
 | 
						|
	// Methods
 | 
						|
	bool OpenTable(PGLOBAL g, MODE mode, PCSZ fn);
 | 
						|
	bool open(PGLOBAL g, PCSZ fn);
 | 
						|
	bool openEntry(PGLOBAL g);
 | 
						|
	void close(void);
 | 
						|
	void closeEntry(void);
 | 
						|
	bool WildMatch(PCSZ pat, PCSZ str);
 | 
						|
	int  findEntry(PGLOBAL g, bool next);
 | 
						|
	int  nextEntry(PGLOBAL g);
 | 
						|
	bool IsInsertOk(PGLOBAL g, PCSZ fn);
 | 
						|
 | 
						|
	// Members
 | 
						|
	unzFile         zipfile;							// The ZIP container file
 | 
						|
	PCSZ            target;								// The target file name
 | 
						|
	PCSZ            pwd;								  // The ZIP file password
 | 
						|
	unz_file_info   finfo;								// The current file info
 | 
						|
	PFBLOCK         fp;
 | 
						|
	char           *memory;
 | 
						|
	uint            size;
 | 
						|
	int             multiple;             // Multiple targets
 | 
						|
	bool            entryopen;						// True when open current entry
 | 
						|
	char            fn[FILENAME_MAX];     // The current entry file name
 | 
						|
	char            mapCaseTable[256];
 | 
						|
}; // end of UNZIPUTL
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  This is the unzip file access method.                              */
 | 
						|
/***********************************************************************/
 | 
						|
class DllExport UNZFAM : public MAPFAM {
 | 
						|
//friend class UZXFAM;
 | 
						|
 public:
 | 
						|
	// Constructors
 | 
						|
	UNZFAM(PDOSDEF tdp);
 | 
						|
	UNZFAM(PUNZFAM txfp);
 | 
						|
 | 
						|
	// Implementation
 | 
						|
	AMT  GetAmType(void) override {return TYPE_AM_ZIP;}
 | 
						|
	PTXF Duplicate(PGLOBAL g) override {return (PTXF) new(g) UNZFAM(this);}
 | 
						|
 | 
						|
	// Methods
 | 
						|
	int  Cardinality(PGLOBAL g) override;
 | 
						|
	int  GetFileLength(PGLOBAL g) override;
 | 
						|
	//virtual int  MaxBlkSize(PGLOBAL g, int s) {return s;}
 | 
						|
	bool OpenTableFile(PGLOBAL g) override;
 | 
						|
	bool DeferReading(void) override { return false; }
 | 
						|
	int  GetNext(PGLOBAL g) override;
 | 
						|
	//virtual int  ReadBuffer(PGLOBAL g);
 | 
						|
	//virtual int  WriteBuffer(PGLOBAL g);
 | 
						|
	//virtual int  DeleteRecords(PGLOBAL g, int irc);
 | 
						|
	//virtual void CloseTableFile(PGLOBAL g, bool abort);
 | 
						|
 | 
						|
 protected:
 | 
						|
	// Members
 | 
						|
	UNZIPUTL *zutp;
 | 
						|
	PDOSDEF   tdfp;
 | 
						|
}; // end of UNZFAM
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  This is the fixed unzip file access method.                        */
 | 
						|
/***********************************************************************/
 | 
						|
class DllExport UZXFAM : public MPXFAM {
 | 
						|
//friend class UNZFAM;
 | 
						|
 public:
 | 
						|
	// Constructors
 | 
						|
	UZXFAM(PDOSDEF tdp);
 | 
						|
	UZXFAM(PUZXFAM txfp);
 | 
						|
 | 
						|
	// Implementation
 | 
						|
	AMT  GetAmType(void) override { return TYPE_AM_ZIP; }
 | 
						|
	PTXF Duplicate(PGLOBAL g) override { return (PTXF) new(g)UZXFAM(this); }
 | 
						|
 | 
						|
	// Methods
 | 
						|
	int  GetFileLength(PGLOBAL g) override;
 | 
						|
	int  Cardinality(PGLOBAL g) override;
 | 
						|
	bool OpenTableFile(PGLOBAL g) override;
 | 
						|
	int  GetNext(PGLOBAL g) override;
 | 
						|
	//virtual int  ReadBuffer(PGLOBAL g);
 | 
						|
 | 
						|
 protected:
 | 
						|
	// Members
 | 
						|
	UNZIPUTL *zutp;
 | 
						|
	PDOSDEF   tdfp;
 | 
						|
}; // end of UZXFAM
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  This is the fixed unzip file access method.                        */
 | 
						|
/***********************************************************************/
 | 
						|
class DllExport UZDFAM : public DBMFAM {
 | 
						|
	//friend class UNZFAM;
 | 
						|
public:
 | 
						|
	// Constructors
 | 
						|
	UZDFAM(PDOSDEF tdp);
 | 
						|
	UZDFAM(PUZDFAM txfp);
 | 
						|
 | 
						|
	// Implementation
 | 
						|
	AMT  GetAmType(void) override { return TYPE_AM_ZIP; }
 | 
						|
	PTXF Duplicate(PGLOBAL g) override { return (PTXF) new(g)UZDFAM(this); }
 | 
						|
 | 
						|
	// Methods
 | 
						|
	int  GetFileLength(PGLOBAL g) override;
 | 
						|
	int  Cardinality(PGLOBAL g) override;
 | 
						|
	bool OpenTableFile(PGLOBAL g) override;
 | 
						|
	int  GetNext(PGLOBAL g) override;
 | 
						|
	//virtual int  ReadBuffer(PGLOBAL g);
 | 
						|
 | 
						|
protected:
 | 
						|
	int dbfhead(PGLOBAL g, void* buf);
 | 
						|
	int ScanHeader(PGLOBAL g, int* rln);
 | 
						|
 | 
						|
	// Members
 | 
						|
	UNZIPUTL* zutp;
 | 
						|
	PDOSDEF   tdfp;
 | 
						|
}; // end of UZDFAM
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  This is the zip file access method.                                */
 | 
						|
/***********************************************************************/
 | 
						|
class DllExport ZIPFAM : public DOSFAM {
 | 
						|
 public:
 | 
						|
	// Constructors
 | 
						|
	ZIPFAM(PDOSDEF tdp);
 | 
						|
 | 
						|
	// Implementation
 | 
						|
	AMT  GetAmType(void) override {return TYPE_AM_ZIP;}
 | 
						|
 | 
						|
	// Methods
 | 
						|
	int  Cardinality(PGLOBAL g) override {return 0;}
 | 
						|
	int  GetFileLength(PGLOBAL g) override {return g ? 0 : 1;}
 | 
						|
	//virtual int  MaxBlkSize(PGLOBAL g, int s) {return s;}
 | 
						|
	bool OpenTableFile(PGLOBAL g) override;
 | 
						|
	int  ReadBuffer(PGLOBAL g) override;
 | 
						|
	int  WriteBuffer(PGLOBAL g) override;
 | 
						|
	//virtual int  DeleteRecords(PGLOBAL g, int irc);
 | 
						|
	void CloseTableFile(PGLOBAL g, bool abort) override;
 | 
						|
 | 
						|
 protected:
 | 
						|
	// Members
 | 
						|
	ZIPUTIL *zutp;
 | 
						|
	PCSZ     target;
 | 
						|
	bool     append;
 | 
						|
//bool     replace;
 | 
						|
}; // end of ZIPFAM
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  This is the fixed zip file access method.                          */
 | 
						|
/***********************************************************************/
 | 
						|
class DllExport ZPXFAM : public FIXFAM {
 | 
						|
 public:
 | 
						|
	// Constructors
 | 
						|
	ZPXFAM(PDOSDEF tdp);
 | 
						|
 | 
						|
	// Implementation
 | 
						|
	AMT  GetAmType(void) override {return TYPE_AM_ZIP;}
 | 
						|
 | 
						|
	// Methods
 | 
						|
	int  Cardinality(PGLOBAL g) override {return 0;}
 | 
						|
	int  GetFileLength(PGLOBAL g) override {return g ? 0 : 1;}
 | 
						|
	bool OpenTableFile(PGLOBAL g) override;
 | 
						|
	int  WriteBuffer(PGLOBAL g) override;
 | 
						|
	void CloseTableFile(PGLOBAL g, bool abort) override;
 | 
						|
 | 
						|
 protected:
 | 
						|
	// Members
 | 
						|
	ZIPUTIL *zutp;
 | 
						|
	PCSZ      target;
 | 
						|
	bool     append;
 | 
						|
}; // end of ZPXFAM
 | 
						|
 | 
						|
#endif // __FILAMZIP_H
 |