]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/buffered.cpp
Add move semantics to Variant
[libs/core.git] / source / io / buffered.cpp
index 2836e4bbbaeb879de07be26bf5fba2ecea8fcad9..9f001fbe9ae94b944611f368416799ceab836a04 100644 (file)
@@ -1,5 +1,5 @@
 #include <cstring>
-#include <stdexcept>
+#include <msp/core/except.h>
 #include "buffered.h"
 #include "handle.h"
 
@@ -13,8 +13,7 @@ Buffered::Buffered(Base &b, unsigned s):
        buf_size(s),
        buf(new char[buf_size]),
        begin(buf),
-       end(buf),
-       cur_op(M_NONE)
+       end(buf)
 {
        mode = below.get_mode();
        below.signal_flush_required.connect(sigc::mem_fun(this, &Buffered::flush));
@@ -34,12 +33,12 @@ Buffered::~Buffered()
 
 void Buffered::set_block(bool)
 {
-       throw logic_error("Buffered::set_block");
+       throw unsupported("Buffered::set_block");
 }
 
 void Buffered::set_inherit(bool)
 {
-       throw logic_error("Buffered::set_block");
+       throw unsupported("Buffered::set_block");
 }
 
 void Buffered::flush()
@@ -61,7 +60,7 @@ void Buffered::flush()
                begin = end = buf;
 }
 
-unsigned Buffered::do_write(const char *data, unsigned size)
+size_t Buffered::do_write(const char *data, size_t size)
 {
        set_op(M_WRITE);
 
@@ -92,7 +91,7 @@ unsigned Buffered::do_write(const char *data, unsigned size)
        }
 }
 
-unsigned Buffered::do_read(char *data, unsigned size)
+size_t Buffered::do_read(char *data, size_t size)
 {
        set_op(M_READ);
 
@@ -110,7 +109,7 @@ unsigned Buffered::do_read(char *data, unsigned size)
        {
                // Give out whatever is in the buffer already
                memcpy(data, begin, end-begin);
-               unsigned ret = end-begin;
+               size_t ret = end-begin;
                begin = end = buf;
 
                data += ret;
@@ -119,10 +118,10 @@ unsigned Buffered::do_read(char *data, unsigned size)
                if(size<buf_size)
                {
                        // Fill the buffer and serve the rest of the request from it
-                       unsigned len = below.read(end, buf+buf_size-end);
+                       size_t len = below.read(end, buf+buf_size-end);
                        end += len;
 
-                       len = min(static_cast<unsigned>(end-begin), size);
+                       len = min<size_t>(end-begin, size);
                        memcpy(data, begin, len);
                        begin += len;
                        ret += len;
@@ -137,7 +136,7 @@ unsigned Buffered::do_read(char *data, unsigned size)
        }
 }
 
-unsigned Buffered::put(char c)
+size_t Buffered::put(char c)
 {
        set_op(M_WRITE);
 
@@ -150,7 +149,7 @@ unsigned Buffered::put(char c)
                return do_write(&c, 1);
 }
 
-bool Buffered::getline(std::string &line)
+bool Buffered::getline(string &line)
 {
        set_op(M_READ);
 
@@ -180,7 +179,7 @@ int Buffered::get()
 
 const Handle &Buffered::get_handle(Mode)
 {
-       throw logic_error("Buffered::get_handle");
+       throw unsupported("Buffered::get_handle");
 }
 
 void Buffered::set_op(Mode op)
@@ -190,7 +189,7 @@ void Buffered::set_op(Mode op)
        cur_op = op;
 }
 
-unsigned Buffered::get_current_size() const
+size_t Buffered::get_current_size() const
 {
        return end-begin;
 }