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 */
|