LTIOSubStream Class Reference
LTIOSubStream.
More...
#include <lt_ioSubStream.h>
List of all members.
Detailed Description
A SubStream is a stream which wraps another stream, but provides access to only a (contiguous) subset of the bytes of the parent stream -- without revealing any of the surrounding bytes.
Consider the following situation: the MG2 decoder always assumes byte 0 of the image stream given to it is the start of the image, but you have an image embedded in some larger stream -- say from byte offset 100 to 2100. By creating a substream from the larger stream and giving that to the decoder, the decoder will be doing the right thing when it naively issues a "seek-to-beginning" request.
Note that the SubStream does NOT take ownership of the stream given to it. The caller should duplicate() the main stream first, if needed. Closing the substream will close the parent stream, but deleting the substream will not delete the parent stream.
Note that the results might be undefined if the parent or child stream is modified at any point -- try to avoid such situations.
- Examples:
-
UsingStreams.cpp.
Definition at line 46 of file lt_ioSubStream.h.
Constructor & Destructor Documentation
LTIOSubStream::LTIOSubStream |
( |
|
) |
|
virtual LTIOSubStream::~LTIOSubStream |
( |
|
) |
[virtual] |
Member Function Documentation
void LTIOSubStream::cleanup |
( |
|
) |
[protected] |
virtual LT_STATUS LTIOSubStream::close |
( |
|
) |
[virtual] |
Puts the stream in a state that does not allow data access. May free up resources, but only in such a way that doesn't inhibit successful future calls to open()
- Return values:
-
| LT_STS_Success | On success, or if the stream is already closed. |
| LT_STS_Failure | Otherwise. |
Implements LTIOStreamInf.
Create new stream of the same type with the same initialization parameters. The transmission of these parameters is the responsibility of the derived type. The new stream should initially return false for isOpen().
- Return values:
-
| NULL | the stream could not be duplicated; valid LTIOStreamInf* otherwise. |
Implements LTIOStreamInf.
virtual const char* LTIOSubStream::getID |
( |
|
) |
const [virtual] |
Create new stream of the same type with the same initialization parameters. The transmission of these parameters is the responsibility of the derived type. The new stream should initially return false for isOpen().
- Return values:
-
| NULL | the stream could not be duplicated; valid LTIOStreamInf* otherwise. |
Implements LTIOStreamInf.
virtual LT_STATUS LTIOSubStream::getLastError |
( |
|
) |
const [virtual] |
Create new stream of the same type with the same initialization parameters. The transmission of these parameters is the responsibility of the derived type. The new stream should initially return false for isOpen().
- Return values:
-
| NULL | the stream could not be duplicated; valid LTIOStreamInf* otherwise. |
Implements LTIOStreamInf.
virtual LT_STATUS LTIOSubStream::initialize |
( |
LTIOStreamInf * |
stream, |
|
|
lt_int64 |
start, |
|
|
lt_int64 |
end, |
|
|
bool |
takeOwnership = false | |
|
) |
| | [virtual] |
- Parameters:
-
| stream | the parent stream to be subsetted |
| start | the byte offset to be byte 0 of the subset stream |
| end | the byte offset to be the last byte of the subset stream: reading or writing past this byte will be handled as an EOF condition |
| takeOwnership | if true, this object will take ownership of stream and delete it |
virtual bool LTIOSubStream::isEOF |
( |
|
) |
[virtual] |
- Returns:
- true the stream is valid and at the end of its data.
- Return values:
-
Implements LTIOStreamInf.
virtual bool LTIOSubStream::isOpen |
( |
|
) |
[virtual] |
- Return values:
-
| true | the stream is valid and in a state that allows data access. |
| false | otherwise |
Implements LTIOStreamInf.
virtual LT_STATUS LTIOSubStream::open |
( |
|
) |
[virtual] |
Opening a stream puts it in a state that allows data access based on cached initialization parameters.
- Return values:
-
| LT_STS_IOStreamUninitialized | The stream has not been initialized with enough information to open the stream |
| LT_STS_IOStreamInvalidState | The the stream is already open |
| LT_STS_Success | On success. |
| LT_STS_Failure | Otherwise. |
Implements LTIOStreamInf.
- Parameters:
-
| pDest | buffer in which to store read data |
| numBytes | number of bytes to read from stream |
- Return values:
-
| numBytes | The number of bytes actually read |
Implements LTIOStreamInf.
- Parameters:
-
| offset | number of bytes from origin at which to the next read or write will take place |
| origin | place in stream from which to seek |
- Return values:
-
| LT_STS_IOStreamUnsupported | The stream is not seekable |
| LT_STS_IOStreamInvalidArgs | The offset and origin do not specify a valid location in the stream |
| LT_STS_Success | On success |
| LT_STS_Failure | Otherwise |
Implements LTIOStreamInf.
virtual lt_int64 LTIOSubStream::tell |
( |
|
) |
[virtual] |
- Return values:
-
| postion | Number of bytes from the start of the data |
| -1 | On error. |
Implements LTIOStreamInf.
- Parameters:
-
| pSrc | buffer from which to store data |
| numBytes | number of bytes to write to stream |
- Return values:
-
| numBytes | number of bytes actually written |
Implements LTIOStreamInf.
Member Data Documentation
The documentation for this class was generated from the following file: