49 std::streampos block_start;
50 std::streamoff block_offset;
51 pthread_mutex_t *streambuf_mutex;
62 void grow_out(
unsigned int factor=2);
67 common(std::streambuf* sb);
74 unsigned long int output_count()
const;
80 unsigned long int input_count()
const;
88 unsigned long int checksum()
const;
96 std::streamoff get_block_start() {
99 std::streamoff get_block_offset() {
102 pthread_mutex_t *get_streambuf_mutex() {
103 return streambuf_mutex;
105 void set_streambuf_mutex(pthread_mutex_t *mutex) {
106 streambuf_mutex = mutex;
127 void raise_error(
int err);
147 std::streamsize xsputn(
const char *buffer, std::streamsize n);
155 int flush(flush_kind
f,
const char *appendbuf=0,
int appendsize=0);
161 ostreambuf(std::streambuf* sb);
170 ostreambuf(std::streambuf* sb,
int level);
178 std::streambuf *get_streambuf() {
191 class istreambuf:
public common,
public std::streambuf{
198 void raise_error(
int err);
204 std::streampos block_next;
205 std::streamoff new_block_start;
206 unsigned int new_block_offset;
211 leftovers_buf *leftovers;
223 void inflate(
const flush_kind
f = normal_sync);
228 void read_inflate(
const flush_kind
f = normal_sync);
234 std::streamsize xsgetn(
char *buffer, std::streamsize n);
240 istreambuf(std::streambuf* sb,
int* left=0,
unsigned int left_size=0);
248 std::streambuf *get_streambuf() {
251 std::streamsize get_block_size() {
254 void set_new_position(std::streamoff start,
unsigned int offset) {
255 new_block_start = start;
256 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