]>
cygwin.com Git - cygwin-apps/setup.git/blob - compress_lzma.h
2 * Copyright (c) 2008, Charles Wilson
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * A copy of the GNU General Public License can be found at
12 * Written by Charles Wilson <cygwin@cygwin.com>
16 #ifndef SETUP_COMPRESS_LZMA_H
17 #define SETUP_COMPRESS_LZMA_H
19 /* this is the parent class for all compress IO operations.
23 #include "lzma-sdk/LzmaDec.h"
25 class compress_lzma
:public compress
28 compress_lzma (io_stream
*); /* decompress (read) only */
29 virtual ssize_t
read (void *buffer
, size_t len
);
30 virtual ssize_t
write (const void *buffer
, size_t len
); /* not implemented */
31 virtual ssize_t
peek (void *buffer
, size_t len
);
32 virtual long tell (); /* not implemented */
33 virtual int seek (long where
, io_stream_seek_t whence
); /* not implemented */
35 virtual const char *next_file_name () { return NULL
; };
36 virtual int set_mtime (time_t);
37 virtual time_t get_mtime ();
38 virtual mode_t
get_mode ();
39 virtual size_t get_size () {return 0;};
40 virtual ~compress_lzma ();
41 static bool is_lzma(void *buffer
, size_t len
);
42 virtual void release_original(); /* give up ownership of original io_stream */
57 static const size_t IN_BUF_SIZE
= (1 << 16);
58 static const size_t OUT_BUF_SIZE
= (1 << 16);
59 unsigned char header
[LZMA_PROPS_SIZE
+ 8];
61 bool thereIsSize
; /* true means header specifies uncompressed size */
63 unsigned char * inbuf
;
64 unsigned char * outbuf
;
73 #endif /* SETUP_COMPRESS_LZMA_H */
This page took 0.037145 seconds and 5 git commands to generate.