RWriteStream Class Reference

class RWriteStream

The write stream interface. The process of externalising to a stream is achieved through a reference to an object of this type.

A store aware class defines and implements an ExternalizeL() member function which is used to externalise that object and takes a reference to an RWriteStream as the interface to the write stream.

Public Member Functions
RWriteStream()
RWriteStream(const MExternalizer< TStreamRef > &)
RWriteStream(MStreamBuf *)
IMPORT_C voidClose()
IMPORT_C voidCommitL()
voidPop()
IMPORT_C voidPushL()
IMPORT_C voidRelease()
MStreamBuf *Sink()
IMPORT_C voidWriteInt16L(TInt)
IMPORT_C voidWriteInt32L(TInt32)
IMPORT_C voidWriteInt8L(TInt)
IMPORT_C voidWriteL(const TDesC8 &)
IMPORT_C voidWriteL(const TDesC8 &, TInt)
IMPORT_C voidWriteL(const TUint8 *, TInt)
IMPORT_C voidWriteL(RReadStream &)
IMPORT_C voidWriteL(RReadStream &, TInt)
IMPORT_C voidWriteL(const TDesC16 &)
IMPORT_C voidWriteL(const TDesC16 &, TInt)
IMPORT_C voidWriteL(const TUint16 *, TInt)
IMPORT_C voidWriteReal32L(TReal)
IMPORT_C voidWriteReal64L(TReal64)
IMPORT_C voidWriteUint16L(TUint)
IMPORT_C voidWriteUint32L(TUint32)
IMPORT_C voidWriteUint8L(TUint)
Protected Member Functions
voidAttach(MStreamBuf *)
voidDetach()
Private Member Functions
IMPORT_C voidWriteRefL(TStreamRef)
Private Attributes
const MExternalizer< TStreamRef > *iExterL
MStreamBuf *iSnk

Constructor & Destructor Documentation

RWriteStream()

RWriteStream()[inline]

The stream buffer sink, as returned by Sink(), is set to NULL, and the stream has no associated Store map.

RWriteStream(const MExternalizer< TStreamRef > &)

RWriteStream(const MExternalizer< TStreamRef > &anExter)[inline]

Constructs a write stream with an associated store map. The stream buffer sink is set to NULL.

Parameters

const MExternalizer< TStreamRef > & anExterSpecifies an externaliser. For example, CStoreMap implements MExternalizer<TStreamRef>.

RWriteStream(MStreamBuf *)

RWriteStream(MStreamBuf *aSink)[inline]

Constructs a write stream over the supplied stream buffer. The stream has no associated Store map.

Parameters

MStreamBuf * aSinkThe stream buffer used to write to the write stream.

Member Functions Documentation

Attach(MStreamBuf *)

voidAttach(MStreamBuf *aSink)[protected, inline]

Sets the stream buffer sink for this write stream. The existing sink, if there is one, will be discarded.

This is useful for derived classes, enabling them to set the sink following construction.

Note:

Release() is not called for discarded sinks.

Parameters

MStreamBuf * aSinkThe stream buffer sink for this write stream.

Close()

IMPORT_C voidClose()

Commits data to the stream before freeing resources used by the stream. This ensures that any buffered data is written to the stream.

Note that the function cannot leave. Any errors arising from the attempt to commit data to the stream are ignored.

CommitL()

IMPORT_C voidCommitL()

Ensures that any buffered data is written to the stream. Once committed, it is not possible to roll back the newly written data.

Detach()

voidDetach()[protected, inline]

Sets the stream buffer sink for this write stream to NULL. The existing sink, if there is one, will be discarded.

Note:

Release() is not called for discarded sinks.

Pop()

voidPop()[inline]

Removes the cleanup item for this write stream object from the cleanup stack.

PushL()

IMPORT_C voidPushL()

Puts a cleanup item for this write stream object onto the cleanup stack. This allows allocated resources to be cleaned up if a subsequent leave occurs.

Release()

IMPORT_C voidRelease()

Frees resources before abandoning the stream. The function is called after data has been committed to the stream.

Note that if a cleanup item for the stream was placed on the cleanup stack when the stream was opened (e.g by a call to RStoreWriteStreamss CreateLC(), OpenLC(), ReplaceLC() or RDictionaryStores AssignLC() etc), then this function need not be called explicitly; clean up is implicitly done by CleanupStack::PopAndDestroy().

Sink()

MStreamBuf *Sink()[inline]

Gets the underlying stream buffer for the write stream. This provides access to the stream-buffer implementation used by the write stream.

WriteInt16L(TInt)

IMPORT_C voidWriteInt16L(TIntaValue)

Writes a TInt value as a 16 bit value to this stream.

Parameters

TInt aValueThe value to be written to this stream.

WriteInt32L(TInt32)

IMPORT_C voidWriteInt32L(TInt32aValue)

