comparison tango/tango/io/compress/c/bzlib.d @ 132:1700239cab2e trunk

[svn r136] MAJOR UNSTABLE UPDATE!!! Initial commit after moving to Tango instead of Phobos. Lots of bugfixes... This build is not suitable for most things.
author lindquist
date Fri, 11 Jan 2008 17:57:40 +0100
parents
children
comparison
equal deleted inserted replaced
131:5825d48b27d1 132:1700239cab2e
1 /* Converted to D from bzlib.h by htod */
2
3 module tango.io.compress.c.bzlib;
4
5 /*-------------------------------------------------------------*/
6 /*--- Public header file for the library. ---*/
7 /*--- bzlib.h ---*/
8 /*-------------------------------------------------------------*/
9
10 /* ------------------------------------------------------------------
11 This file is part of bzip2/libbzip2, a program and library for
12 lossless, block-sorting data compression.
13
14 bzip2/libbzip2 version 1.0.4 of 20 December 2006
15 Copyright (C) 1996-2006 Julian Seward <jseward@bzip.org>
16
17 Please read the WARNING, DISCLAIMER and PATENTS sections in the
18 README file.
19
20 This program is released under the terms of the license contained
21 in the file LICENSE.
22 ------------------------------------------------------------------ */
23
24 extern(C):
25
26 const BZ_RUN = 0;
27 const BZ_FLUSH = 1;
28 const BZ_FINISH = 2;
29
30 const BZ_OK = 0;
31 const BZ_RUN_OK = 1;
32 const BZ_FLUSH_OK = 2;
33 const BZ_FINISH_OK = 3;
34 const BZ_STREAM_END = 4;
35 const BZ_SEQUENCE_ERROR = -1;
36 const BZ_PARAM_ERROR = -2;
37 const BZ_MEM_ERROR = -3;
38 const BZ_DATA_ERROR = -4;
39 const BZ_DATA_ERROR_MAGIC = -5;
40 const BZ_IO_ERROR = -6;
41 const BZ_UNEXPECTED_EOF = -7;
42 const BZ_OUTBUFF_FULL = -8;
43 const BZ_CONFIG_ERROR = -9;
44
45 struct bz_stream
46 {
47 ubyte *next_in;
48 uint avail_in;
49 uint total_in_lo32;
50 uint total_in_hi32;
51 ubyte *next_out;
52 uint avail_out;
53 uint total_out_lo32;
54 uint total_out_hi32;
55 void *state;
56 void * function(void *, int , int )bzalloc;
57 void function(void *, void *)bzfree;
58 void *opaque;
59 }
60
61 import tango.stdc.stdio : FILE;
62
63 /*-- Core (low-level) library functions --*/
64
65 //C BZ_EXTERN int BZ_API(BZ2_bzCompressInit) (
66 //C bz_stream* strm,
67 //C int blockSize100k,
68 //C int verbosity,
69 //C int workFactor
70 //C );
71 extern (Windows):
72 int BZ2_bzCompressInit(bz_stream *strm, int blockSize100k, int verbosity, int workFactor);
73
74 //C BZ_EXTERN int BZ_API(BZ2_bzCompress) (
75 //C bz_stream* strm,
76 //C int action
77 //C );
78 int BZ2_bzCompress(bz_stream *strm, int action);
79
80 //C BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) (
81 //C bz_stream* strm
82 //C );
83 int BZ2_bzCompressEnd(bz_stream *strm);
84
85 //C BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) (
86 //C bz_stream *strm,
87 //C int verbosity,
88 //C int small
89 //C );
90 int BZ2_bzDecompressInit(bz_stream *strm, int verbosity, int small);
91
92 //C BZ_EXTERN int BZ_API(BZ2_bzDecompress) (
93 //C bz_stream* strm
94 //C );
95 int BZ2_bzDecompress(bz_stream *strm);
96
97 //C BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) (
98 //C bz_stream *strm
99 //C );
100 int BZ2_bzDecompressEnd(bz_stream *strm);
101
102
103
104 /*-- High(er) level library functions --*/
105
106 version(BZ_NO_STDIO){}else{
107
108 const BZ_MAX_UNUSED = 5000;
109 alias void BZFILE;
110
111 //C BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) (
112 //C int* bzerror,
113 //C FILE* f,
114 //C int verbosity,
115 //C int small,
116 //C void* unused,
117 //C int nUnused
118 //C );
119 extern (Windows):
120 BZFILE * BZ2_bzReadOpen(int *bzerror, FILE *f, int verbosity, int small, void *unused, int nUnused);
121
122 //C BZ_EXTERN void BZ_API(BZ2_bzReadClose) (
123 //C int* bzerror,
124 //C BZFILE* b
125 //C );
126 void BZ2_bzReadClose(int *bzerror, BZFILE *b);
127
128 //C BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) (
129 //C int* bzerror,
130 //C BZFILE* b,
131 //C void** unused,
132 //C int* nUnused
133 //C );
134 void BZ2_bzReadGetUnused(int *bzerror, BZFILE *b, void **unused, int *nUnused);
135
136 //C BZ_EXTERN int BZ_API(BZ2_bzRead) (
137 //C int* bzerror,
138 //C BZFILE* b,
139 //C void* buf,
140 //C int len
141 //C );
142 int BZ2_bzRead(int *bzerror, BZFILE *b, void *buf, int len);
143
144 //C BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) (
145 //C int* bzerror,
146 //C FILE* f,
147 //C int blockSize100k,
148 //C int verbosity,
149 //C int workFactor
150 //C );
151 BZFILE * BZ2_bzWriteOpen(int *bzerror, FILE *f, int blockSize100k, int verbosity, int workFactor);
152
153 //C BZ_EXTERN void BZ_API(BZ2_bzWrite) (
154 //C int* bzerror,
155 //C BZFILE* b,
156 //C void* buf,
157 //C int len
158 //C );
159 void BZ2_bzWrite(int *bzerror, BZFILE *b, void *buf, int len);
160
161 //C BZ_EXTERN void BZ_API(BZ2_bzWriteClose) (
162 //C int* bzerror,
163 //C BZFILE* b,
164 //C int abandon,
165 //C unsigned int* nbytes_in,
166 //C unsigned int* nbytes_out
167 //C );
168 void BZ2_bzWriteClose(int *bzerror, BZFILE *b, int abandon, uint *nbytes_in, uint *nbytes_out);
169
170 //C BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) (
171 //C int* bzerror,
172 //C BZFILE* b,
173 //C int abandon,
174 //C unsigned int* nbytes_in_lo32,
175 //C unsigned int* nbytes_in_hi32,
176 //C unsigned int* nbytes_out_lo32,
177 //C unsigned int* nbytes_out_hi32
178 //C );
179 void BZ2_bzWriteClose64(int *bzerror, BZFILE *b, int abandon, uint *nbytes_in_lo32, uint *nbytes_in_hi32, uint *nbytes_out_lo32, uint *nbytes_out_hi32);
180
181 }
182
183 /*-- Utility functions --*/
184
185 //C BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) (
186 //C char* dest,
187 //C unsigned int* destLen,
188 //C char* source,
189 //C unsigned int sourceLen,
190 //C int blockSize100k,
191 //C int verbosity,
192 //C int workFactor
193 //C );
194 int BZ2_bzBuffToBuffCompress(char *dest, uint *destLen, char *source, uint sourceLen, int blockSize100k, int verbosity, int workFactor);
195
196 //C BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) (
197 //C char* dest,
198 //C unsigned int* destLen,
199 //C char* source,
200 //C unsigned int sourceLen,
201 //C int small,
202 //C int verbosity
203 //C );
204 int BZ2_bzBuffToBuffDecompress(char *dest, uint *destLen, char *source, uint sourceLen, int small, int verbosity);
205
206
207 /*--
208 Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
209 to support better zlib compatibility.
210 This code is not _officially_ part of libbzip2 (yet);
211 I haven't tested it, documented it, or considered the
212 threading-safeness of it.
213 If this code breaks, please contact both Yoshioka and me.
214 --*/
215
216 //C BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
217 //C void
218 //C );
219 char * BZ2_bzlibVersion();
220
221 version(BZ_NO_STDIO){}else{
222
223 //C BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) (
224 //C const char *path,
225 //C const char *mode
226 //C );
227 BZFILE * BZ2_bzopen(char *path, char *mode);
228
229 //C BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
230 //C int fd,
231 //C const char *mode
232 //C );
233 BZFILE * BZ2_bzdopen(int fd, char *mode);
234
235 //C BZ_EXTERN int BZ_API(BZ2_bzread) (
236 //C BZFILE* b,
237 //C void* buf,
238 //C int len
239 //C );
240 int BZ2_bzread(BZFILE *b, void *buf, int len);
241
242 //C BZ_EXTERN int BZ_API(BZ2_bzwrite) (
243 //C BZFILE* b,
244 //C void* buf,
245 //C int len
246 //C );
247 int BZ2_bzwrite(BZFILE *b, void *buf, int len);
248
249 //C BZ_EXTERN int BZ_API(BZ2_bzflush) (
250 //C BZFILE* b
251 //C );
252 int BZ2_bzflush(BZFILE *b);
253
254 //C BZ_EXTERN void BZ_API(BZ2_bzclose) (
255 //C BZFILE* b
256 //C );
257 void BZ2_bzclose(BZFILE *b);
258
259 //C BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
260 //C BZFILE *b,
261 //C int *errnum
262 //C );
263 char * BZ2_bzerror(BZFILE *b, int *errnum);
264
265 }
266
267 /*-------------------------------------------------------------*/
268 /*--- end bzlib.h ---*/
269 /*-------------------------------------------------------------*/