--- /dev/null
+/* $Id$
+
+This file is part of libmspio
+Copyright © 2010 Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
+#ifndef MSP_IO_SERIAL_H_
+#define MSP_IO_SERIAL_H_
+
+#include "base.h"
+
+namespace Msp {
+namespace IO {
+
+class Serial: public Base
+{
+public:
+ enum Parity
+ {
+ NONE,
+ EVEN,
+ ODD
+ };
+
+private:
+ struct Private;
+
+ Handle handle;
+ Private *priv;
+
+public:
+ Serial(const std::string &);
+ virtual ~Serial();
+
+ virtual void set_block(bool);
+
+ void set_baud_rate(unsigned);
+ void set_data_bits(unsigned);
+ void set_parity(Parity);
+ void set_stop_bits(unsigned);
+ void set_parameters(const std::string &);
+
+ virtual Handle get_event_handle() { return handle; }
+
+private:
+ void close();
+ virtual unsigned do_write(const char *, unsigned);
+ virtual unsigned do_read(char *, unsigned);
+};
+
+} // namespace IO
+} // namespace Msp
+
+#endif