Stream driven entirely by user-defined callbacks.
More...
#include <lt_ioCallbackStream.h>
|
| LTIOCallbackStream () |
|
virtual | ~LTIOCallbackStream () |
|
virtual LT_STATUS | initialize (LTIOCallbackStream_Open open, LTIOCallbackStream_Close close, LTIOCallbackStream_Read read, LTIOCallbackStream_Write write, LTIOCallbackStream_Seek seek, LTIOCallbackStream_Tell tell, LTIOCallbackStream_IsEOF isEOF, LTIOCallbackStream_IsOpen isOpen, LTIOCallbackStream_Duplicate duplicate, void *user) |
| initialize More...
|
|
virtual bool | isEOF () |
| Test for end-of-stream. More...
|
|
virtual bool | isOpen () |
| Test for stream openness. More...
|
|
virtual LT_STATUS | open () |
| Opens the stream. More...
|
|
virtual LT_STATUS | close () |
| Closes the stream. More...
|
|
virtual lt_uint32 | read (lt_uint8 *pDest, lt_uint32 numBytes) |
| Retrieve the specified number of bytes from the data source and place them in pDest. More...
|
|
virtual lt_uint32 | write (const lt_uint8 *pSrc, lt_uint32 numBytes) |
| Store the specified number of bytes in the data source. More...
|
|
virtual LT_STATUS | seek (lt_int64 offset, LTIOSeekDir origin) |
| Moves the data access position to origin + offset. More...
|
|
virtual lt_int64 | tell () |
| Returns the current data access position as an offset from the start of the data. More...
|
|
virtual LTIOStreamInf * | duplicate () |
| Clone the stream. More...
|
|
virtual LT_STATUS | getLastError () const |
| Get status code of last error event. More...
|
|
virtual const char * | getID () const |
| Get a URI describing the stream object. More...
|
|
virtual | ~LTIOStreamInf ()=0 |
|
This class implements a stream whose operations – read(), write(), open(), close(), etc – are all defined by functions passed in from the user.
This class can be used as an alternative to deriving custom stream classes from LTIOStreamInf. This class also forms the basis for the C-callable stream defined in lt_ioCStream.h.
Definition at line 36 of file lt_ioCallbackStream.h.
LTIOCallbackStream::LTIOCallbackStream |
( |
) | |
|
virtual LTIOCallbackStream::~LTIOCallbackStream |
( |
) | |
|
|
virtual |
virtual LT_STATUS LTIOCallbackStream::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* LTIOCallbackStream::getID |
( |
) | |
const |
|
virtual |
This function returns a UTF-8, null-terminated string which is a URI describing the origin of the stream object – for example, "file://foo.txt" or "lt_memstream:". This string is only intended for diagnostic purposes, i.e. it may not be valid to pass it to the ctor in an attempt to reopen the stream.
- Return values
-
Implements LTIOStreamInf.
virtual LT_STATUS LTIOCallbackStream::getLastError |
( |
) | |
const |
|
virtual |
read(), write(), tell(), and duplicate() do not explicitly return status codes in the event of an error. When an error has occurred, this function returns the appropriate status code. Note calling this function after a successful I/O operation will return an undefined value.
- Return values
-
Implements LTIOStreamInf.
The parameters to this function are a set of function pointers which implement all the required operations needed to support a stream. Their semantics exactly mirror the semantics of the corresponding member functions in LTIOStreamInf.
The user parameter is a pointer to a user-defined area containing information about the stream itself, e.g. the filename and a FILE*. This pointer is passed as the first argument to each of the user's stream functions. This class never attempts to interpret this data directly.
Note that the implementation of the duplicate function is required to create a new copy of this user-defined data by whatever means appropriate. The user retains ownership of the copied user data.
- Parameters
-
open | pointer to user's open function |
close | pointer to user's close function |
read | pointer to user's read function |
write | pointer to user's write function |
seek | pointer to user's seek function |
tell | pointer to user's tell function |
isEOF | pointer to user's isEOF function |
isOpen | pointer to user's isOpen function |
duplicate | pointer to user's duplicate function |
user | pointer to user-defined stream data |
- Returns
- status code indicating success or failure
virtual bool LTIOCallbackStream::isEOF |
( |
) | |
|
|
virtual |
Returns true after the first read operation that attempts to read past the end of the stream. It returns false if the current position is not end of stream.
- Return values
-
true | end of stream |
false | otherwise |
Implements LTIOStreamInf.
virtual bool LTIOCallbackStream::isOpen |
( |
) | |
|
|
virtual |
- Return values
-
true | The stream is open |
false | otherwise |
Implements LTIOStreamInf.
virtual LT_STATUS LTIOCallbackStream::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 stream is already open |
LT_STS_Success | On success. |
LT_STS_Failure | Failure. |
other | Implementations may return other codes |
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 |
other | Implementations may return other codes |
Implements LTIOStreamInf.
virtual lt_int64 LTIOCallbackStream::tell |
( |
) | |
|
|
virtual |
- Return values
-
postion | Number of bytes from the start of the data |
-1 | On error. |
other | Implementations may return other codes |
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.
The documentation for this class was generated from the following file: