mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 02:46:29 +01:00 
			
		
		
		
	 db0c28eff8
			
		
	
	
	db0c28eff8
	
	
	
		
			
			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
 |