archivelib-sys 0.2.0

An implementaton(in C++) of the Greenleaf ArchiveLib compression/decompression algorithm
Documentation
/*
Copyright 1990-2008 Light Infocon Tecnologia S/A

Este arquivo é parte do programa LightBase - Banco de Dados Textual Documental

O LightBase é um software livre; você pode redistribui-lo e/ou modifica-lo dentro
dos termos da Licença Pública Geral GNU como publicada pela Fundação do Software
Livre (FSF); na versão 2 da Licença.

Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA
GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO
EM PARTICULAR. Veja a Licença Pública Geral GNU para maiores detalhes.

Você deve ter recebido uma cópia da Licença Pública Geral GNU versao 2, sob o
título "LICENCA.txt", junto com este programa, se não, escreva para a Fundação do
Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/


#ifndef __OPENF_H
#define __OPENF_H


#include "arclib.h"

/*
 * class ALOpenInputFile
 *
 * DESCRIPTION
 *
 *  This is a utility class.  The constructor opens a file for input,
 *  and keeps track of whether it was already open or not.  The destructor
 *  will automatically close the file if it was closed when the
 *  ctor was invoked.
 *
 * DATA MEMBERS
 *
 * miFileWasOpen   : The flag that keeps track of the file's state
 *                   at the start of the routine.
 *
 * mpFile          : A pointer to the file, so we can close it in the dtor.
 *
 * MEMBER FUNCTIONS
 *
 *  ALOpenInputFile   : The constructor, opens the file.
 *  ~ALOpenInputFile  : The destructor, can close the file.
 *  operator new      : This operator is used in the Win16
 *                      DLL version of ArchiveLib.
 *
 * REVISION HISTORY
 *
 *  May 26, 1994  1.0A  : First release
 *
 */

class AL_CLASS_TYPE ALOpenInputFile {
    public :
        AL_PROTO ALOpenInputFile( ALStorage AL_DLL_FAR &file );
        AL_PROTO ~ALOpenInputFile();
#if defined( AL_BUILDING_DLL ) || defined( AL_USING_DLL )
        void AL_DLL_FAR * AL_PROTO operator new( size_t size );
#endif
/*
 * Prevent the compiler from generating these members.
 */
    protected :
        AL_PROTO ALOpenInputFile( ALOpenInputFile AL_DLL_FAR &);
        ALOpenInputFile AL_DLL_FAR & operator=( ALOpenInputFile AL_DLL_FAR & );
    protected :
        int miFileWasOpen;
        ALStorage AL_DLL_FAR *mpFile;
};

/*
 * class ALOpenOutputFile
 *
 * DESCRIPTION
 *
 *  This is a utility class.  The constructor opens a file for output,
 *  and keeps track of whether it was already open or not.  The destructor
 *  will automatically close the file if it was closed when the
 *  ctor was invoked.
 *
 * DATA MEMBERS
 *
 * miFileWasOpen   : The flag that keeps track of the file's state
 *                   at the start of the routine.
 *
 * mpFile          : A pointer to the file, so we can close it in the dtor.
 *
 * MEMBER FUNCTIONS
 *
 *  ALOpenOutputFile   : The constructor, opens the file.
 *  ~ALOpenOutputFile  : The destructor, can close the file.
 *  operator new       : This operator is used in the Win16
 *                       DLL version of ArchiveLib.
 *
 * REVISION HISTORY
 *
 *  May 26, 1994  1.0A  : First release
 *
 */

class AL_CLASS_TYPE ALOpenOutputFile {
    public :
        AL_PROTO ALOpenOutputFile( ALStorage AL_DLL_FAR &file );
        AL_PROTO ~ALOpenOutputFile();
#if defined( AL_USING_DLL ) || defined( AL_BUILDING_DLL )
        void AL_DLL_FAR * AL_PROTO operator new( size_t size );
#endif
/*
 * Prevent the compiler from generating these members.
 */
    protected :
        AL_PROTO ALOpenOutputFile( ALOpenOutputFile AL_DLL_FAR &);
        ALOpenOutputFile AL_DLL_FAR & operator=( ALOpenOutputFile AL_DLL_FAR & );
    protected :
        int miFileWasOpen;
        ALStorage AL_DLL_FAR *mpFile;
};

/*
 * class ALOpenFiles
 *
 * DESCRIPTION
 *
 *  This is a utility class.  The constructor opens the first file for
 *  input, and the second for output.  It does so using the previous
 *  two classes, so it doesn't have to keep track of anything.
 *
 * DATA MEMBERS
 *
 *  mInputFile     : The input file open object.  It does all the work
 *                   related to the input file.
 *
 *  mOutputFile    : The output file open object.  It does all the work
 *                   related to the output file.
 *
 * MEMBER FUNCTIONS
 *
 *  ALOpenFiles   : The constructor, opens both files.
 *
 *  ~ALOpenFiles  : The destructor, can close one or both files.
 *
 *  operator new  : This operator is used in the Win16
 *                  DLL version of ArchiveLib.
 *
 * REVISION HISTORY
 *
 *  May 26, 1994  1.0A  : First release
 *
 */

class AL_CLASS_TYPE ALOpenFiles {
    public :
        AL_PROTO ALOpenFiles( ALStorage AL_DLL_FAR &input,
                              ALStorage AL_DLL_FAR &output );
        AL_PROTO ~ALOpenFiles();
#if defined( AL_USING_DLL ) || defined( AL_BUILDING_DLL )
        void AL_DLL_FAR * AL_PROTO operator new( size_t size );
#endif
/*
 * Prevent the compiler from generating these members.
 */
    protected :
        AL_PROTO ALOpenFiles( ALOpenFiles AL_DLL_FAR & );
        ALOpenFiles AL_DLL_FAR & operator=( ALOpenFiles AL_DLL_FAR & );
    protected :
        ALOpenInputFile mInputFile;
        ALOpenOutputFile mOutputFile;
};

#endif /* #ifndef __OPENF_H */