Sming provides a set of Stream class which extend
IDataSourceStream is used where read-only access is required.
It introduces the
IDataSourceStream::readMemoryBlock() method which
performs a regular read without updating the stream position.
This allows optimistic reading and re-sending, but cannot be handled by some stream
types and should be used with care.
ReadWriteStream is used where read/write operation is required.