]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/serial.h
Implement controls for file descriptor inheritance
[libs/core.git] / source / io / serial.h
index 069789c85097a69e8510d347ca43a02630009a2a..dbc7a77bd0578159d12a8ae3b0d202290a604162 100644 (file)
@@ -1,12 +1,14 @@
 #ifndef MSP_IO_SERIAL_H_
 #define MSP_IO_SERIAL_H_
 
-#include "base.h"
+#include "eventobject.h"
+#include "eventreader.h"
+#include "handle.h"
 
 namespace Msp {
 namespace IO {
 
-class Serial: public Base
+class Serial: public EventObject
 {
 public:
        enum Parity
@@ -17,10 +19,16 @@ public:
        };
 
 private:
+       struct DeviceState;
+
        Handle handle;
+       EventReader reader;
 
 public:
        Serial(const std::string &);
+private:
+       void platform_init(const std::string &);
+public:
        virtual ~Serial();
 
 private:
@@ -28,6 +36,7 @@ private:
 
 public:
        virtual void set_block(bool);
+       virtual void set_inherit(bool);
 
        void set_baud_rate(unsigned);
        void set_data_bits(unsigned);
@@ -40,7 +49,8 @@ private:
        virtual unsigned do_read(char *, unsigned);
 
 public:
-       virtual Handle get_event_handle();
+       virtual const Handle &get_handle(Mode);
+       virtual const Handle &get_event_handle() { return reader.get_event(); }
 };
 
 } // namespace IO