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