X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Fslice.cpp;h=3fbfc5756f4e5ff4173eaf30e6ceedc1a2815591;hp=59a7cde301b463d492fb79ef11733702d60d512e;hb=ea8bf8f588310b0d7fd3297d74907602705bba1d;hpb=169ece8b190040c4b61d68122c4ead1ba266cf79 diff --git a/source/io/slice.cpp b/source/io/slice.cpp index 59a7cde..3fbfc57 100644 --- a/source/io/slice.cpp +++ b/source/io/slice.cpp @@ -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);