136 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| /*
 | |
|  * ARCHIVE.H
 | |
|  *
 | |
|  *  Header file for ArchiveLib 1.0
 | |
|  *
 | |
|  *  Copyright (c) 1994 Greenleaf Software, Inc.
 | |
|  *  All Rights Reserved
 | |
|  *
 | |
|  * DESCRIPTION
 | |
|  *
 | |
|  *  This header file contains the class definition for ALArchive, the
 | |
|  *  standard archiving class derived from ALArchiveBase.
 | |
|  * 
 | |
|  * ALArchive is the default archive class used in the
 | |
|  * library.  The base class, ALArchiveBase, doesn't know which storage
 | |
|  * objects and compression engines to use when extracting files.  (This is so
 | |
|  * you don't have to link in *every* storage and compression class if
 | |
|  * you want to create your own archive class).  This derived class
 | |
|  * takes care of creating two different storage types, ALFile and
 | |
|  * ALMemory.  It knows how to create two different types of
 | |
|  * compression engines also: ALGreenleafEngine and ALCopyEngine.  All
 | |
|  * of this is the result of the two virtual functions that override
 | |
|  * the base class: CreateCompressionEngine() and CreateStorageObject().
 | |
|  *
 | |
|  * CLASS DEFINITIONS:
 | |
|  *
 | |
|  *  class ALArchive 
 | |
|  *
 | |
|  * REVISION HISTORY
 | |
|  *
 | |
|  *  May 26, 1994  1.0A  : First release
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #ifndef _ARCHIVE_H
 | |
| #define _ARCHIVE_H
 | |
| 
 | |
| #include "arclib.h"
 | |
| 
 | |
| #if defined( __cplusplus )
 | |
| 
 | |
| #include "filestor.h"
 | |
| #include "grenengn.h"
 | |
| 
 | |
| /*
 | |
|  * class ALArchive : public ALArchiveBase 
 | |
|  *
 | |
|  * DESCRIPTION
 | |
|  *
 | |
|  *  ALArchive is a class derived from ALArchiveBase.  It is the
 | |
|  *  class we use most often for standard archiving use.
 | |
|  *
 | |
|  * DATA MEMBERS
 | |
|  *
 | |
|  *  None.
 | |
|  *
 | |
|  * MEMBER FUNCTIONS
 | |
|  *
 | |
|  *  ALArchive(char *)          : A constructor that creates the storage
 | |
|  *                               object for you.
 | |
|  *  ALArchive(ALStorage&)      : Constructor using a storage object that
 | |
|  *                               you have created.
 | |
|  *  ~ALArchive()               : Virtual destructor.
 | |
|  *  operator new()             : Memory allocation when inside a DLL.
 | |
|  *  CreateCompressionEngine()  : Virtual function that knows how to make
 | |
|  *                               ALCopyEngine and ALGreenleafEngine engines.
 | |
|  *  CreateStorageObject()      : Virtual function that knows how to make
 | |
|  *                               ALFile and ALMemory objects.
 | |
|  *  AddWildCardFiles()         : A static function used to create
 | |
|  *                               new ALEntry objects, and add them to an
 | |
|  *                               ALEntryList object.
 | |
|  *  MakeEntriesFromListBox()   : A second static function used to create
 | |
|  *                               new ALEntry objects and add them to an
 | |
|  *                               ALEntryList object.
 | |
|  *
 | |
|  * REVISION HISTORY
 | |
|  *
 | |
|  *  May 26, 1994  1.0A  : First release
 | |
|  *
 | |
|  */
 | |
| 
 | |
| class AL_CLASS_TYPE ALArchive : public ALArchiveBase {
 | |
| /*
 | |
|  * Constructors, destructors, declarations
 | |
|  */
 | |
|     public :
 | |
|         AL_PROTO ALArchive( const char AL_DLL_FAR *file_name );
 | |
|         AL_PROTO ALArchive( ALStorage AL_DLL_FAR &object );
 | |
|         virtual AL_PROTO ~ALArchive();
 | |
| #if defined( AL_USING_DLL ) || defined( AL_BUILDING_DLL )
 | |
|         void AL_DLL_FAR * AL_PROTO operator new( size_t size );
 | |
| #endif
 | |
| /*
 | |
|  * As usual, I prohibit the copy constructor and assignment operator.
 | |
|  * They are declared here but they don't exist.
 | |
|  */
 | |
|     protected :
 | |
|         AL_PROTO ALArchive( ALArchive AL_DLL_FAR & );
 | |
|         ALArchive AL_DLL_FAR & AL_PROTO operator=( ALArchive AL_DLL_FAR & );
 | |
| /*
 | |
|  * Member Functions
 | |
|  *
 | |
|  * Note, these guys are used inside the Archive class for extraction.
 | |
|  * The may be better off protected.
 | |
|  */
 | |
|     public :
 | |
|         virtual ALCompressionEngine AL_DLL_FAR * AL_PROTO CreateCompressionEngine( int engine_type );
 | |
|         virtual ALStorage AL_DLL_FAR * AL_PROTO CreateStorageObject( const char AL_DLL_FAR *name, int object_type );
 | |
| 
 | |
|     public :
 | |
| /*
 | |
|  * These two member functions are both static.  They are in this class
 | |
|  * to take advantage of this classes knowledge of how to create 
 | |
|  * ALFile and ALGreenleafEngine objects.  They are used to create
 | |
|  * new ALEntry objects.  It would be good in a future release to
 | |
|  * change their names to be more uniform.
 | |
|  */
 | |
|         static int AL_PROTO
 | |
|         AddWildCardFiles( ALEntryList AL_DLL_FAR & list,
 | |
|                           const char AL_DLL_FAR *pattern = "*.*",
 | |
|                           int traverse_flag = 0,
 | |
|                           short int compression_level = AL_GREENLEAF_LEVEL_2 );
 | |
| #if defined( AL_WINDOWS_GUI )
 | |
|         static int AL_PROTO MakeEntriesFromListBox( ALEntryList AL_DLL_FAR &list, HWND hDlg, int list_box = -1 );
 | |
| #endif
 | |
| /*
 | |
|  * Data members, hey there aren't any!
 | |
|  */
 | |
|     public :
 | |
|         AL_CLASS_TAG( _ALArchiveTag );
 | |
| };
 | |
| 
 | |
| #endif /* #if defined( __cplusplus ) */
 | |
| 
 | |
| #endif /* #ifndef _ARCHIVE_H        */
 |