LibreOffice Module oox (master) 1
|
A non-seekable input stream that implements run-length decompression. More...
#include <vbainputstream.hxx>
Public Member Functions | |
VbaInputStream (BinaryInputStream &rInStrm) | |
virtual sal_Int64 | size () const override |
Returns -1, stream size is not determinable. More... | |
virtual sal_Int64 | tell () const override |
Returns -1, stream position is not tracked. More... | |
virtual void | seek (sal_Int64 nPos) override |
Does nothing, stream is not seekable. More... | |
virtual void | close () override |
Closes the input stream but not the wrapped stream. More... | |
virtual sal_Int32 | readData (StreamDataSequence &orData, sal_Int32 nBytes, size_t nAtomSize=1) override |
Reads nBytes bytes to the passed sequence. More... | |
virtual sal_Int32 | readMemory (void *opMem, sal_Int32 nBytes, size_t nAtomSize=1) override |
Reads nBytes bytes to the (existing) buffer opMem. More... | |
virtual void | skip (sal_Int32 nBytes, size_t nAtomSize=1) override |
Seeks the stream forward by the passed number of bytes. More... | |
Public Member Functions inherited from oox::BinaryInputStream | |
virtual sal_Int32 | readData (StreamDataSequence &orData, sal_Int32 nBytes, size_t nAtomSize=1)=0 |
Derived classes implement reading nBytes bytes to the passed sequence. More... | |
virtual sal_Int32 | readMemory (void *opMem, sal_Int32 nBytes, size_t nAtomSize=1)=0 |
Derived classes implement reading nBytes bytes to the (preallocated!) memory buffer opMem. More... | |
virtual void | skip (sal_Int32 nBytes, size_t nAtomSize=1)=0 |
Derived classes implement seeking the stream forward by the passed number of bytes. More... | |
template<typename Type > | |
Type | readValue () |
Reads a value from the stream and converts it to platform byte order. More... | |
sal_Int8 | readInt8 () |
sal_uInt8 | readuInt8 () |
sal_Int16 | readInt16 () |
sal_uInt16 | readuInt16 () |
sal_Int32 | readInt32 () |
sal_uInt32 | readuInt32 () |
sal_Int64 | readInt64 () |
float | readFloat () |
double | readDouble () |
unsigned char | readuChar () |
template<typename Type > | |
sal_Int32 | readArray (Type *opnArray, sal_Int32 nElemCount) |
Reads a (preallocated!) C array of values from the stream. More... | |
template<typename Type > | |
sal_Int32 | readArray (::std::vector< Type > &orVector, sal_Int32 nElemCount) |
Reads a vector of values from the stream. More... | |
OUString | readNulUnicodeArray () |
Reads a NUL-terminated Unicode character array and returns the string. More... | |
OString | readCharArray (sal_Int32 nChars) |
Reads a byte character array and returns the string. More... | |
OUString | readCharArrayUC (sal_Int32 nChars, rtl_TextEncoding eTextEnc) |
Reads a byte character array and returns a Unicode string. More... | |
OUString | readUnicodeArray (sal_Int32 nChars) |
Reads a Unicode character array and returns the string. More... | |
OUString | readCompressedUnicodeArray (sal_Int32 nChars, bool bCompressed) |
Reads a Unicode character array (may be compressed) and returns the string. More... | |
void | copyToStream (BinaryOutputStream &rOutStrm) |
Copies bytes from the current position to the passed output stream. More... | |
Public Member Functions inherited from oox::BinaryStreamBase | |
virtual | ~BinaryStreamBase () |
virtual sal_Int64 | size () const =0 |
Implementations return the size of the stream, if possible. More... | |
virtual sal_Int64 | tell () const =0 |
Implementations return the current stream position, if possible. More... | |
virtual void | seek (sal_Int64 nPos)=0 |
Implementations seek the stream to the passed position, if the stream is seekable. More... | |
virtual void | close ()=0 |
Implementations close the stream. More... | |
bool | isSeekable () const |
Returns true, if the implementation supports the seek() operation. More... | |
bool | isEof () const |
Returns true, if the stream position is invalid (EOF). More... | |
sal_Int64 | getRemaining () const |
Returns the size of the remaining data available in the stream, if stream supports size() and tell(), otherwise -1. More... | |
void | seekToStart () |
Seeks the stream to the beginning, if stream is seekable. More... | |
void | alignToBlock (sal_Int32 nBlockSize, sal_Int64 nAnchorPos) |
Seeks the stream forward to a position that is a multiple of the passed block size, if stream is seekable. More... | |
Private Types | |
typedef ::std::vector< sal_uInt8 > | ChunkBuffer |
Private Member Functions | |
bool | updateChunk () |
If no data left in chunk buffer, reads the next chunk from stream. More... | |
Private Attributes | |
BinaryInputStream * | mpInStrm |
ChunkBuffer | maChunk |
size_t | mnChunkPos |
Additional Inherited Members | |
Protected Member Functions inherited from oox::BinaryInputStream | |
BinaryInputStream () | |
This dummy default c'tor will never call the c'tor of the virtual base class BinaryStreamBase as this class cannot be instantiated directly. More... | |
Protected Member Functions inherited from oox::BinaryStreamBase | |
BinaryStreamBase (bool bSeekable) | |
Protected Attributes inherited from oox::BinaryStreamBase | |
bool | mbEof |
End of stream flag. More... | |
A non-seekable input stream that implements run-length decompression.
Definition at line 34 of file vbainputstream.hxx.
|
private |
Definition at line 62 of file vbainputstream.hxx.
|
explicit |
Definition at line 36 of file vbainputstream.cxx.
References oox::BinaryStreamBase::isEof(), maChunk, oox::BinaryStreamBase::mbEof, and oox::BinaryInputStream::readuInt8().
|
overridevirtual |
Closes the input stream but not the wrapped stream.
Implements oox::BinaryStreamBase.
Definition at line 62 of file vbainputstream.cxx.
References oox::BinaryStreamBase::mbEof, and mpInStrm.
|
overridevirtual |
Reads nBytes bytes to the passed sequence.
Implements oox::BinaryInputStream.
Definition at line 68 of file vbainputstream.cxx.
References oox::BinaryStreamBase::mbEof, and readMemory().
|
overridevirtual |
Reads nBytes bytes to the (existing) buffer opMem.
Implements oox::BinaryInputStream.
Definition at line 84 of file vbainputstream.cxx.
References maChunk, mnChunkPos, and updateChunk().
Referenced by readData().
|
overridevirtual |
Does nothing, stream is not seekable.
Implements oox::BinaryStreamBase.
Definition at line 58 of file vbainputstream.cxx.
|
overridevirtual |
Returns -1, stream size is not determinable.
Implements oox::BinaryStreamBase.
Definition at line 48 of file vbainputstream.cxx.
|
overridevirtual |
Seeks the stream forward by the passed number of bytes.
Implements oox::BinaryInputStream.
Definition at line 101 of file vbainputstream.cxx.
References maChunk, mnChunkPos, and updateChunk().
|
overridevirtual |
Returns -1, stream position is not tracked.
Implements oox::BinaryStreamBase.
Definition at line 53 of file vbainputstream.cxx.
|
private |
If no data left in chunk buffer, reads the next chunk from stream.
Definition at line 114 of file vbainputstream.cxx.
References oox::getFlag(), oox::BinaryStreamBase::isEof(), maChunk, oox::BinaryStreamBase::mbEof, mnChunkPos, mpInStrm, nBit, nBitCount, nLength, oox::BinaryInputStream::readMemory(), oox::BinaryInputStream::readuChar(), oox::BinaryInputStream::readuInt16(), oox::BinaryInputStream::readuInt8(), oox::BinaryStreamBase::seek(), and oox::BinaryStreamBase::tell().
Referenced by readMemory(), and skip().
|
private |
Definition at line 65 of file vbainputstream.hxx.
Referenced by readMemory(), skip(), updateChunk(), and VbaInputStream().
|
private |
Definition at line 66 of file vbainputstream.hxx.
Referenced by readMemory(), skip(), and updateChunk().
|
private |
Definition at line 64 of file vbainputstream.hxx.
Referenced by close(), and updateChunk().