X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Finput.cpp;h=4a44dea05228ae14d1d91e698ebe4eecf98cb662;hb=HEAD;hp=cc82227281563a195fa3a88c5d6e78ef4c44ffc1;hpb=7df5e45c7f414f6a07681dc4ec2abb63b091a309;p=libs%2Fdatafile.git diff --git a/source/input.cpp b/source/input.cpp index cc82227..8aec39e 100644 --- a/source/input.cpp +++ b/source/input.cpp @@ -1,19 +1,30 @@ +#include #include "input.h" namespace Msp { namespace DataFile { Input::Input(IO::Base &i): - in(i), - line(1), - next(-1) + in(&i) { } +Input::~Input() +{ + delete compressed; +} + +void Input::set_decompress() +{ + compressed = new IO::ZlibCompressed(*in, IO::M_READ); + in = compressed; +} + int Input::get() { int c = next; next = -1; - if(c<0) c = in.get(); + if(c<0) + c = in->get(); if(c=='\n') ++line; @@ -24,13 +35,13 @@ int Input::get() int Input::peek() { if(next<0) - next = in.get(); + next = in->get(); return next; } Input::operator bool() const { - return next>=0 || !in.eof(); + return next>=0 || !in->eof(); } } // namespace DataFile