CMMFPtrBuffer Class Reference

class CMMFPtrBuffer : public CMMFDataBuffer

This class is a wrapper class intended to provide support for shared I/O buffers under EKA2 This class, unlike other data buffers does not own memory - rather it contains a pointer to already allocated memory The purpose of this class is that components such as codecs can use CMMFDataBuffers transparently without having to be concerned with whether the buffer is a standard buffer or memory residing in shared I/O

Users of this class need to be very careful when using buffers of this type. It cannot be assumed that a buffer of this type can be written/read by any process other than the current one - example - handing CMMFPtrBuffer to the file server may not work since the file server's process may not have access to write data buffer.

Inherits from

Constructor & Destructor Documentation

CMMFPtrBuffer()

CMMFPtrBuffer()[private, inline]

~CMMFPtrBuffer()

IMPORT_C~CMMFPtrBuffer()

Destructor.

Destructor does no deletion, as this buffer class does not own the memory.

Member Functions Documentation

BufferSize()

TUint BufferSize()const [virtual]

Returns the actual data size (ie. not the max length) of the data contained in the CMMFPtrBuffer.

ConstructL(const TPtr8 &)

voidConstructL(const TPtr8 &aPtr)[private]

ConstructL

Internal ConstructL

Parameters

const TPtr8 & aPtrReference to a TPtr containing the CMMFPtrBuffer data

Data()

TDes8 &Data()[virtual]

Returns a descriptor to the data contained in the CMMFPtrBuffer.

Data()

const TDesC8 &Data()const [virtual]

Returns a descriptor to the data contained in the CMMFPtrBuffer.

NewL()

IMPORT_C CMMFPtrBuffer *NewL()[static]

Function to instantiate a CMMFPtrBuffer. This NewL creates an unititalised CMMFPtrBuffer.

NewL(const TPtr8 &)

IMPORT_C CMMFPtrBuffer *NewL(const TPtr8 &aPtr)[static]

Function to instantiate a CMMFPtrBuffer. This NewL creates a CMMFPtrBuffer which owns a TPtr8.

Parameters

const TPtr8 & aPtrA reference to a TPtr containing the CMMFPtrBuffer data.

SetPosition(TUint)

voidSetPosition(TUintaPosition)[virtual]

Sets the position.

This function is used by components (eg. codecs) which read data from a buffer and wish to store a read position marker for further reads.

Note: The position cannot exceed the size of the actual data not the maximum length.

Parameters

TUint aPositionThe position.

SetPtr(const TPtr8 &)

IMPORT_C voidSetPtr(const TPtr8 &aPtr)

Takes a TPtr8 to pre-allocated memory.

Parameters

const TPtr8 & aPtrThe pointer refernce.

SetRequestSizeL(TInt)

voidSetRequestSizeL(TIntaSize)[virtual]

Sets the request size.

This method is used in cases where a component (eg. a data source) may not be able or be desirable to write to the entire max length of the buffer (eg. variable bit rate codecs). In this case, the SetRequestSizeL() can be set which can be read by the RequestSize() function in the component so that it knows to only write data upto the requested size and not fill the buffer up to its maximum length.

Parameters

TInt aSizeThe request size.

SetStatus(TBufferStatus)

voidSetStatus(TBufferStatusaStatus)[virtual]

Overriden method to set the status. Resets the data size to 0 when the buffer becomes available.

Parameters

TBufferStatus aStatusThe buffer status. See enum TBufferStatus.

Member Data Documentation

TPtr8 iPtr

TPtr8 iPtr[private]