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;
sync_position = false;
}
- SeekOffset remaining = start_offset+length-position;
+ SeekOffset remaining = length-position;
if(size>remaining)
size = remaining;
if(!size && m==M_READ)
{
Base::Synchronize sync(below);
if(!prepare_op(1, M_READ))
- return 0;
+ return -1;
int c = below.get();
if(c==-1 && below.eof())
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);