]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/serial.cpp
Use size_t to represent sizes
[libs/core.git] / source / io / serial.cpp
index cf2c6952bf3d7e97eb52eb0102f5253549aa03da..b256b117098b96a64f337c5c73b5f28818f77627 100644 (file)
@@ -42,10 +42,16 @@ void Serial::close()
 
 void Serial::set_block(bool b)
 {
-       mode = b?(mode&~M_NONBLOCK):(mode|M_NONBLOCK);
+       adjust_mode(mode, M_NONBLOCK, !b);
        sys_set_blocking(handle, b);
 }
 
+void Serial::set_inherit(bool i)
+{
+       adjust_mode(mode, M_INHERIT, i);
+       sys_set_inherit(handle, i);
+}
+
 void Serial::set_baud_rate(unsigned rate)
 {
        DeviceState state;
@@ -100,7 +106,7 @@ void Serial::set_parameters(const string &params)
        state.apply_to(handle);
 }
 
-unsigned Serial::do_write(const char *buf, unsigned size)
+size_t Serial::do_write(const char *buf, size_t size)
 {
        if(size==0)
                return 0;
@@ -108,17 +114,23 @@ unsigned Serial::do_write(const char *buf, unsigned size)
        return sys_write(handle, buf, size);
 }
 
-unsigned Serial::do_read(char *buf, unsigned size)
+size_t Serial::do_read(char *buf, size_t size)
 {
        if(size==0)
                return 0;
 
-       unsigned ret = reader.read(buf, size);
+       size_t ret = reader.read(buf, size);
        if(ret==0)
                set_eof();
 
        return ret;
 }
 
+const Handle &Serial::get_handle(Mode m)
+{
+       check_access(m);
+       return handle;
+}
+
 } // namespace IO
 } // namespace Msp