MVPbkContactStore Class Reference

class MVPbkContactStore : public MVPbkObjectHierarchy

A contact store interface that is implemented by all contact stores.

Using this interface clients can access a single contact store. Usually it's more suitable to use CVPbkContactManager and MVPbkContactStoreList for accessing stores because multiple stores can be handled at a same time.

The store is opened asynchronously and it must not be used before notification has arrived. If client opens the store it must also close the store after usage.

The interface can be used for retriveing properties and information of the store and also for creating a view, a new contact or a new group (if supported).

Inherits from

Constructor & Destructor Documentation


~MVPbkContactStore()[inline, virtual]

Clients don't destroy the stores directly because they don't own them. The ownerships are managed by CVPbkContactManager.

Member Functions Documentation

Close(MVPbkContactStoreObserver &)

voidClose(MVPbkContactStoreObserver &aObserver)[pure virtual]

Closes this contact store from a single observer.

This can be always called safely even if OpenL or ReplaceL hasn't been called. If the client calls OpenL it must also call this after usage, The observer will no longer receive events from this store. If there are other observers for the store then the store will remain open for them.


MVPbkContactStoreObserver & aObserverAn observer that was given in OpenL or ReplaceL.


MVPbkContactLinkArray *ContactGroupsLC()const [pure virtual]

Returns contact groups contained in this store.

MVPbkContactStoreProperties::SupportsContactGroups must be true if this is used. Implementation should return an empty link array and not NULL.


MVPbkContactStore &ContactStore()const [inline, virtual]

Returns the contact store where this object originates from.


TAny *ContactStoreExtension(TUid)[inline, virtual]

Returns an extension point for this interface or NULL.



CreateLinkFromInternalsLC(RReadStream &)

MVPbkContactLink *CreateLinkFromInternalsLC(RReadStream &aStream)const [pure virtual]

This is part of Virtual Phonebook internal framefork and not usable for clients. Clients use CVPbkContactManager for creating links from a stream.

Creates a link array from a stream. Stream contains the internals of the contact link. Internals are the contact store implementation specific part of the package format.

NOTE: this must work wheter the OpenL has been called or not. This means that a link can not contain any data that would need an open store before internalizing.


RReadStream & aStreamA stream containing the link internals.


MVPbkContactGroup *CreateNewContactGroupLC()[pure virtual]

Creates a new contact group associated to this store.

MVPbkContactStoreProperties::SupportsContactGroups must be true if this is used. The contact group might be saved to the store immeadiately depending on the store implementation. It is left open for editing. Use CommitL to commit the creation of the group and its content.


if the store doesn't support groups. Client should check store properties before calling this.

MVPbkContactStoreProperties MVPbkContactGroup MVPbkStoreContact MVPbkStoreContact::CommitL


MVPbkStoreContact *CreateNewContactLC()[pure virtual]

Creates a new contact associated to this store.

The contact can be edited and then it must be committed by calling MVPbkStoreContact::CommitL for actually saving it to the store.

MVPbkStoreContact MVPbkStoreContact::CommitL

CreateViewLC(const CVPbkContactViewDefinition &, MVPbkContactViewObserver &, const MVPbkFieldTypeList &)

MVPbkContactView *CreateViewLC(const CVPbkContactViewDefinition &aViewDefinition,
MVPbkContactViewObserver &aObserver,
const MVPbkFieldTypeList &aSortOrder
)[pure virtual]

Creates a new contact view from the store asynchronously.

Client gets the ownership of the view. The content of the view depends on the CVPbkContactViewDefinition. The client must wait the observer event before using the view.

MVPbkContactView CVPbkContactViewDefinition


const CVPbkContactViewDefinition & aViewDefinitionDefines the properties of the new view.
MVPbkContactViewObserver & aObserverAn observer for the view events.
const MVPbkFieldTypeList & aSortOrderField types that are used in the view contact in the same order as in this list. Notice that stores may not support all possible field types in a view contact. The implementation of the view contact must have as many fields as the sort order. If the store doesn't support the field type in a view contact then it sets empty data to the field.

OpenL(MVPbkContactStoreObserver &)

voidOpenL(MVPbkContactStoreObserver &aObserver)[pure virtual]

Opens this contact store asynchronously.

Calls back the observer when the opening completes. Notice that the same store instance can be opened by several observers.


If another asynchronous operation is already in progress.


MVPbkContactStoreObserver & aObserverAn observer for the store.


MVPbkObjectHierarchy &ParentObject()const [inline, virtual]

Returns the parent object of this object. For the root of the hierarchy returns self.

ReplaceL(MVPbkContactStoreObserver &)

voidReplaceL(MVPbkContactStoreObserver &aObserver)[pure virtual]

Replaces an existing store and opens it asynchronously.

E.g. If the database is a file then this replaces the database if it's not locked by other clients. If the store implementation can not implment replacing then this behaves like OpenL.

If the store does not exist, it is created if possible. Calls back the observer when the opening completes.


MVPbkContactStoreObserver & aObserverAn observer for the store.


const MVPbkContactStoreInfo &StoreInfo()const [pure virtual]

Returns a contact store information. Information can vary runtime.


const MVPbkContactStoreProperties &StoreProperties()const [pure virtual]

Returns fixed properties of this contact store.

Fixed properties do not change when the store is open. The store must be opened before retrieving the properties.