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 _SPINNER_H
#define _SPINNER_H


#include "arclib.h"

#if defined( __cplusplus )

/*
 * class ALSpinner : public ALMonitor
 *
 * DESCRIPTION
 *
 *  ALSpinner is a very simple monitor class, and is only useful under
 *  DOS, not Windows.  All ALSpinner does is spin a little propellor
 *  around while the file is being processed.  This lets you know
 *  that something is happening in an otherwise boring process.
 *
 * DATA MEMBERS
 *
 *  miSpinIndex     : A Static variable that keeps track of which
 *                    position the propellor should be in.  The
 *                    propellor travels through one of four different
 *                    positions.
 *
 *  mrStream        : A reference to the stream that the propellor is
 *                    going to be written on.
 *
 * MEMBER FUNCTIONS
 *
 *  ALSpinner()         : The one and only constructor.
 *  ~ALSpinner()        : The virtual destructor.
 *  Progress()          : The routine that gets called to make the
 *                        propellor twitch.
 *  ArchiveOperation()  : The routine that gets called when archiving
 *                        starts, stops, etc.
 *
 * REVISION HISTORY
 *
 *  May 26, 1994  1.0A  : First release
 *
 */

class AL_CLASS_TYPE ALSpinner : public ALMonitor {
/*
 *  Constructors, destructors, and friend classes
 */
    public :
        AL_PROTO ALSpinner( ALMonitorType monitor_type,
                            std::ostream AL_DLL_FAR & stream = std::cout );
        virtual AL_PROTO ~ALSpinner();
#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 do not exist.
 */
    protected :
        AL_PROTO ALSpinner( const ALSpinner AL_DLL_FAR & );
        ALSpinner AL_DLL_FAR & AL_PROTO operator=( const ALSpinner AL_DLL_FAR & );
/*
 *  Member functions
 */
    protected :
        virtual void AL_PROTO Progress( long mlObjectSoFar,
                                        ALStorage AL_DLL_FAR & object );
        virtual void AL_PROTO ArchiveOperation( ALArchiveOperation operation,
                                                ALArchiveBase AL_DLL_FAR *archive,
                                                ALEntry AL_DLL_FAR *job );
/*
 * Data Members
 */
    protected :
        static int miSpinIndex;
        std::ostream AL_DLL_FAR & mrStream;
    public :
        AL_CLASS_TAG( _ALSpinnerTag );
};

#endif /* #if defined( __cplusplus ) */

#endif /* #ifdef SPINNER_H           */