-/* $Id$
-
-This file is part of libmspio
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
#ifndef MSP_IO_BUFFERED_H_
#define MSP_IO_BUFFERED_H_
class Buffered: public Base
{
+private:
+ Base &below;
+ unsigned buf_size;
+ char *buf;
+ char *begin;
+ char *end;
+ Mode cur_op;
+
public:
Buffered(Base &, unsigned =8192);
+ ~Buffered();
+
unsigned put(char);
void flush();
bool getline(std::string &);
int get();
- int tell() const;
Handle get_event_handle();
- ~Buffered();
+ Mode get_current_op() const { return cur_op; }
+ unsigned get_current_size() const;
private:
- Base &below;
- unsigned buf_size;
- char *in_buf;
- char *in_ptr;
- unsigned in_avail;
- char *out_buf;
- unsigned out_used;
-
- void below_closing();
+ void set_op(Mode);
+protected:
unsigned do_write(const char *, unsigned);
unsigned do_read(char *, unsigned);
};