152 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| /*
 | |
|  * PKARC.H
 | |
|  *
 | |
|  *  Header file for ArchiveLib 2.0
 | |
|  *
 | |
|  *  Copyright (c) 1994-1996 Greenleaf Software, Inc.
 | |
|  *  All Rights Reserved
 | |
|  *
 | |
|  * DESCRIPTION
 | |
|  *
 | |
|  *  This header file contains the class definition for class
 | |
|  *  ALPkArchive.
 | |
|  *
 | |
|  * CLASS DEFINITIONS:
 | |
|  *
 | |
|  *  ALPkArchive
 | |
|  *
 | |
|  * REVISION HISTORY
 | |
|  *
 | |
|  *  February 14, 1996  2.0A : New release
 | |
|  */
 | |
| 
 | |
| #ifndef _PKARC_H
 | |
| #define _PKARC_H
 | |
| 
 | |
| #if defined( __cplusplus )
 | |
| 
 | |
| /*
 | |
|  * class ALPkArchive
 | |
|  *
 | |
|  * DESCRIPTION
 | |
|  *
 | |
|  * ALPkArchive defines the interface to PKWare archive objects, on disk,
 | |
|  * memory, or whatever. It is a derived class that is a sibling to ALGlArchive.
 | |
|  * Most of the interface to this archive class is defined in the base
 | |
|  * class.
 | |
|  *
 | |
|  * DATA MEMBERS
 | |
|  *
 | |
|  *  mlStartOfCentralDir  : An offset in the archive to the start of
 | |
|  *                         the central directory.
 | |
|  *
 | |
|  *  mEcd                 : A copy of the End-Of-Central-Directory record,
 | |
|  *                         as found in the ZIP file.
 | |
|  *
 | |
|  * MEMBER FUNCTIONS
 | |
|  *
 | |
|  *  ALPkArchive()              : Construct from a storage object
 | |
|  *  ALPkArchive()              : Construct from a named ALFile object
 | |
|  *  ~ALPkArchive()             : The virtual destructor.
 | |
|  *  operator new()             : Memory allocation operator used when
 | |
|  *                               the library is in a DLL
 | |
|  *  ReadEcd()                  : Function used to read in the
 | |
|  *                               End-Of-Central-Directory record, mEcd.
 | |
|  *  LocateEcd)(                : Locates the ECD by stumbling around near
 | |
|  *                               the end of the file.
 | |
|  *  AddJobs()                  : Virtual function that adds new objects
 | |
|  *                               to the PKWare archive.
 | |
|  *  WriteArchiveData()         : Called by the base class to write archive
 | |
|  *                               specific data.
 | |
|  *  ReadArchiveData()          : Called by the base class to read archive
 | |
|  *                               specific data.
 | |
|  *  PreCompress()              : Virtual function called by the base class
 | |
|  *                               before compressing an object.
 | |
|  *  PostCompress()             : Virtual function called by the base class
 | |
|  *                               after compressing an object.
 | |
|  *  PreDecompress()            : Virtual function called by the base class
 | |
|  *                               before decompressing an object.
 | |
|  *  PreWriteDir()              : Virtual function called by the base class
 | |
|  *                               before writing the directory information
 | |
|  *                               to the storage object.
 | |
|  *  WriteDirEntry()            : Virtual function called by the base class
 | |
|  *                               to write an entry in a directory.
 | |
|  *  PostWriteDir()             : Virtual function called by the base class
 | |
|  *                               after writing all the directory entries.
 | |
|  *  PreCopyInput()             : Virtual function called by the base class
 | |
|  *                               before copying a compressed file.
 | |
|  *  ReadDirectory()            : Virtual function that reads in the entire
 | |
|  *                               ZIP file directory.
 | |
|  *
 | |
|  * REVISION HISTORY
 | |
|  *
 | |
|  *  May 26, 1994  1.0A  : First release
 | |
|  *
 | |
|  *  February 14, 1996  2.0A : New release
 | |
|  */
 | |
| class AL_CLASS_TYPE ALPkArchive : public ALArchive {  /* Tag public class */
 | |
| /*
 | |
|  * Constructors, destructors, declarations, and friends
 | |
|  */
 | |
|     protected :
 | |
|     public :
 | |
|         AL_PROTO ALPkArchive( ALStorage AL_DLL_FAR & );
 | |
|         AL_PROTO ALPkArchive( const char AL_DLL_FAR *file_name );
 | |
|         virtual AL_PROTO ~ALPkArchive();
 | |
| #if defined( AL_USING_DLL ) || defined( AL_BUILDING_DLL )
 | |
|         void AL_DLL_FAR * AL_PROTO operator new( size_t size );
 | |
| #endif
 | |
| 
 | |
| /* The copy constructor and assignment operator do not exist. */
 | |
|     protected :
 | |
|         AL_PROTO ALPkArchive( const ALPkArchive AL_DLL_FAR & );
 | |
|         ALPkArchive AL_DLL_FAR & AL_PROTO operator=( ALPkArchive AL_DLL_FAR &rhs );
 | |
| /*
 | |
|  * Member functions
 | |
|  */
 | |
|     protected :
 | |
|         int AL_PROTO ALPkArchive::ReadEcd();
 | |
|         int AL_PROTO ALPkArchive::LocateEcd();
 | |
|         int AL_PROTO AddJobs( ALEntryList AL_DLL_FAR & list );
 | |
|         virtual int AL_PROTO WriteArchiveData();
 | |
|         virtual int AL_PROTO ReadArchiveData();
 | |
|         virtual void AL_PROTO PreCompress( ALEntry AL_DLL_FAR &entry );
 | |
|         virtual void AL_PROTO PostCompress( ALEntry AL_DLL_FAR &entry );
 | |
|         virtual void AL_PROTO PreDecompress( ALEntry AL_DLL_FAR &entry );
 | |
|         virtual void AL_PROTO PreWriteDir();
 | |
|         virtual void AL_PROTO WriteDirEntry( ALEntry AL_DLL_FAR &entry );
 | |
|         virtual void AL_PROTO PostWriteDir();
 | |
|         virtual void AL_PROTO PreCopyInput( ALEntry AL_DLL_FAR &entry );
 | |
| /*
 | |
|  * These functions provide the public API to an archive
 | |
|  */
 | |
|     public :
 | |
|         virtual int AL_PROTO ReadDirectory( ALEntryList AL_DLL_FAR &list );
 | |
| /*
 | |
|  * Some protected data members
 | |
|  */
 | |
|     protected :
 | |
|         struct AL_CLASS_TYPE {  /* Tag protected class */
 | |
|             long mlOffset;
 | |
|             short int muThisDiskNumber;
 | |
|             short int muStartCentralDirDiskNumber;
 | |
|             short int muThisDiskCentralDirEntries;
 | |
|             short int muTotalCentralDirEntries;
 | |
|             long mlSizeCentralDir;
 | |
|         } mEcd;
 | |
|         long mlStartOfCentralDir;
 | |
|     public :
 | |
|         AL_CLASS_TAG( _ALPkArchiveTag );
 | |
| };
 | |
| 
 | |
| #else /* #if defined( __cplusplus ) ... */
 | |
| 
 | |
| AL_LINKAGE hALArchive AL_FUNCTION
 | |
| newALPkArchiveFromStorage( hALStorage storage );
 | |
| AL_LINKAGE hALArchive AL_FUNCTION
 | |
| newALPkArchive( char AL_DLL_FAR *name );
 | |
| 
 | |
| #endif /* #if defined( __cplusplus ) ... #else ... */
 | |
| 
 | |
| #endif /* #ifndef _PKARC_H         */
 |