CMMFPtrBuffer Class Reference

#include <mmf/server/mmfdatabuffer.h>

Link against: mmfserverbaseclasses.lib

class CMMFPtrBuffer : public CMMFDataBuffer

Inherits from

Detailed Description

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.

Constructor & Destructor Documentation

~CMMFPtrBuffer ( )

IMPORT_C~CMMFPtrBuffer()

Destructor.

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

Member Function Documentation

BufferSize ( )

TUint BufferSize()const [virtual]

Reimplemented from CMMFDataBuffer::BufferSize()const

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

Return Value
The size in bytes of the data contained in the CMMFPtrBuffer.

Data ( )

TDes8 &Data()[virtual]

Reimplemented from CMMFDataBuffer::Data()

Returns a descriptor to the data contained in the CMMFPtrBuffer.

Return Value
A reference to a TPtr containing the CMMFPtrBuffer data.

Data ( )

const TDesC8 &Data()const [virtual]

Reimplemented from CMMFDataBuffer::Data()const

Returns a descriptor to the data contained in the CMMFPtrBuffer.

Return Value
A const reference to a TPtr containing the CMMFPtrBuffer data.

NewL ( )

IMPORT_C CMMFPtrBuffer *NewL()[static]

Reimplemented from CMMFDataBuffer::NewL()

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

Return Value
A pointer to a new 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
aPtrA reference to a TPtr containing the CMMFPtrBuffer data.
Return Value
A pointer to a new CMMFPtrBuffer.

SetPosition ( TUint )

voidSetPosition(TUintaPosition)[virtual]

Reimplemented from CMMFBuffer::SetPosition(TUint)

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
aPositionThe position.

SetPtr ( const TPtr8 & )

IMPORT_C voidSetPtr(const TPtr8 &aPtr)

Takes a TPtr8 to pre-allocated memory.

Parameters
aPtrThe pointer refernce.

SetRequestSizeL ( TInt )

voidSetRequestSizeL(TIntaSize)[virtual]

Reimplemented from CMMFDataBuffer::SetRequestSizeL(TInt)

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
aSizeThe request size.

SetStatus ( TBufferStatus )

voidSetStatus(TBufferStatusaStatus)[virtual]

Reimplemented from CMMFBuffer::SetStatus(TBufferStatus)

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

Parameters
aStatusThe buffer status. See enum TBufferStatus.