TStreamMark Class Reference

#include <s32share.h>

class TStreamMark

Detailed Description

Manages the position of a read mark or a write mark within a shared stream.

A shared stream is one that shares its host with other streams. In practice, the host is a stream buffer that is, itself, hosted by a file, an RFileBuf object.

TStreamMark objects are owned by RShareBuf, one for reading and one for writing. They re-direct read/write operations through a TStreamExchange object to the RFileBuf object, which handles the actual file read and write operations.

See also: RFileBuf RShareBuf TStreamExchange

Constructor & Destructor Documentation

TStreamMark ( )

TStreamMark()[inline]

Constructs a default shared stream mark object.

The position for the mark is uninitialised.

An uninitialised mark means that a call to IsEmpty() returns true.

See also: IsEmpty()

TStreamMark ( TStreamPos )

TStreamMark(TStreamPosaPos)[inline]

Constructs the shared stream mark object, setting the mark to the specified stream position.

An initialised mark means that a call to IsEmpty() returns false.

See also: IsEmpty()

Parameters
aPosThe stream position

Member Function Documentation

Clear ( )

voidClear()[inline]

Resets the mark object to its default state.

On return from this function, the mark is uninitialised and a call to IsEmpty() returns true.

Empties the object/makes it empty so that IsEmpty() returns false

ExtractL ( TStreamExchange & )

voidExtractL(TStreamExchange &aHost)[inline]

Refreshes this mark from the mark in the host stream buffer and tells the shared streaming manager to drop any reference it has to to this mark object.

Parameters
aHostThe object that manages shared streaming.

IsEmpty ( )

TBool IsEmpty()const [inline]

Tests whether this mark object is uninitialised.

Return Value
True, if this mark object is uninitialised; false, otherwise.

IsWith ( TStreamExchange & )

TBool IsWith(TStreamExchange &aHost)const [inline]

Tests whether the specified shared streaming manager currently refers to this mark object.

Parameters
aHostThe object that manages shared streaming.
Return Value
True, if the shared stream manager refers to this mark; false, otherwise.

Position ( )

TStreamPos Position()const [inline]

Gets the position of the mark.

Return Value
The stream position.

ReadL ( TStreamExchange &, TAny *, TInt )

TInt ReadL(TStreamExchange &aHost,
TAny *aPtr,
TIntaMaxLength
)[inline]

Reads data from the shared stream into the specified memory location.

Parameters
aHostThe object that manages shared streaming.
aPtrA pointer to the target memory location for the data read from the shared stream.
aMaxLengthThe maximum number of bytes to be read.
Return Value
The number of bytes read.

ReadL ( TStreamExchange &, TDes8 &, TRequestStatus & )

IMPORT_C TIntReadL(TStreamExchange &aHost,
TDes8 &aDes,
TRequestStatus &aStatus
)

ReadL ( TStreamExchange &, TDes8 &, TInt, TRequestStatus & )

TInt ReadL(TStreamExchange &aHost,
TDes8 &aDes,
TIntaMaxLength,
TRequestStatus &aStatus
)[inline]

Reads data, asynchronously, from the shared stream into the specified descriptor.

If the function leaves, then no read request will have been initiated.

Parameters
aHostThe object that manages shared streaming.
aDesThe target descriptor for the data read from the shared stream.
aMaxLengthThe maximum number of bytes to be read.
aStatusThe request status that indicates the completion status of this asynchronous request.
Return Value
The maximum number of bytes to be read, as used in this request. This can be different to the value supplied in aMaxLength; this is dependent on the implementation of the underlying stream.

ReadL ( TStreamExchange &, MStreamInput &, TStreamTransfer )

TStreamTransfer ReadL(TStreamExchange &aHost,
MStreamInput &anInput,
TStreamTransferaTransfer
)[inline]

Reads data from the shared stream into the specified data sink.

Parameters
aHostThe object that manages shared streaming.
anInputThe sink which is the target for the read operation.
aTransferDefines the amount of data available to be read from the shared stream.
Return Value
The amount of data that was not consumed.

ReadL ( TStreamExchange &, MStreamInput &, TInt )

TInt ReadL(TStreamExchange &aHost,
MStreamInput &anInput,
TIntaMaxLength
)[inline]

Reads data from the shared stream into the specified data sink.

Parameters
aHostThe object that manages shared streaming.
anInputThe sink which is the target for the read operation.
aMaxLengthThe maximum amount of data available to be read from the shared stream.
Return Value
The amount of data that was not consumed.

ReadL ( TStreamExchange &, MStreamInput & )

voidReadL(TStreamExchange &aHost,
MStreamInput &anInput
)[inline]

Reads data from the shared stream into the specified data sink.

No explicit limit is placed on the amount of data that can be read.

Parameters
aHostThe object that manages shared streaming.
anInputThe sink which is the target for the read operation.

RelatesTo ( TStreamExchange & )

TBool RelatesTo(TStreamExchange &aHost)const [inline]

Tests whether the specified shared streaming manager currently refers to this mark object OR whether this mark object is initialised.

See also: IsWith() TStreamExchange::IsActive()

Parameters
aHostThe object that manages shared streaming.
Return Value
True, if the shared stream manager refers to this mark OR if this mark object is initialised; false, otherwise.

SeekL ( TStreamExchange &, TStreamPos )

voidSeekL(TStreamExchange &aHost,
TStreamPosaPos
)[inline]

SeekL ( TStreamExchange &, TStreamLocation, TInt )

TStreamPos SeekL(TStreamExchange &aHost,
TStreamLocationaLocation,
TIntanOffset = 0
)[inline]

