44 std::streampos block_start;
45 std::streamoff block_offset;
46 pthread_mutex_t *streambuf_mutex;
51 common(std::streambuf* sb);
54 unsigned long int output_count()
const;
60 unsigned long int input_count()
const;
68 std::streampos get_block_start() {
71 std::streamoff get_block_offset() {
74 pthread_mutex_t *get_streambuf_mutex() {
75 return streambuf_mutex;
77 void set_streambuf_mutex(pthread_mutex_t *mutex) {
78 streambuf_mutex = mutex;
98 void raise_error(
int err);
118 std::streamsize xsputn(
const char *buffer, std::streamsize n);
127 int flush(flush_kind
f=no_sync,
const char *appendbuf=0,
int appendsize=0);
133 ostreambuf(std::streambuf* sb);
142 ostreambuf(std::streambuf* sb,
int level);
150 std::streambuf *get_streambuf() {
163 class istreambuf:
public common,
public std::streambuf {
169 std::streampos block_next;
170 std::streamoff new_block_start;
171 unsigned int new_block_offset;
176 leftovers_buf *leftovers;
182 void raise_error(
int err);
197 void read_decompress();
203 std::streamsize xsgetn(
char *buffer, std::streamsize n);
210 istreambuf(std::streambuf* sb,
int* left=0,
unsigned int left_size=0);
218 std::streambuf *get_streambuf() {
221 std::streamsize get_block_size() {
224 void set_new_position(std::streamoff start,
unsigned int offset) {
225 new_block_start = start;
226 new_block_offset = offset;
common base for objects that manage input and output buffers to use with zlib and bzlib ...
static const size_t block_size