X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Fzlibcompressed.cpp;h=a5588534cc140ab1608dd31171854144917ebcc5;hp=90b54a214bed69ce272952e3ebad8ca05e6ff1d4;hb=e0266badf098a5cec2512eb693bca771e35fd3ab;hpb=4418103963cca2b68fd2dbf6d1d16eeebc8b3c40 diff --git a/source/io/zlibcompressed.cpp b/source/io/zlibcompressed.cpp index 90b54a2..a558853 100644 --- a/source/io/zlibcompressed.cpp +++ b/source/io/zlibcompressed.cpp @@ -38,18 +38,32 @@ ZlibCompressed::Private::Private() ZlibCompressed::ZlibCompressed(Base &b, unsigned level): - below(b), - buffer_size(1024), - in_buffer(0), - out_buffer(0), - stream_end(false), - priv(0) + below(b) { -#ifdef WITH_ZLIB mode = below.get_mode()&M_RDWR; if(mode!=M_READ && mode!=M_WRITE) throw invalid_access(mode); + init(level); +} + +ZlibCompressed::ZlibCompressed(Base &b, Mode m, unsigned level): + below(b) +{ + mode = m&below.get_mode()&M_RDWR; + if(mode!=M_READ && mode!=M_WRITE) + throw invalid_access(m); + + init(level); +} + +void ZlibCompressed::init(unsigned level) +{ +#ifdef WITH_ZLIB + buffer_size = 1024; + in_buffer = 0; + out_buffer = 0; + stream_end = false; priv = new Private; if(mode==M_WRITE)