Moves the position of the mark in the host stream.

The new position is calculated by adding the specified offset to one of:

the position of the beginning of the host stream

the position of the end of the host stream

the position of the current mark.

Parameters
aHostThe object that manages shared streaming.
aLocationThe location in the host stream on which the calculation of the new position is based.
anOffsetThe offset value.
Return Value
The new position of the mark.

SeekL ( TStreamExchange &, TInt )

TStreamPos SeekL(TStreamExchange &aHost,
TIntanOffset
)[inline]

Moves the position of the mark in the host stream.

Parameters
aHostThe object that manages shared streaming.
anOffsetThe amount by which the position of the mark is to be moved relative to the existing position of the mark.
Return Value
The new position of the mark.

TellL ( TStreamExchange & )

TStreamPos TellL(TStreamExchange &aHost)const [inline]

Gets the position of the mark within the host stream.

Parameters
aHostThe object that manages shared streaming.
Return Value
The stream position.

Withdraw ( TStreamExchange & )

voidWithdraw(TStreamExchange &aHost)[inline]

Instructs the shared streaming manager to remove any reference it has to this mark object.

Parameters
aHostThe object that manages shared streaming.

WriteL ( TStreamExchange &, const TAny *, TInt )

voidWriteL(TStreamExchange &aHost,
const TAny *aPtr,
TIntaLength
)[inline]

Writes data from the specified memory location into the shared stream.

Parameters
aHostThe object that manages shared streaming.
aPtrA pointer to the memory location from which data is to be written to the shared stream.
aLengthThe number of bytes to be written.

WriteL ( TStreamExchange &, const TDesC8 &, TRequestStatus & )

IMPORT_C TIntWriteL(TStreamExchange &aHost,
const TDesC8 &aDes,
TRequestStatus &aStatus
)

Writes data, asynchronously, from the specified descriptor into the shared stream.

The maximum number of bytes to be written is the value of the maximum length of the descriptor.

If the function leaves, then no write request will have been initiated.

Parameters
aHostThe object that manages shared streaming.
aDesThe source descriptor for the data to be written into the shared stream.
aStatusThe request status that indicates the completion status of this asynchronous request.
Return Value
The maximum number of bytes to be written, as used in this request. This can be different to the maximum length of the descriptor; this is dependent on the implementation.

WriteL ( TStreamExchange &, const TDesC8 &, TInt, TRequestStatus & )

TInt WriteL(TStreamExchange &aHost,
const TDesC8 &aDes,
TIntaMaxLength,
TRequestStatus &aStatus
)[inline]

Writes data, asynchronously, from the specified descriptor into the shared stream.

If the function leaves, then no write request will have been initiated.

Parameters
aHostThe object that manages shared streaming.
aDesThe source descriptor for the data to be written into the shared stream.
aMaxLengthThe maximum number of bytes to be written.
aStatusThe request status that indicates the completion status of this asynchronous request.
Return Value
The maximum number of bytes to be written, as used in this request. This can be different to the value supplied in aMaxLength; this is dependent on the implementation.

WriteL ( TStreamExchange &, MStreamOutput &, TStreamTransfer )

TStreamTransfer WriteL(TStreamExchange &aHost,
MStreamOutput &anOutput,
TStreamTransferaTransfer
)[inline]

Writes data into the shared stream from the specified data source.

Parameters
aHostThe object that manages shared streaming.
anOutputThe data source for the write operation.
aTransferDefines the amount of data to be pulled from the output stream object.
Return Value
A stream transfer object defining the amount of data that was not consumed.

WriteL ( TStreamExchange &, MStreamOutput &, TInt )

TInt WriteL(TStreamExchange &aHost,
MStreamOutput &anOutput,
TIntaMaxLength
)[inline]

Writes data into the shared stream from the specified data source

Parameters
aHostThe object that manages shared streaming.
anOutputThe data source for the write operation.
aMaxLengthThe maximum amount of data available to be written.
Return Value
The amount of data that was not consumed.

WriteL ( TStreamExchange &, MStreamOutput & )

voidWriteL(TStreamExchange &aHost,
MStreamOutput &anOutput
)[inline]

Writes data into the shared stream from the specified data source.

No explicit limit is placed on the amount of data that can be written.

Parameters
aHostThe object that manages shared streaming.
anOutputThe data source for the write operation.

operator TStreamMark * ( )

operator TStreamMark *()[inline]

operator const TStreamMark * ( )

operator const TStreamMark *()const [inline]

operator!= ( const TStreamMark & )

TBool operator!=(const TStreamMark &aMark)const [inline]

Tests whether this object and the specified shared stream mark object are different objects.

Parameters
aMarkA pointer to a shared stream mark object.
Return Value
True, if the two objects are different objects; false, otherwise.

operator!= ( const TStreamMark * )

TBool operator!=(const TStreamMark *aPtr)const [inline]

operator= ( TStreamPos )

TStreamMark &operator=(TStreamPosaPos)[inline]

Assigns the specified stream position value to this shared stream mark object.

Parameters
aPosThe stream position value to be assigned.
Return Value
A reference to this shared stream mark object.

operator== ( const TStreamMark & )

TBool operator==(const TStreamMark &aMark)const [inline]

Tests whether this object and the specified referenced shared stream mark object are the same object.

Parameters
aMarkA reference to a shared stream mark object.
Return Value
True, if the two objects are the same object; false, otherwise.

operator== ( const TStreamMark * )

TBool operator==(const TStreamMark *aPtr)const [inline]