121 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
/*
 | 
						|
 * CMPOBJ.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 ALCompressedObject.
 | 
						|
 * 
 | 
						|
 * CLASS DEFINITIONS:
 | 
						|
 *
 | 
						|
 *  ALCompressedObject
 | 
						|
 *
 | 
						|
 * REVISION HISTORY
 | 
						|
 *
 | 
						|
 *  May 26, 1994  1.0A  : First release
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _CMPOBJ_H
 | 
						|
#define _CMPOBJ_H
 | 
						|
 | 
						|
#if defined( __cplusplus )
 | 
						|
 | 
						|
/*
 | 
						|
 * class ALCompressedObject
 | 
						|
 *
 | 
						|
 * DESCRIPTION
 | 
						|
 *
 | 
						|
 * This is the class definition for ALCompressedObject.  A compressed
 | 
						|
 * object is a very simple artifact that contains some compressed data,
 | 
						|
 * a checksum, and a couple of length variables.  No comments, no engine
 | 
						|
 * data, no archive data, nothing else.  This give this type of object
 | 
						|
 * a very low overhead.  It also assumes that when you create a compressed
 | 
						|
 * object using a storage object and a compression engine that you will
 | 
						|
 * know what type of storage object and compression engine to use when
 | 
						|
 * expanding it.
 | 
						|
 *
 | 
						|
 * If you decide you want to add some private data to your compressed
 | 
						|
 * object, it isn't hard.  Just derive a new class, and implement the
 | 
						|
 * two virtual functions defined here to read and write your own private
 | 
						|
 * data during compression and decompression.
 | 
						|
 *
 | 
						|
 * DATA MEMBERS
 | 
						|
 *
 | 
						|
 *  mpCompressionEngine  : A pointer to the compression engine that will
 | 
						|
 *                         be used by this object.  This is assigned when
 | 
						|
 *                         the object is created, and used to insert or
 | 
						|
 *                         extract objects.
 | 
						|
 *
 | 
						|
 *  mpStorageObject      : A pointer to the storage object where this
 | 
						|
 *                         object will live.
 | 
						|
 *
 | 
						|
 *  mStatus              : A standard ArchiveLib status object.
 | 
						|
 *
 | 
						|
 * MEMBER FUNCTIONS
 | 
						|
 *
 | 
						|
 *  ALCompressedObject()  : The only constructor for ALCompressedObject.
 | 
						|
 *  ~ALCompressedObject() : The virtual destructor.
 | 
						|
 *  operator new()        : Memory allocation operator, used in DLL only.
 | 
						|
 *  WriteHeaderData()     : Virtual function to allow for storage of
 | 
						|
 *                          customized data in the object header.
 | 
						|
 *  ReadHeaderData()      : The virtual complement to the previous function,
 | 
						|
 *                          lets you read in some customized data.
 | 
						|
 *  Insert()              : Insert a single storage object into the Compressed
 | 
						|
 *                          object.
 | 
						|
 *  Extract()             : Extract the storage object from the Compressed
 | 
						|
 *                          object.
 | 
						|
 *
 | 
						|
 * REVISION HISTORY
 | 
						|
 *
 | 
						|
 *  May 26, 1994  1.0A  : First release
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
class AL_CLASS_TYPE ALCompressedObject {
 | 
						|
/*
 | 
						|
 * Constructors, destructors, declarations, friends
 | 
						|
 */
 | 
						|
    public :
 | 
						|
        AL_PROTO ALCompressedObject( ALStorage AL_DLL_FAR & storage_object,
 | 
						|
                                     ALCompressionEngine AL_DLL_FAR & engine );
 | 
						|
        virtual AL_PROTO ~ALCompressedObject();
 | 
						|
#if defined( AL_USING_DLL ) || defined( AL_BUILDING_DLL )
 | 
						|
        void AL_DLL_FAR * AL_PROTO operator new( size_t size );
 | 
						|
#endif
 | 
						|
/*
 | 
						|
 * Define the copy constructor and assignment operator here, that way
 | 
						|
 * the compiler won't attempt to.
 | 
						|
 */
 | 
						|
    protected :
 | 
						|
        AL_PROTO ALCompressedObject( ALCompressedObject AL_DLL_FAR & );
 | 
						|
        ALCompressedObject AL_DLL_FAR & AL_PROTO operator = ( ALCompressedObject AL_DLL_FAR & );
 | 
						|
/*
 | 
						|
 * Member functions
 | 
						|
 */
 | 
						|
    protected :
 | 
						|
        virtual int AL_PROTO WriteHeaderData();
 | 
						|
        virtual int AL_PROTO ReadHeaderData();
 | 
						|
    public :
 | 
						|
        int AL_PROTO Insert( ALStorage AL_DLL_FAR &input_object );
 | 
						|
        int AL_PROTO Extract( ALStorage AL_DLL_FAR &output_object );
 | 
						|
/*
 | 
						|
 * Data members
 | 
						|
 */
 | 
						|
    protected :
 | 
						|
        ALCompressionEngine AL_DLL_FAR *mpCompressionEngine;
 | 
						|
        ALStorage AL_DLL_FAR *mpStorageObject;
 | 
						|
 | 
						|
    public :
 | 
						|
        ALStatus mStatus;
 | 
						|
        AL_CLASS_TAG( _ALCompressedObjectTag );
 | 
						|
};
 | 
						|
 | 
						|
#endif /* #if defined( __cplusplus ) */
 | 
						|
 | 
						|
#endif /* #ifdef _CMPOBJ_H           */
 |