X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fio%2Fslice.h;h=cec1fcf12b0dc0d822f8a837445a096f64236637;hb=9b38e20254913629a0db40e8eb8e1c42e1728e41;hp=bcfef502343a23da7761f8b00caabda00705b789;hpb=0793fb99ee8c55c7ffe96bca902632f328e10edb;p=libs%2Fcore.git diff --git a/source/io/slice.h b/source/io/slice.h index bcfef50..cec1fcf 100644 --- a/source/io/slice.h +++ b/source/io/slice.h @@ -20,26 +20,31 @@ class Slice: public Seekable, public sigc::trackable { private: Seekable &below; - SeekOffset start_offset; - SeekOffset length; - SeekOffset position; - bool sync_position; + SeekOffset start_offset = 0; + SeekOffset length = 0; + SeekOffset position = 0; + bool sync_position = true; public: Slice(Seekable &, SeekOffset, SeekOffset); + virtual void set_block(bool); + virtual void set_inherit(bool); + private: void flush(); unsigned prepare_op(unsigned, Mode); protected: - virtual unsigned do_write(const char *, unsigned); - virtual unsigned do_read(char *, unsigned); + virtual std::size_t do_write(const char *, std::size_t); + virtual std::size_t do_read(char *, std::size_t); public: - virtual unsigned put(char); + virtual std::size_t put(char); virtual int get(); + virtual const Handle &get_handle(Mode); + virtual SeekOffset seek(SeekOffset, SeekType); virtual SeekOffset tell() const { return position; } };