Writes a TInt32 value as a 32 bit value to this stream.

Parameters

TInt32 aValueThe value to be written to this stream.

WriteInt8L(TInt)

IMPORT_C voidWriteInt8L(TIntaValue)

Writes a TInt value as an 8 bit value to this stream.

Parameters

TInt aValueThe value to be written to this stream.

WriteL(const TDesC8 &)

IMPORT_C voidWriteL(const TDesC8 &aDes)

Writes the content of the 8 bit descriptor to the stream. No other information is written to this write stream.

Parameters

const TDesC8 & aDesA reference to a descriptor. Passing the build independent type TDesC& allows the compiler to choose the appropriate WriteL() variant (i.e the 8 bit or the 16 bit) at build time.

WriteL(const TDesC8 &, TInt)

IMPORT_C voidWriteL(const TDesC8 &aDes,
TIntaLength
)

Writes data of the specified length from the 8 bit descriptor to the stream. No other information is written to this write stream.

Parameters

const TDesC8 & aDesA reference to a descriptor. Passing the build independent type TDesC& allows the compiler to choose the appropriate WriteL() variant (i.e the 8 bit or the 16 bit) at build time.
TInt aLengthThe length of data to be written to this stream.

WriteL(const TUint8 *, TInt)

IMPORT_C voidWriteL(const TUint8 *aPtr,
TIntaLength
)

Writes 8 bit data of the specified length from the specified location to this write stream.

Parameters

const TUint8 * aPtrThe location from where data is to be streamed out.
TInt aLengthThe length of data to be streamed out.

WriteL(RReadStream &)

IMPORT_C voidWriteL(RReadStream &aStream)

Writes the content of the specified read stream to this write stream.

Parameters

RReadStream & aStreamA reference to a read stream which is to be written to this stream.

WriteL(RReadStream &, TInt)

IMPORT_C voidWriteL(RReadStream &aStream,
TIntaLength
)

Writes data of the specified length from the specified read stream to this stream.

Parameters

RReadStream & aStreamA reference to a read stream part of whose content is to be written to this stream.
TInt aLengthThe length of data from the read stream to be written to this write stream.

WriteL(const TDesC16 &)

IMPORT_C voidWriteL(const TDesC16 &aDes)

Writes the content of the 16 bit descriptor to the stream. No other information is written to this write stream.

Parameters

const TDesC16 & aDesA reference to a descriptor. Passing the build independent type TDesC& allows the compiler to choose the appropriate WriteL() variant (i.e the 8 bit or the 16 bit) at build time.

WriteL(const TDesC16 &, TInt)

IMPORT_C voidWriteL(const TDesC16 &aDes,
TIntaLength
)

Writes data of the specified length from the 16 bit descriptor to the stream. No other information is written to this write stream.

Parameters

const TDesC16 & aDesA reference to a descriptor. Passing the build independent type TDesC& allows the compiler to choose the appropriate WriteL() variant (i.e the 8 bit or the 16 bit) at build time.
TInt aLengthThe length of data to be written to this stream.

WriteL(const TUint16 *, TInt)

IMPORT_C voidWriteL(const TUint16 *aPtr,
TIntaLength
)

Writes 16 bit data of the specified length from the specified location to this write stream.

Parameters

const TUint16 * aPtrThe location from where data is to be streamed out.
TInt aLengthThe length of data to be streamed out.

WriteReal32L(TReal)

IMPORT_C voidWriteReal32L(TRealaValue)

Writes a TReal value as a 32 bit value to this stream.

Parameters

TReal aValueThe value to be written to this stream.

WriteReal64L(TReal64)

IMPORT_C voidWriteReal64L(TReal64aValue)

Writes a TReal64 value as a 64 bit value to this stream.

Parameters

TReal64 aValueThe value to be written to this stream.

WriteRefL(TStreamRef)

IMPORT_C voidWriteRefL(TStreamRefaRef)[private]

Parameters

TStreamRef aRef

WriteUint16L(TUint)

IMPORT_C voidWriteUint16L(TUintaValue)

Writes a TUint value as a 16 bit value to this stream.

Parameters

TUint aValueThe value to be written to this stream.

WriteUint32L(TUint32)

IMPORT_C voidWriteUint32L(TUint32aValue)

Writes a TUint32 value as a 32 bit value to this stream.

Parameters

TUint32 aValueThe value to be written to this stream.

WriteUint8L(TUint)

IMPORT_C voidWriteUint8L(TUintaValue)

Writes a TUint value as an 8 bit value to this stream.

Parameters

TUint aValueThe value to be written to this stream.

Member Data Documentation

const MExternalizer< TStreamRef > * iExterL

const MExternalizer< TStreamRef > *iExterL[private]

MStreamBuf * iSnk

MStreamBuf *iSnk[private]