--- ParseUtils.h +++ ParseUtils.h @@ -24,8 +24,6 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA #include #include -#include - #include "XAlloc.h" namespace Minisat { @@ -36,24 +34,16 @@ namespace Minisat { class StreamBuffer { - gzFile in; unsigned char* buf; int pos; int size; enum { buffer_size = 64*1024 }; - void assureLookahead() { - if (pos >= size) { - pos = 0; - size = gzread(in, buf, buffer_size); } } + virtual void assureLookahead() = 0; public: - explicit StreamBuffer(gzFile i) : in(i), pos(0), size(0){ - buf = (unsigned char*)xrealloc(NULL, buffer_size); - assureLookahead(); - } - ~StreamBuffer() { free(buf); } + virtual ~StreamBuffer() { } int operator * () const { return (pos >= size) ? EOF : buf[pos]; } void operator ++ () { pos++; assureLookahead(); }