]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/serial.h
Use size_t to represent sizes
[libs/core.git] / source / io / serial.h
index dba62fbf955e5db860f763c2a233cb3e130d75fe..1e93f10879d2659756a2e33824e68eeb9aa870ab 100644 (file)
@@ -1,13 +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
@@ -18,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:
@@ -29,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);
@@ -37,11 +45,12 @@ public:
        void set_parameters(const std::string &);
 
 private:
-       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_event_handle();
+       virtual const Handle &get_handle(Mode);
+       virtual const Handle &get_event_handle() { return reader.get_event(); }
 };
 
 } // namespace IO