1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
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
*/
/*
* class ALGreenleafEngine : public ALCompressionEngine
*
* DESCRIPTION
*
* ALGreenleaf Engine is the Greenleaf proprietary compression
* engine. Compression engines are simple, so there aren't
* too many functions. This class has two data members that
* are initialized in the constructor. One of them, the compression level,
* has to be saved with the data in order for decompression to work
* properly. It is saved and read with the virtual functions
* ReadEngineData() and WriteEngineData(), using a single short
* in the archive directory.
*
* DATA MEMBERS
*
* miCompressionLevel : This is the compression level that the
* compressor will attempt to use, selected
* from one of the five settings found in
* the enumerated type in ALDEFS.H. If the
* file is incompressible and the engine
* performs a straight binary copy this value
* changes to AL_GREENLEAF_COPY.
*
* miFailUncompressible : This data member is used to flag the
* action the compressor takes if a file
* turns out to be incompressible. If this
* member is set, the engine will stop compressing,
* seek back to the start of the file, and
* just copy the data. If this member is clear,
* we don't ever check to see if the file is
* compressing properly.
*
* MEMBER FUNCTIONS
*
* ALGreenleafEngine() : The constructor.
* ~ALGreenleafEngine() : The virtual destructor.
* operator new() : The memory allocation operator, which is
* only used when the library is in a DLL.
* WriteEngineData() : The virtual function that writes private
* configuration data. For this class, this
* function writes out a single short int
* containing the compression level.
* ReadEngineData() : The complement for the above function, used
* during extraction.
* Compress() : The routine that actually performs the
* compression.
* Decompress() : The routine that actually performs the
* decompression.
*
* REVISION HISTORY
*
* May 26, 1994 1.0A : First release
*
*/
class AL_CLASS_TYPE ALGreenleafEngine : public ALCompressionEngine ;
/* #ifdef __cplusplus */
/* #ifdef _GRENENGN_H */