OpendTect  6.6
ziphandler.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: Salil Agarwal
8  Date: 30 August 2012
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "generalmod.h"
15 #include "bufstringset.h"
16 #include "typeset.h"
17 #include "od_iosfwd.h"
18 
19 
20 class ZipArchiveInfo;
21 
27 {
28 
29 public:
30 
31  ZipFileInfo(const char* fnm,
32  od_int64 compsize,
33  od_int64 uncompsize,
34  od_int64 offset)
35  : fnm_(fnm)
36  , compsize_(compsize)
37  , uncompsize_(uncompsize)
38  , localheaderoffset_(offset) {}
39 
44 
45 };
46 
47 
53 {
54 public:
55 
56  friend class ZipUtils;
57  friend class Zipper;
58  friend class UnZipper;
59 
60  enum CompLevel { NoComp=0, SuperFast=1, Fast=3, Normal=6,
61  Maximum=9 };
62 
64  : initialfilecount_(0)
65  , uncompfilesize_(0)
66  , compfilesize_(0)
67  , offsetofcentraldir_(0)
68  , istrm_(0)
69  , ostrm_(0)
70  , curinputidx_(0)
71  , curfileidx_(0)
72  , totalsize_(0)
73  , nrdonesize_(0) {}
74 
76 
77  const char* errorMsg()const;
78 
79  bool getArchiveInfo(const char*,
81 
82  bool getFileList(const char*,BufferStringSet&);
83 
84  od_uint16 dateInDosFormat(const char*) const;
85  od_uint16 timeInDosFormat(const char*) const;
86  bool setTimeDateModified(const char*,od_uint16,
87  od_uint16)const;
88 
89  bool getBitValue(const unsigned char byte,
90  int bitposition) const;
91  void setBitValue(unsigned char& byte, int
92  bitposition, bool value) const;
93 
94 
95 protected:
96 
97  bool initUnZipArchive(const char*,const char*);
98  bool unZipFile(const char* srcfnm,const char* fnm,
99  const char* path);
100 
104 
108  zfileinfo=0);
111  bool readXtraFldForZIP64(const char*,int);
113 
114  bool initMakeZip(const char*,const BufferStringSet&);
115  bool initAppend(const char*,const char*);
116 
118  bool doZCompress();
119  int openStrmToRead(const char* src);
130 
131  const BufferStringSet& getAllFileNames() { return allfilenames_; }
133  { return cumulativefilecounts_.last(); }
134  int getCumulativeFileCount(int) const;
136 
137  od_int64 getTotalSize()const { return totalsize_; }
138  od_int64 getNrDoneSize()const { return nrdonesize_; }
139 
140  bool reportReadError(const char* filenm=0) const;
141  bool reportWriteError(const char* filenm=0) const;
143  const char*) const;
146 
149 
152 
155 
158 
161 
163 
168 
171 
173 
176 
179 
182 
183 };
184 
185 
ZipHandler::initUnZipArchive
bool initUnZipArchive(const char *, const char *)
ZipHandler::extractNextFile
bool extractNextFile()
ZipHandler::readEndOfCentralDirHeader
bool readEndOfCentralDirHeader()
ZipHandler::ZipHandler
ZipHandler()
Definition: ziphandler.h:63
ZipHandler::readLocalFileHeader
int readLocalFileHeader()
ZipHandler::getCumulativeFileCount
int getCumulativeFileCount(int) const
ZipHandler::srcfile_
BufferString srcfile_
Definition: ziphandler.h:150
ZipHandler::destbasepath_
BufferString destbasepath_
Definition: ziphandler.h:153
ZipHandler::readCentralDirHeader
bool readCentralDirHeader(ObjectSet< ZipFileInfo > *zfileinfo=0)
ObjectSet< ZipFileInfo >
ZipFileInfo::localheaderoffset_
od_int64 localheaderoffset_
Definition: ziphandler.h:43
ZipHandler::totalsize_
od_int64 totalsize_
Definition: ziphandler.h:177
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
ZipArchiveInfo
Gives information of zip archives.
Definition: ziparchiveinfo.h:27
ZipHandler::cumulativefilecounts_
TypeSet< od_int64 > cumulativefilecounts_
Definition: ziphandler.h:167
od_int64
#define od_int64
Definition: plftypes.h:35
ZipHandler::setLocalFileHeaderForDir
bool setLocalFileHeaderForDir()
ZipHandler::nrdonesize_
od_int64 nrdonesize_
Definition: ziphandler.h:178
ZipHandler::openStreamToWrite
bool openStreamToWrite()
ZipHandler::errorMsg
const char * errorMsg() const
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
ZipHandler::setZIP64EndOfDirRecord
bool setZIP64EndOfDirRecord(od_int64)
od_istream
OD class for stream read common access to the std::cin.
Definition: od_istream.h:24
ZipFileInfo::ZipFileInfo
ZipFileInfo(const char *fnm, od_int64 compsize, od_int64 uncompsize, od_int64 offset)
Definition: ziphandler.h:31
ZipHandler::readAndSetFileAttr
bool readAndSetFileAttr()
ZipUtils
Zip Utilities.
Definition: ziputils.h:24
ZipHandler::compfilesize_
od_int64 compfilesize_
Definition: ziphandler.h:156
ZipHandler::getBitValue
bool getBitValue(const unsigned char byte, int bitposition) const
ZipFileInfo::uncompsize_
od_int64 uncompsize_
Definition: ziphandler.h:42
typeset.h
ZipHandler::ostrm_
od_ostream * ostrm_
Definition: ziphandler.h:180
ZipHandler::getNrDoneSize
od_int64 getNrDoneSize() const
Definition: ziphandler.h:138
ZipHandler::lastmodtime_
od_uint16 lastmodtime_
Definition: ziphandler.h:169
od_stream_Pos
od_int64 od_stream_Pos
Definition: od_iosfwd.h:20
ZipHandler::setEndOfCentralDirHeader
bool setEndOfCentralDirHeader(od_int64, od_uint32)
sKey::Maximum
FixedString Maximum()
Definition: keystrs.h:211
ZipHandler::lastmoddate_
od_uint16 lastmoddate_
Definition: ziphandler.h:170
ZipHandler::setLocalFileHeader
bool setLocalFileHeader()
ZipHandler::getArchiveInfo
bool getArchiveInfo(const char *, ObjectSet< ZipFileInfo > &)
ZipHandler::curfileidx_
int curfileidx_
Definition: ziphandler.h:165
ZipHandler::setLocalFileHeaderForLink
bool setLocalFileHeaderForLink()
ZipHandler::offsetoflocalheader_
od_stream_Pos offsetoflocalheader_
Definition: ziphandler.h:175
ZipHandler::doZCompress
bool doZCompress()
ZipHandler::setZIP64Header
bool setZIP64Header()
ZipHandler::setEndOfArchiveHeaders
bool setEndOfArchiveHeaders()
ZipHandler::istrm_
od_istream * istrm_
Definition: ziphandler.h:181
ZipFileInfo::compsize_
od_int64 compsize_
Definition: ziphandler.h:41
ZipHandler::openStrmToRead
int openStrmToRead(const char *src)
ZipHandler::setCompLevel
void setCompLevel(CompLevel)
ZipHandler::setTimeDateModified
bool setTimeDateModified(const char *, od_uint16, od_uint16) const
ZipHandler::closeOutputStream
void closeOutputStream()
ZipHandler::~ZipHandler
~ZipHandler()
ZipHandler::setBitValue
void setBitValue(unsigned char &byte, int bitposition, bool value) const
ZipHandler::reportReadError
bool reportReadError(const char *filenm=0) const
ZipHandler::getCumulativeFileCount
od_int64 getCumulativeFileCount() const
Definition: ziphandler.h:132
ZipHandler::timeInDosFormat
od_uint16 timeInDosFormat(const char *) const
ZipHandler::readZIP64EndOfCentralDirLocator
bool readZIP64EndOfCentralDirLocator()
ZipHandler::reportWriteError
bool reportWriteError(const char *filenm=0) const
ZipHandler::closeInputStream
void closeInputStream()
ZipHandler::crc_
od_uint32 crc_
Definition: ziphandler.h:172
ZipHandler::srcfnmsize_
od_uint16 srcfnmsize_
Definition: ziphandler.h:151
od_uint16
#define od_uint16
Definition: plftypes.h:27
ZipHandler::initAppend
bool initAppend(const char *, const char *)
ZipHandler::dateInDosFormat
od_uint16 dateInDosFormat(const char *) const
ZipHandler::reportStrmReadError
bool reportStrmReadError(od_istream *, const char *) const
ZipFileInfo::fnm_
BufferString fnm_
Definition: ziphandler.h:40
ZipHandler::setCentralDirHeader
bool setCentralDirHeader()
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
ZipHandler::initMakeZip
bool initMakeZip(const char *, const BufferStringSet &)
ZipHandler::complevel_
CompLevel complevel_
Definition: ziphandler.h:160
ZipHandler::getTotalSize
od_int64 getTotalSize() const
Definition: ziphandler.h:137
ZipHandler::readZIP64EndOfCentralDirRecord
bool readZIP64EndOfCentralDirRecord()
bufstringset.h
ZipHandler::CompLevel
CompLevel
Definition: ziphandler.h:60
ZipFileInfo
Zip file information.
Definition: ziphandler.h:27
ZipHandler::curnrlevels_
int curnrlevels_
Definition: ziphandler.h:162
od_iosfwd.h
ZipHandler::initialfilecount_
od_int64 initialfilecount_
Definition: ziphandler.h:166
ZipHandler::getFileList
bool getFileList(const char *, BufferStringSet &)
ZipHandler::setExtFileAttr
od_uint32 setExtFileAttr(od_uint32)
ZipHandler::unZipFile
bool unZipFile(const char *srcfnm, const char *fnm, const char *path)
ZipHandler::getAllFileNames
const BufferStringSet & getAllFileNames()
Definition: ziphandler.h:131
ZipHandler::compressNextFile
bool compressNextFile()
ZipHandler::compmethod_
od_uint16 compmethod_
Definition: ziphandler.h:159
ZipHandler::offsetofcentraldir_
od_stream_Pos offsetofcentraldir_
Definition: ziphandler.h:174
ZipHandler::destfile_
BufferString destfile_
Definition: ziphandler.h:154
ZipHandler::errormsg_
BufferString errormsg_
Definition: ziphandler.h:147
ZipHandler::doZUnCompress
bool doZUnCompress()
ZipHandler::readXtraFldForZIP64
bool readXtraFldForZIP64(const char *, int)
od_uint32
#define od_uint32
Definition: plftypes.h:31
ZipHandler::curinputidx_
int curinputidx_
Definition: ziphandler.h:164
UnZipper
It is an Executor class which uncompresses files of zip format but user should instead use ZipUtils::...
Definition: ziputils.h:121
od_ostream
OD class for stream write common access to the user log file, or std::cout in other than od_main.
Definition: od_ostream.h:26
ZipHandler::setZIP64EndOfDirLocator
bool setZIP64EndOfDirLocator(od_int64)
Zipper
It is an Executor class which compresses files into zip format but user should not use it directly in...
Definition: ziputils.h:91
ZipHandler::allfilenames_
BufferStringSet allfilenames_
Definition: ziphandler.h:148
ZipHandler::uncompfilesize_
od_int64 uncompfilesize_
Definition: ziphandler.h:157
TypeSet< od_int64 >
ZipHandler
Handles zipping and unzipping of files.
Definition: ziphandler.h:53

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2021