00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef CONEXUSSERIAL_H
00020 #define CONEXUSSERIAL_H
00021
00022 #include <conexus/rwfiledescriptor.h>
00023
00031 namespace Conexus
00032 {
00033
00042 class Serial : public RWFileDescriptor
00043 {
00044 public:
00045 typedef boost::shared_ptr<Serial> pointer;
00046
00047 Serial(const std::string& device=std::string(), unsigned long readwrite=READ|WRITE);
00048
00049 static Serial::pointer create(const std::string& device=std::string(), unsigned long readwrite=READ|WRITE);
00050
00051 virtual ~Serial();
00052
00056 virtual void open(const std::string name, int state=READ|WRITE) throw (open_error);
00057
00062 virtual void open() throw (open_error);
00063
00067 std::string device();
00068
00081 void set_device(const std::string& d, long state=READ|WRITE) throw (open_error);
00082
00083 sigc::signal<void> signal_device_changed();
00084
00085 virtual void start(ReadWrite rw=Conexus::READ, bool use_dispatcher=false);
00086
00087 virtual const std::string& object_type() { static std::string s("Conexus::Serial"); return s; }
00088
00089 protected:
00090 std::string m_device;
00091
00092 sigc::signal<void> m_signal_device_changed;
00093 };
00094
00095 }
00096
00097 #endif