1*f6dc9357SAndroid Build Coastguard Worker // StreamUtils.h
2*f6dc9357SAndroid Build Coastguard Worker
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_STREAM_UTILS_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_STREAM_UTILS_H
5*f6dc9357SAndroid Build Coastguard Worker
6*f6dc9357SAndroid Build Coastguard Worker #include "../IStream.h"
7*f6dc9357SAndroid Build Coastguard Worker
InStream_SeekSet(IInStream * stream,UInt64 offset)8*f6dc9357SAndroid Build Coastguard Worker inline HRESULT InStream_SeekSet(IInStream *stream, UInt64 offset) throw()
9*f6dc9357SAndroid Build Coastguard Worker { return stream->Seek((Int64)offset, STREAM_SEEK_SET, NULL); }
InStream_GetPos(IInStream * stream,UInt64 & curPosRes)10*f6dc9357SAndroid Build Coastguard Worker inline HRESULT InStream_GetPos(IInStream *stream, UInt64 &curPosRes) throw()
11*f6dc9357SAndroid Build Coastguard Worker { return stream->Seek(0, STREAM_SEEK_CUR, &curPosRes); }
InStream_GetSize_SeekToEnd(IInStream * stream,UInt64 & sizeRes)12*f6dc9357SAndroid Build Coastguard Worker inline HRESULT InStream_GetSize_SeekToEnd(IInStream *stream, UInt64 &sizeRes) throw()
13*f6dc9357SAndroid Build Coastguard Worker { return stream->Seek(0, STREAM_SEEK_END, &sizeRes); }
14*f6dc9357SAndroid Build Coastguard Worker
15*f6dc9357SAndroid Build Coastguard Worker HRESULT InStream_SeekToBegin(IInStream *stream) throw();
16*f6dc9357SAndroid Build Coastguard Worker HRESULT InStream_AtBegin_GetSize(IInStream *stream, UInt64 &size) throw();
17*f6dc9357SAndroid Build Coastguard Worker HRESULT InStream_GetPos_GetSize(IInStream *stream, UInt64 &curPosRes, UInt64 &sizeRes) throw();
18*f6dc9357SAndroid Build Coastguard Worker
InStream_GetSize_SeekToBegin(IInStream * stream,UInt64 & sizeRes)19*f6dc9357SAndroid Build Coastguard Worker inline HRESULT InStream_GetSize_SeekToBegin(IInStream *stream, UInt64 &sizeRes) throw()
20*f6dc9357SAndroid Build Coastguard Worker {
21*f6dc9357SAndroid Build Coastguard Worker RINOK(InStream_SeekToBegin(stream))
22*f6dc9357SAndroid Build Coastguard Worker return InStream_AtBegin_GetSize(stream, sizeRes);
23*f6dc9357SAndroid Build Coastguard Worker }
24*f6dc9357SAndroid Build Coastguard Worker
25*f6dc9357SAndroid Build Coastguard Worker
26*f6dc9357SAndroid Build Coastguard Worker HRESULT ReadStream(ISequentialInStream *stream, void *data, size_t *size) throw();
27*f6dc9357SAndroid Build Coastguard Worker HRESULT ReadStream_FALSE(ISequentialInStream *stream, void *data, size_t size) throw();
28*f6dc9357SAndroid Build Coastguard Worker HRESULT ReadStream_FAIL(ISequentialInStream *stream, void *data, size_t size) throw();
29*f6dc9357SAndroid Build Coastguard Worker HRESULT WriteStream(ISequentialOutStream *stream, const void *data, size_t size) throw();
30*f6dc9357SAndroid Build Coastguard Worker
31*f6dc9357SAndroid Build Coastguard Worker #endif
32