]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/slice.cpp
Use size_t for sizes in I/O classes
[libs/core.git] / source / io / slice.cpp
index 63df62f29f841d164d5c52e7f80506c16a5a128f..4007a5e22f1e83cd690c8e278c4a584b1d431aa4 100644 (file)
@@ -21,6 +21,16 @@ Slice::Slice(Seekable &b, SeekOffset s, SeekOffset l):
        below.signal_flush_required.connect(sigc::mem_fun(this, &Slice::flush));
 }
 
+void Slice::set_block(bool)
+{
+       throw logic_error("Slice::set_block");
+}
+
+void Slice::set_inherit(bool)
+{
+       throw logic_error("Slice::set_inherit");
+}
+
 void Slice::flush()
 {
        sync_position = true;
@@ -47,39 +57,39 @@ unsigned Slice::prepare_op(unsigned size, Mode m)
        return size;
 }
 
-unsigned Slice::do_write(const char *data, unsigned size)
+size_t Slice::do_write(const char *data, size_t size)
 {
        Base::Synchronize sync(below);
        size = prepare_op(size, M_WRITE);
        if(!size)
                return 0;
 
-       unsigned len = below.write(data, size);
+       size_t len = below.write(data, size);
        position += len;
        return len;
 }
 
-unsigned Slice::do_read(char *data, unsigned size)
+size_t Slice::do_read(char *data, size_t size)
 {
        Base::Synchronize sync(below);
        size = prepare_op(size, M_READ);
        if(!size)
                return 0;
 
-       unsigned len = below.read(data, size);
+       size_t len = below.read(data, size);
        if(!len && below.eof())
                set_eof();
        position += len;
        return len;
 }
 
-unsigned Slice::put(char c)
+size_t Slice::put(char c)
 {
        Base::Synchronize sync(below);
        if(!prepare_op(1, M_WRITE))
                return 0;
 
-       unsigned len = below.put(c);
+       size_t len = below.put(c);
        position += len;
        return len;
 }
@@ -88,7 +98,7 @@ int Slice::get()
 {
        Base::Synchronize sync(below);
        if(!prepare_op(1, M_READ))
-               return 0;
+               return -1;
 
        int c = below.get();
        if(c==-1 && below.eof())
@@ -98,6 +108,11 @@ int Slice::get()
        return c;
 }
 
+const Handle &Slice::get_handle(Mode)
+{
+       throw logic_error("Slice::get_handle");
+}
+
 SeekOffset Slice::seek(SeekOffset off, SeekType type)
 {
        Base::Synchronize sync(below);