ESock::RMetaExtensionContainer Class Reference

class ESock::RMetaExtensionContainer : public ESock::RMetaExtensionContainerC

Represents an appendable meta extension container.

Inherits from

Constructor & Destructor Documentation

RMetaExtensionContainer()

IMPORT_CRMetaExtensionContainer()

Default c'tor

Member Functions Documentation

AppendContainerL(const RMetaExtensionContainerC &)

IMPORT_C voidAppendContainerL(const RMetaExtensionContainerC &aBaseContainer)
Appends a container to the list of container implementations. Appends an existing container. Extensions in aBaseContainer container will override any extensions of the same type already present in the container this method is called on.
Exceptions
Leaves

with KErrNone on success, KErrAlreadyExists if the container is already present, or any other system-wide error code.

Parameters

const RMetaExtensionContainerC & aBaseContainer

AppendExtension(const Meta::SMetaData *)

IMPORT_C TIntAppendExtension(const Meta::SMetaData *aExtension)

Adds a meta extension to the container, which will take ownership on success.

Parameters

const Meta::SMetaData * aExtensionThe meta extension to add

AppendExtensionL(const Meta::SMetaData *)

IMPORT_C voidAppendExtensionL(const Meta::SMetaData *aExtension)
Adds a meta extension to the container, which will take ownership on success.
Exceptions
Leaves

with KErrAlreadyExists If a meta extension of the same type is in the container, or other system-wide error codes

Parameters

const Meta::SMetaData * aExtensionThe meta extension to add

AppendableContainerArray()

CMetaExtensionContainerArray *AppendableContainerArray()const [private]

AppendableExtensionContainer()

CMetaExtensionContainer *AppendableExtensionContainer()const [private]

Close()

IMPORT_C voidClose()

Releases a reference to the underlying container implementation

CreateContainerArrayL()

voidCreateContainerArrayL()[private]
Creates a new container implementations
Exceptions
Any

system wide error code

CreateExtensionContainerL()

voidCreateExtensionContainerL()[private]
Creates a new container implementations
Exceptions
Any

system wide error code

FindExtension(const Meta::STypeId &)

IMPORT_C const Meta::SMetaData *FindExtension(const Meta::STypeId &aTypeId)const

Finds the extension specified within the container

Parameters

const Meta::STypeId & aTypeIdThe STypeId of the meta extension to find

FindExtensionL(const Meta::STypeId &)

IMPORT_C const Meta::SMetaData &FindExtensionL(const Meta::STypeId &aTypeId)const
Finds the extension specified within the container
Exceptions
Leaves

with KErrNotFound if the meta extension was not present in the container

Parameters

const Meta::STypeId & aTypeIdThe STypeId of the meta extension to find

Open()

IMPORT_C voidOpen()

If the container is already open a reference is added to the container. If the container is not open a new appendable root meta extension container will be created and a reference added.

Open(const RMetaExtensionContainerC &)

IMPORT_C voidOpen(const RMetaExtensionContainerC &aBaseContainer)

A new appendable meta extension container will be created using the supplied container as the base container to build on. The container must not already be open.

Parameters

const RMetaExtensionContainerC & aBaseContainerContainer to use as the base meta extension container. A reference will be automatically added to this.

Member Data Documentation

CMetaExtensionContainer * iCurrentExtensionContainer

CMetaExtensionContainer *iCurrentExtensionContainer[private]

TBool iIsLazyCreationDone

TBool iIsLazyCreationDone[private]

TBool iIsOpen

TBool iIsOpen[private]