]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/slice.cpp
Implement controls for file descriptor inheritance
[libs/core.git] / source / io / slice.cpp
index 59a7cde301b463d492fb79ef11733702d60d512e..3fbfc5756f4e5ff4173eaf30e6ceedc1a2815591 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;
@@ -38,7 +48,7 @@ unsigned Slice::prepare_op(unsigned size, Mode m)
                sync_position = false;
        }
 
-       SeekOffset remaining = start_offset+length-position;
+       SeekOffset remaining = length-position;
        if(size>remaining)
                size = remaining;
        if(!size && m==M_READ)
@@ -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);