]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/pipe.h
Use size_t for sizes in I/O classes
[libs/core.git] / source / io / pipe.h
index 813c4d8e6c634047c07b70830b8a196e5252df43..5fc0b3d6006fa485c7c2f18ad2127cff064fdc1e 100644 (file)
@@ -11,22 +11,27 @@ namespace IO {
 class Pipe: public EventObject
 {
 private:
-       Handle handle[2];
+       Handle read_handle;
+       Handle write_handle;
        EventReader reader;
 
 public:
        Pipe();
+private:
+       void platform_init();
+public:
        ~Pipe();
 
-       void close();
-
-       void set_block(bool);
+       void set_mode(Mode);
+       virtual void set_block(bool);
+       virtual void set_inherit(bool);
 
 protected:
-       virtual unsigned do_write(const char *, unsigned);
-       virtual unsigned do_read(char *, unsigned);
+       virtual std::size_t do_write(const char *, std::size_t);
+       virtual std::size_t do_read(char *, std::size_t);
 
 public:
+       virtual const Handle &get_handle(Mode);
        virtual const Handle &get_event_handle() { return reader.get_event(); }
 };