X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fbuffered.h;h=092be19e8f0ad00241d67f915d0931b2697cc9ce;hp=b6584c1c23e289ce1d974cf02c0a247cf4f52f38;hb=d6b80800099c85df8d6f49b5b9d11e43f86c79b0;hpb=c8a3f4ae89bc415bfbd877b3f4c3605ac3cf4010 diff --git a/source/buffered.h b/source/buffered.h index b6584c1..092be19 100644 --- a/source/buffered.h +++ b/source/buffered.h @@ -14,25 +14,27 @@ namespace IO { 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); unsigned do_write(const char *, unsigned); unsigned do_read(char *, unsigned); };