]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/pipe.h
Add move semantics to Variant
[libs/core.git] / source / io / pipe.h
index 73731776856a2fc1c9d90530935fc4009ffaf2cc..c62aa361b6dc1c349aca224f44b5ddf8b75d9ec5 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef MSP_IO_PIPE_H_
 #define MSP_IO_PIPE_H_
 
+#include <msp/core/mspcore_api.h>
 #include "eventobject.h"
 #include "eventreader.h"
 #include "handle.h"
@@ -8,24 +9,31 @@
 namespace Msp {
 namespace IO {
 
-class Pipe: public EventObject
+class MSPCORE_API Pipe: public EventObject
 {
 private:
-       Handle handle[2];
+       Handle read_handle;
+       Handle write_handle;
        EventReader reader;
 
 public:
        Pipe();
+private:
+       void platform_init();
+public:
        ~Pipe();
 
-       void set_block(bool);
+       void set_mode(Mode);
+       void set_block(bool) override;
+       void set_inherit(bool) override;
 
 protected:
-       virtual unsigned do_write(const char *, unsigned);
-       virtual unsigned do_read(char *, unsigned);
+       std::size_t do_write(const char *, std::size_t) override;
+       std::size_t do_read(char *, std::size_t) override;
 
 public:
-       virtual const Handle &get_event_handle() { return reader.get_event(); }
+       const Handle &get_handle(Mode) override;
+       const Handle &get_event_handle() override { return reader.get_event(); }
 };
 
 } // namespace IO