]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/base.h
The EOF logic wasn't quite correct
[libs/core.git] / source / io / base.h
index 700dae7646180266d5393991e2b4d799ac7c1d2c..394a2c2306e60ebbe9f8bb7ddee0e1d4f37b4403 100644 (file)
@@ -2,6 +2,7 @@
 #define MSP_IO_BASE_H_
 
 #include <sigc++/sigc++.h>
+#include "handle.h"
 #include "mode.h"
 #include "poll.h"
 
@@ -24,9 +25,6 @@ public:
        seeked) and any data buffered by upper layers needs to be flushed. */
        sigc::signal<void> signal_flush_required;
 
-       /** Emitted when the I/O object has closed. */
-       sigc::signal<void> signal_closed;
-
        /** Emitted when the object is deleted.  Mainly for use by
        EventDispatcher. */
        sigc::signal<void> signal_deleted;
@@ -89,8 +87,14 @@ protected:
        void set_eof();
 
 public:
-       /** Returns the end-of-file flag. */
+       /** Returns the end-of-file flag.  Note that some types of objects won't
+       indicate end-of-file until you try to read at least one byte past the actual
+       end, while others indicate it when you've read the last byte. */
        bool eof() const { return eof_flag; }
+
+       /** Returns the system-level handle for the object.  Used by Console to
+       perform redirections. */
+       virtual const Handle &get_handle(Mode);
 };
 
 } // namespace IO