mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
- MDEV-11295: developing handling files contained in ZIP file.
A first experimental and limited implementation. modified: storage/connect/CMakeLists.txt modified: storage/connect/filamap.cpp new file: storage/connect/filamzip.cpp new file: storage/connect/filamzip.h modified: storage/connect/ha_connect.cc new file: storage/connect/ioapi.c new file: storage/connect/ioapi.h modified: storage/connect/mycat.cc modified: storage/connect/plgdbsem.h modified: storage/connect/plgdbutl.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabfmt.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h new file: storage/connect/tabzip.cpp new file: storage/connect/tabzip.h new file: storage/connect/unzip.c new file: storage/connect/unzip.h new file: storage/connect/zip.c
This commit is contained in:
100
storage/connect/tabzip.h
Normal file
100
storage/connect/tabzip.h
Normal file
@@ -0,0 +1,100 @@
|
||||
/*************** tabzip H Declares Source Code File (.H) ***************/
|
||||
/* Name: tabzip.h Version 1.0 */
|
||||
/* */
|
||||
/* (C) Copyright to the author Olivier BERTRAND 2016 */
|
||||
/* */
|
||||
/* This file contains the ZIP classe declares. */
|
||||
/***********************************************************************/
|
||||
#include "osutil.h"
|
||||
#include "block.h"
|
||||
#include "colblk.h"
|
||||
#include "xtable.h"
|
||||
#include "unzip.h"
|
||||
|
||||
typedef class ZIPDEF *PZIPDEF;
|
||||
typedef class TDBZIP *PTDBZIP;
|
||||
typedef class ZIPCOL *PZIPCOL;
|
||||
|
||||
/***********************************************************************/
|
||||
/* ZIP table: display info about a ZIP file. */
|
||||
/***********************************************************************/
|
||||
class DllExport ZIPDEF : public DOSDEF { /* Table description */
|
||||
friend class TDBZIP;
|
||||
friend class ZIPFAM;
|
||||
public:
|
||||
// Constructor
|
||||
ZIPDEF(void) {}
|
||||
|
||||
// Implementation
|
||||
virtual const char *GetType(void) {return "ZIP";}
|
||||
|
||||
// Methods
|
||||
virtual bool DefineAM(PGLOBAL g, LPCSTR am, int poff);
|
||||
virtual PTDB GetTable(PGLOBAL g, MODE m);
|
||||
|
||||
protected:
|
||||
// Members
|
||||
PSZ target; // The inside file to query
|
||||
}; // end of ZIPDEF
|
||||
|
||||
/***********************************************************************/
|
||||
/* This is the ZIP Access Method class declaration. */
|
||||
/***********************************************************************/
|
||||
class DllExport TDBZIP : public TDBASE {
|
||||
friend class ZIPCOL;
|
||||
public:
|
||||
// Constructor
|
||||
TDBZIP(PZIPDEF tdp);
|
||||
|
||||
// Implementation
|
||||
virtual AMT GetAmType(void) {return TYPE_AM_ZIP;}
|
||||
|
||||
// Methods
|
||||
virtual PCOL MakeCol(PGLOBAL g, PCOLDEF cdp, PCOL cprec, int n);
|
||||
virtual int Cardinality(PGLOBAL g);
|
||||
virtual int GetMaxSize(PGLOBAL g);
|
||||
virtual int GetRecpos(void) {return 0;}
|
||||
|
||||
// Database routines
|
||||
virtual bool OpenDB(PGLOBAL g);
|
||||
virtual int ReadDB(PGLOBAL g);
|
||||
virtual int WriteDB(PGLOBAL g);
|
||||
virtual int DeleteDB(PGLOBAL g, int irc);
|
||||
virtual void CloseDB(PGLOBAL g);
|
||||
|
||||
protected:
|
||||
bool open(PGLOBAL g, const char *filename);
|
||||
void close(void);
|
||||
|
||||
// Members
|
||||
unzFile zipfile; // The ZIP container file
|
||||
PSZ zfn; // The ZIP file name
|
||||
//PSZ target;
|
||||
unz_file_info64 finfo; // The current file info
|
||||
char fn[FILENAME_MAX]; // The current file name
|
||||
int nexterr; // Next file error
|
||||
}; // end of class TDBZIP
|
||||
|
||||
/***********************************************************************/
|
||||
/* Class ZIPCOL: ZIP access method column descriptor. */
|
||||
/***********************************************************************/
|
||||
class DllExport ZIPCOL : public COLBLK {
|
||||
friend class TDBZIP;
|
||||
public:
|
||||
// Constructors
|
||||
ZIPCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PSZ am = "ZIP");
|
||||
|
||||
// Implementation
|
||||
virtual int GetAmType(void) { return TYPE_AM_ZIP; }
|
||||
|
||||
// Methods
|
||||
virtual void ReadColumn(PGLOBAL g);
|
||||
|
||||
protected:
|
||||
// Default constructor not to be used
|
||||
ZIPCOL(void) {}
|
||||
|
||||
// Members
|
||||
TDBZIP *Tdbz;
|
||||
int flag;
|
||||
}; // end of class ZIPCOL
|
Reference in New Issue
Block a user