-/* $Id$
-
-This file is part of libmspdatafile
-Copyright © 2006 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
#ifndef MSP_DATAFILE_INPUT_H_
#define MSP_DATAFILE_INPUT_H_
-#include <istream>
+#include <msp/core/noncopyable.h>
+#include <msp/io/base.h>
namespace Msp {
namespace DataFile {
-class Input
+class Input: private NonCopyable
{
+private:
+ IO::Base *in = nullptr;
+ IO::Base *compressed = nullptr;
+ unsigned line = 1;
+ int next = -1;
+
public:
- Input(std::istream &);
+ Input(IO::Base &);
+ ~Input();
+
+ void set_decompress();
int get();
int peek();
unsigned get_line_number() const { return line; }
- operator bool() const { return in; }
-private:
- std::istream ∈
- unsigned line;
- int next;
+ explicit operator bool() const;
};
} // namespace DataFile