X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Fbase.h;h=700dae7646180266d5393991e2b4d799ac7c1d2c;hp=774d03467b57f73b5af04217dcf8e3cae70046d1;hb=82d74297d5b469b0a506d7010a84ab5115cd88ee;hpb=c7afef88380ebebc8c2b04e48664d73281ec8848 diff --git a/source/io/base.h b/source/io/base.h index 774d034..700dae7 100644 --- a/source/io/base.h +++ b/source/io/base.h @@ -4,7 +4,6 @@ #include #include "mode.h" #include "poll.h" -#include "types.h" namespace Msp { namespace IO { @@ -18,10 +17,6 @@ leaving stale pointers in an EventDispatcher. class Base { public: - /** Emitted when there is data available for reading. If all data is not - read, the signal is emitted again immediately. */ - sigc::signal signal_data_available; - /** Emitted when there is no more data to be read. */ sigc::signal signal_end_of_file; @@ -32,17 +27,12 @@ public: /** Emitted when the I/O object has closed. */ sigc::signal signal_closed; - /** Emitted when the mask of interesting events changes. Mainly for use by - EventDispatcher. */ - sigc::signal signal_events_changed; - /** Emitted when the object is deleted. Mainly for use by EventDispatcher. */ sigc::signal signal_deleted; protected: Mode mode; - PollEvent events; bool eof_flag; Base(); @@ -64,8 +54,10 @@ public: Mode get_mode() const { return mode; } protected: - virtual unsigned do_write(const char *, unsigned) =0; - virtual unsigned do_read(char *, unsigned) =0; + void check_access(Mode) const; + + virtual unsigned do_write(const char *, unsigned) = 0; + virtual unsigned do_read(char *, unsigned) = 0; public: /** Writes data from a buffer. Subject to blocking. Returns the number of @@ -93,26 +85,12 @@ public: to end-of-file or non-blocking operation. */ virtual int get(); - /** Returns the end-of-file flag. */ - bool eof() const { return eof_flag; } - protected: - void set_events(PollEvent); + void set_eof(); public: - /** Returns a mask of the currently interesting events. Used by - EventDispatcher. */ - PollEvent get_events() const { return events; } - - /** Returns a handle for polling. Should throw if the object does not have - an event handle. */ - virtual Handle get_event_handle() =0; - - /** Notifies the object of an event. Used by EventDispatcher. */ - void event(PollEvent); - -protected: - virtual void on_event(PollEvent) { } + /** Returns the end-of-file flag. */ + bool eof() const { return eof_flag; } }; } // namespace IO