LTIOStreamInf Class Reference

Abstract definition of a stream. More...

#include <lt_ioStreamInf.h>

Inheritance diagram for LTIOStreamInf:

LTIOBufferedStream LTIOCallbackStream LTIODynamicMemStream LTIOFileStream LTIOMemStream LTIOSubStream

List of all members.

Public Member Functions

virtual ~LTIOStreamInf ()=0
Status accessors
virtual bool isEOF ()=0
 Test for end-of-stream.
virtual bool isOpen ()=0
 Test for stream openness.
Opening and closing
virtual LT_STATUS open ()=0
 Opens the stream.
virtual LT_STATUS close ()=0
 Closes the stream.
Data access
virtual lt_uint32 read (lt_uint8 *pDest, lt_uint32 numBytes)=0
 Retrieve the specified number of bytes from the data source and place them in pDest.
virtual lt_uint32 write (const lt_uint8 *pSrc, lt_uint32 numBytes)=0
 Store the specified number of bytes in the data source.
Positioning
virtual LT_STATUS seek (lt_int64 offset, LTIOSeekDir origin)=0
 Moves the data access position to origin + offset.
virtual lt_int64 tell ()=0
 Returns the current data access position as an offset from the start of the data.
Other operations
virtual LTIOStreamInfduplicate ()=0
 Clone the stream.
virtual LT_STATUS getLastError () const =0
 Get status code of last error event.
virtual const char * getID () const =0
 Get a URI describing the stream object.


Detailed Description

This class is intentionally very sparse, and completely abstract to facilitate COM usage. The semantics of the LTIOStreamInf class are very similar to the unix stdio model.
Examples:

DerivedImageWriter.cpp, and DerivedStream.cpp.

Definition at line 30 of file lt_ioStreamInf.h.


Constructor & Destructor Documentation

virtual LTIOStreamInf::~LTIOStreamInf (  )  [inline, pure virtual]

Definition at line 42 of file lt_ioStreamInf.h.


Member Function Documentation

virtual bool LTIOStreamInf::isEOF (  )  [pure 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

Implemented in LTIOBufferedStream, LTIOCallbackStream, LTIODynamicMemStream, LTIOFileStream, LTIOMemStream, and LTIOSubStream.

Examples:
DerivedStream.cpp.

virtual bool LTIOStreamInf::isOpen (  )  [pure virtual]

Return values:
true The stream is open
false otherwise

Implemented in LTIOBufferedStream, LTIOCallbackStream, LTIODynamicMemStream, LTIOFileStream, LTIOMemStream, and LTIOSubStream.

Examples:
DerivedStream.cpp.

virtual LT_STATUS LTIOStreamInf::open (  )  [pure 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

Implemented in LTIOBufferedStream, LTIOCallbackStream, LTIODynamicMemStream, LTIOFileStream, LTIOMemStream, and LTIOSubStream.

Examples:
DerivedStream.cpp.

virtual LT_STATUS LTIOStreamInf::close (  )  [pure 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.

Implemented in LTIOBufferedStream, LTIOCallbackStream, LTIODynamicMemStream, LTIOFileStream, LTIOMemStream, and LTIOSubStream.

Examples:
DerivedStream.cpp.

virtual lt_uint32 LTIOStreamInf::read ( lt_uint8 pDest,
lt_uint32  numBytes 
) [pure virtual]

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

Implemented in LTIOBufferedStream, LTIOCallbackStream, LTIODynamicMemStream, LTIOFileStream, LTIOMemStream, and LTIOSubStream.

Examples:
DerivedStream.cpp.

virtual lt_uint32 LTIOStreamInf::write ( const lt_uint8 pSrc,
lt_uint32  numBytes 
) [pure virtual]

Parameters:
pSrc buffer from which to store data
numBytes number of bytes to write to stream
Return values:
numBytes number of bytes actually written

Implemented in LTIOBufferedStream, LTIOCallbackStream, LTIODynamicMemStream, LTIOFileStream, LTIOMemStream, and LTIOSubStream.

Examples:
DerivedImageWriter.cpp, and DerivedStream.cpp.

virtual LT_STATUS LTIOStreamInf::seek ( lt_int64  offset,
LTIOSeekDir  origin 
) [pure virtual]

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

Implemented in LTIOBufferedStream, LTIOCallbackStream, LTIODynamicMemStream, LTIOFileStream, LTIOMemStream, and LTIOSubStream.

Examples:
DerivedStream.cpp.

virtual lt_int64 LTIOStreamInf::tell (  )  [pure virtual]

Return values:
postion Number of bytes from the start of the data
-1 On error.
other Implementations may return other codes

Implemented in LTIOBufferedStream, LTIOCallbackStream, LTIODynamicMemStream, LTIOFileStream, LTIOMemStream, and LTIOSubStream.

Examples:
DerivedStream.cpp.

virtual LTIOStreamInf* LTIOStreamInf::duplicate (  )  [pure 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.

Implemented in LTIOBufferedStream, LTIOCallbackStream, LTIODynamicMemStream, LTIOFileStream, LTIOMemStream, and LTIOSubStream.

Examples:
DerivedStream.cpp.

virtual LT_STATUS LTIOStreamInf::getLastError (  )  const [pure 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:
status the error code

Implemented in LTIOBufferedStream, LTIOCallbackStream, LTIODynamicMemStream, LTIOFileStream, LTIOMemStream, and LTIOSubStream.

Examples:
DerivedImageWriter.cpp, and DerivedStream.cpp.

virtual const char* LTIOStreamInf::getID (  )  const [pure 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:
uri the uri string

Implemented in LTIOBufferedStream, LTIOCallbackStream, LTIODynamicMemStream, LTIOFileStream, LTIOMemStream, and LTIOSubStream.

Examples:
DerivedStream.cpp.


The documentation for this class was generated from the following file:

LizardTech