714dd74636
git-svn-id: svn://10.65.10.50/trunk@5350 c028cbd2-c16b-5b4b-a496-9718f37d4682
205 lines
7.2 KiB
C++
Executable File
205 lines
7.2 KiB
C++
Executable File
/*
|
|
* ARCLIST.H
|
|
*
|
|
* Header file for ArchiveLib 2.0
|
|
*
|
|
* Copyright (c) 1994-1996 Greenleaf Software, Inc.
|
|
* All Rights Reserved
|
|
*
|
|
* DESCRIPTION
|
|
*
|
|
* This header file contains the definitions for class ALEntryList.
|
|
* ALEntryList objects contain lists of objects that are either going
|
|
* to be inserted into an archive, or already reside there.
|
|
*
|
|
* CLASS DEFINITIONS:
|
|
*
|
|
* ALEntryList : A description of entries in an Archive.
|
|
*
|
|
* REVISION HISTORY
|
|
*
|
|
* May 26, 1994 1.0A : First release
|
|
*
|
|
* February 14, 1996 2.0A : New release
|
|
*/
|
|
|
|
#ifndef _ARCLIST_H
|
|
#define _ARCLIST_H
|
|
|
|
#if defined( __cplusplus )
|
|
|
|
/*
|
|
* Forward declarations.
|
|
*/
|
|
|
|
class AL_CLASS_TYPE ALMonitor;
|
|
|
|
/*
|
|
* class ALEntryList
|
|
*
|
|
* DESCRIPTION
|
|
*
|
|
* This class is simply a list of ALEntry objects. There are
|
|
* quite a few member functions that operate on this list.
|
|
* ALEntryList objects are passed as arguments to many of the
|
|
* archive functions, such as ReadDirectory(), Create(), Extract(),
|
|
* and more.
|
|
*
|
|
* DATA MEMBERS
|
|
*
|
|
* mpListHead : The head of the list is a dummy entry that is a
|
|
* placeholder.
|
|
*
|
|
* &mrMonitor : A reference to the monitor associated with this list.
|
|
* The monitor will take care of generating all the
|
|
* user interface activity to go with this list.
|
|
*
|
|
* mToolKit : The toolkit that is used to create new compressors,
|
|
* decompressors, and storage objects as requested.
|
|
*
|
|
* mStatus : A standard status member, the status of the whole list.
|
|
*
|
|
* MEMBER FUNCTIONS
|
|
*
|
|
* ALEntryList() : The constructor
|
|
* ALEntryList() : Copy constructor
|
|
* ~ALEntryList() : The destructor.
|
|
* operator new() : Memory allocation for the class, only used
|
|
* when the ctor is in a DLL.
|
|
* SetMarkState() : Set the marks of items in the list to 1 or 0
|
|
* GetFirstEntry() : A list iterator function, starts the iteration
|
|
* SetMarks() : Set some of the marks in the list
|
|
* ClearMarks( : Clear some of the marks in the list
|
|
* DeleteUnmarked() : Delete list entries that aren't marked
|
|
* ToggleMarks() : Toggle every mark in the list
|
|
* UnmarkDuplicates() : Use this to avoid processing duplicates
|
|
* AddWildCardFiles() : Add a batch of files to the entry list
|
|
* ClearError() : Reset the mStatus member
|
|
* MakeEntriesFromListBox: Add a batch of files to the entry list
|
|
* FillListBox() : Fill a list box up with a list
|
|
* SetMarksFromListBox() : Use list feedback to set marks
|
|
*
|
|
* REVISION HISTORY
|
|
*
|
|
* May 26, 1994 1.0A : First release
|
|
*
|
|
* February 14, 1996 2.0: New release
|
|
*/
|
|
class AL_CLASS_TYPE ALEntryList { /* Tag public class */
|
|
/*
|
|
* Constructors, destructors, friends
|
|
*/
|
|
friend class AL_CLASS_TYPE ALEntry;
|
|
|
|
public :
|
|
AL_PROTO ALEntryList( ALMonitor AL_DLL_FAR * = 0,
|
|
ALToolKit toolkit = FullTools() );
|
|
AL_PROTO ~ALEntryList();
|
|
#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 are not supported. I
|
|
* declare them here because I don't want the compiler to generate
|
|
* default versions for me.
|
|
*/
|
|
protected :
|
|
AL_PROTO operator=( ALEntryList AL_DLL_FAR & );
|
|
/*
|
|
* Warning! ALEntryList is one of the few objects in archivelib that
|
|
* has a copy constructor. I need this in a few of the archiving
|
|
* routines, because I have to make a new list that will hold all of
|
|
* the current entries in an archive.
|
|
*/
|
|
|
|
public :
|
|
AL_PROTO ALEntryList( ALEntryList AL_DLL_FAR & );
|
|
/*
|
|
* Member Functions
|
|
*/
|
|
protected :
|
|
int AL_PROTO SetMarkState( const char AL_DLL_FAR *name, short int state );
|
|
|
|
public :
|
|
ALEntry AL_DLL_FAR * AL_PROTO GetFirstEntry();
|
|
int AL_PROTO SetMarks( const char AL_DLL_FAR *pattern = 0 );
|
|
int AL_PROTO ClearMarks( const char AL_DLL_FAR *pattern = 0 );
|
|
int AL_PROTO DeleteUnmarked();
|
|
int AL_PROTO ToggleMarks();
|
|
void AL_PROTO UnmarkDuplicates( ALEntryList AL_DLL_FAR &list,
|
|
const char AL_DLL_FAR *error_message = 0 );
|
|
int AL_PROTO AddWildCardFiles( const char AL_DLL_FAR *pattern = "*.*",
|
|
int traverse_flag = 0 );
|
|
void AL_PROTO ClearError();
|
|
/*
|
|
* A windows utility function
|
|
*/
|
|
#if defined( AL_WINDOWS ) || defined( AL_OS2 )
|
|
int AL_PROTO MakeEntriesFromListBox( HWND hDlg, int list_box_id = -1 );
|
|
int AL_PROTO FillListBox( HWND hDlg, int list_box_id = -1 );
|
|
int AL_PROTO SetMarksFromListBox( HWND hDlg, int list_box_id = -1 );
|
|
#endif
|
|
public :
|
|
/*
|
|
* Data members
|
|
*/
|
|
protected :
|
|
ALEntry *mpListHead; /* The head is never used */
|
|
|
|
public :
|
|
ALMonitor AL_DLL_FAR &mrMonitor;
|
|
ALToolKit mToolKit;
|
|
ALStatus mStatus;
|
|
AL_CLASS_TAG( _ALEntryListTag );
|
|
};
|
|
|
|
#include "arclist.inl"
|
|
|
|
#else /* #if defined( __cplusplus ) */
|
|
|
|
AL_LINKAGE hALEntryList AL_FUNCTION
|
|
newALEntryList( hALMonitor monitor, hALToolKit toolkit );
|
|
AL_LINKAGE int AL_FUNCTION
|
|
ALEntryListAddWildCardFiles( hALEntryList this_object,
|
|
char AL_DLL_FAR *pattern,
|
|
int traverse );
|
|
AL_LINKAGE void AL_FUNCTION ALEntryListClearError( hALEntryList this_object );
|
|
AL_LINKAGE int AL_FUNCTION ALEntryListSetMarks( hALEntryList this_object,
|
|
char AL_DLL_FAR *wild_name );
|
|
AL_LINKAGE int AL_FUNCTION ALEntryListClearMarks( hALEntryList this_object,
|
|
char AL_DLL_FAR *wild_name );
|
|
AL_LINKAGE void AL_FUNCTION deleteALEntryList( hALEntryList this_object );
|
|
AL_LINKAGE hALEntry AL_FUNCTION ALEntryListGetFirstEntry( hALEntryList this_object );
|
|
AL_LINKAGE int AL_FUNCTION ALEntryListDeleteUnmarked( hALEntryList this_object );
|
|
AL_LINKAGE int AL_FUNCTION ALEntryListToggleMarks( hALEntryList this_object );
|
|
AL_LINKAGE void AL_FUNCTION
|
|
ALEntryListUnmarkDuplicates( hALEntryList this_object,
|
|
hALEntryList list,
|
|
char AL_DLL_FAR *error_message );
|
|
AL_LINKAGE int AL_FUNCTION
|
|
ALEntryListGetStatusCode( hALEntryList this_object );
|
|
AL_LINKAGE char AL_DLL_FAR * AL_FUNCTION
|
|
ALEntryListGetStatusString( hALEntryList this_object );
|
|
AL_LINKAGE char AL_DLL_FAR * AL_FUNCTION
|
|
ALEntryListGetStatusDetail( hALEntryList this_object );
|
|
|
|
#if defined( AL_OS2 ) || defined( AL_WINDOWS )
|
|
|
|
AL_LINKAGE int AL_FUNCTION
|
|
ALEntryListSetMarksFromListBox( hALEntryList this_object, HWND hDlg, int list_box_id );
|
|
AL_LINKAGE int AL_FUNCTION
|
|
ALEntryListFillListBox( hALEntryList this_object,
|
|
HWND hDlg,
|
|
int list_box_id );
|
|
AL_LINKAGE int AL_FUNCTION
|
|
ALEntryListMakeEntriesFromListBox( hALEntryList this_object,
|
|
HWND hDlg,
|
|
int list_box_id );
|
|
|
|
#endif
|
|
|
|
#endif /* #if defined( __cplusplus ) */
|
|
|
|
#endif /* #ifdef _ARCLIST_H */
|
|
|