CContactDatabase Class Reference

class CContactDatabase : public CBase

A database of contact items.

Contact items can be added to and removed from the database and items in the database can be opened or read. To edit an item, it must first be opened. Changes to the item can then be committed using CommitContactL() (committing can only take place to an open item).

If the available disk space is less than 128 kilobytes then changes to the contact database cannot be started, and methods such as CreateL() or CommitContactL() will leave with a KErrDiskFull error. Less obviously OpenL() can also fail with KErrDiskFull when trying to update the system template.

Each item has an access count. An item cannot be fully deleted unless its access count is zero. This is to prevent items which have been synchronised with another contacts application from being deleted. Also, if the item is a template, it cannot be deleted if other items are based on it.

More than one contact database can exist on a phone, but there is a default contact database. Its filename is contacts.cdb. It can be moved between drives.

CContactDatabase implements searching and sorting and also provides separate phone number matching functions. These provide a fast way of indexing and looking up phone numbers, e.g. for looking up caller IDs on incoming calls.

The database owns speed dial information. This is a mapping between a single digit integer and a telephone number. There may be up to 9 speed dial telephone numbers; each of them belongs to a contact item in the database. If a contact item is deleted, its speed dial mapping is removed.

The following functions defined in class CContactDatabase are not supported. If called, they leave with KErrNotSupported.

  • ReplacePrefL()

  • ReadPrefL()

  • CreatePrefL()

Inherits from

Nested Classes and Structures

Public Member Functions
~CContactDatabase ()
IMPORT_C void AddContactToGroupL ( TContactItemId , TContactItemId )
IMPORT_C void AddContactToGroupL ( CContactItem &, CContactItem &)
IMPORT_C void AddContactToGroupL ( TContactItemId , TContactItemId , TBool )
IMPORT_C TContactItemId AddNewContactL ( CContactItem &)
void AddObserverL ( MContactDbObserver &)
IMPORT_C CContactItemViewDef * AllFieldsView ()
IMPORT_C void CancelAsyncSort ()
void CancelNotifyRequestL ()
void CleanupLastLockedContact ( TAny *)
void CleanupTableCancel ( TAny *)
IMPORT_C void CloseContactL ( TContactItemId )
IMPORT_C void CloseTables ()
IMPORT_C TInt CntServerResourceCount ()
IMPORT_C void CommitContactL (const CContactItem &)
IMPORT_C void CompactL ()
IMPORT_C TBool CompressRequired ()
IMPORT_C TUint ConnectionId ()
IMPORT_C TBool ContactDatabaseExistsL (const TDesC &)
IMPORT_C TContactItemId ContactIdByGuidL (const TDesC &)
IMPORT_C TBool ContactMatchesHintFieldL ( TInt , TContactItemId )
IMPORT_C CContactIdArray * ContactsChangedSinceL (const TTime &)
IMPORT_C TInt CountL ()
IMPORT_C CContactActiveCompress * CreateCompressorLC ()
IMPORT_C CContactItem * CreateContactCardTemplateL (const TDesC &, TBool )
IMPORT_C CContactItem * CreateContactCardTemplateL (const CContactItem *, const TDesC &, TBool )
IMPORT_C CContactItem * CreateContactCardTemplateLC (const TDesC &, TBool )
IMPORT_C CContactItem * CreateContactCardTemplateLC (const CContactItem *, const TDesC &, TBool )
IMPORT_C CContactItem * CreateContactGroupL ( TBool )
IMPORT_C CContactItem * CreateContactGroupL (const TDesC &, TBool )
IMPORT_C CContactItem * CreateContactGroupLC ( TBool )
IMPORT_C CContactItem * CreateContactGroupLC (const TDesC &, TBool )
IMPORT_C CContactDatabase * CreateL ( TThreadAccess )
IMPORT_C CContactDatabase * CreateL (const TDesC &, TThreadAccess )
IMPORT_C CContactItem * CreateOwnCardL ()
IMPORT_C CContactItem * CreateOwnCardLC ()
IMPORT_C CContactActiveRecover * CreateRecoverLC ()
IMPORT_C void DamageDatabaseL ( TInt )
IMPORT_C void DatabaseBeginL ( TBool )
IMPORT_C void DatabaseBeginLC ( TBool )
IMPORT_C void DatabaseCommitL ( TBool )
IMPORT_C void DatabaseCommitLP ( TBool )
IMPORT_C TBool DatabaseDrive ( TDriveUnit &)
IMPORT_C void DatabaseRollback ()
IMPORT_C TBool DefaultContactDatabaseExistsL ()
IMPORT_C void DeleteContactL ( TContactItemId )
IMPORT_C void DeleteContactsL (const CContactIdArray &)
IMPORT_C void DeleteDatabaseL (const TDesC &)
IMPORT_C void DeleteDefaultFileL ()
IMPORT_C CContactIdArray * DeletedContactsLC ()
IMPORT_C void ExportSelectedContactsL (const TUid &, const CContactIdArray &, RWriteStream &, TInt , TBool )
IMPORT_C void ExportSelectedContactsL (const TUid &, const CContactIdArray &, RWriteStream &, TInt , const Versit::TVersitCharSet , TBool )
IMPORT_C void ExportSelectedContactsL (const TUid &, const CContactIdArray &, RWriteStream &, TInt , const TInt64 , MConverterCallBack *, const TVCardVersion , const TBool , Versit::TVersitCharSet , TBool )
IMPORT_C TInt FileSize ()
IMPORT_C TPtrC FileUid ()
IMPORT_C void FilterDatabaseL ( CCntFilter &)
IMPORT_C CIdleFinder * FindAsyncL (const TDesC &, const CContactItemFieldDef *, MIdleFindObserver *)
IMPORT_C CIdleFinder * FindInTextDefAsyncL (const MDesCArray &, MIdleFindObserver *, const TCallBack &)
IMPORT_C CIdleFinder * FindInTextDefAsyncL (const MDesCArray &, const CContactTextDef *, MIdleFindObserver *, const TCallBack &)
IMPORT_C CContactIdArray * FindInTextDefLC (const MDesCArray &, const TCallBack &)
IMPORT_C CContactIdArray * FindInTextDefLC (const MDesCArray &, CContactTextDef *, const TCallBack &)
IMPORT_C CContactIdArray * FindLC (const TDesC &, const CContactItemFieldDef *)
IMPORT_C CContactIdArray * GetCardTemplateIdListL ()
IMPORT_C TInt GetCurrentDatabase ( TDes &)
IMPORT_C TContactItemId GetCurrentItem ()
IMPORT_C TUid GetDbViewContactType ()
IMPORT_C void GetDefaultNameL ( TDes &)
IMPORT_C CContactIdArray * GetGroupIdListL ()
IMPORT_C void GetLastSyncDateL ( TContactSyncId , TTime &)
IMPORT_C TContactItemId GetSpeedDialFieldL ( TInt , TDes &)
TInt GroupCount ()
void HandleDatabaseEventL ( RDbNotifier::TEvent )
IMPORT_C void HandleDatabaseEventL (const TContactDbObserverEvent &)
void HandleDiskSpaceEvent ( TInt )
IMPORT_C TContactItemId ICCTemplateIdL ()
IMPORT_C TContactItemId ICCTemplateIdL ( TUid )
IMPORT_C CArrayPtr < CContactItem > * ImportContactsL (const TUid &, RReadStream &, TBool &, TInt )
IMPORT_C TBool IsDamaged ()
TBool IsICCSynchronisedL ()
IMPORT_C CDesCArray * ListDatabasesL ()
IMPORT_C CDesCArray * ListDatabasesL ( TDriveUnit )
IMPORT_C TInt LockServerCallBackL ( TUint )
IMPORT_C void LockServerCleanup ()
IMPORT_C CContactDatabase * LockServerConnectL (const TDesC &)
IMPORT_C CContactDatabase * LockServerConnectL (const TDesC &, TInt )
IMPORT_C TInt64 MachineId ()
IMPORT_C CContactIdArray * MatchPhoneNumberL (const TDesC &, TInt )
TInt NullUidValue ()
IMPORT_C CContactOpenOperation * Open ( TRequestStatus &, TThreadAccess )
IMPORT_C CContactOpenOperation * Open (const TDesC &, TRequestStatus &, TThreadAccess )
IMPORT_C CContactItem * OpenContactL ( TContactItemId )
IMPORT_C CContactItem * OpenContactL ( TContactItemId , const CContactItemViewDef &)
IMPORT_C CContactItem * OpenContactLX ( TContactItemId )
IMPORT_C CContactItem * OpenContactLX ( TContactItemId , const CContactItemViewDef &)
void OpenDatabaseAsyncL ( TRequestStatus &, const TDesC &)
IMPORT_C CContactDatabase * OpenL ( TThreadAccess )
IMPORT_C CContactDatabase * OpenL (const TDesC &, TThreadAccess )
IMPORT_C void OpenTablesL ()
IMPORT_C void OverrideMachineUniqueId ( TInt64 )
IMPORT_C TContactItemId OwnCardId ()
IMPORT_C TContactItemId PhonebookGroupIdL ()
IMPORT_C TContactItemId PrefTemplateId ()
IMPORT_C CArrayPtr < CContactItem > * ReadContactAndAgentL ( TContactItemId )
IMPORT_C CContactItem * ReadContactL ( TContactItemId )
IMPORT_C CContactItem * ReadContactL ( TContactItemId , const CContactItemViewDef &)
IMPORT_C CContactItem * ReadContactLC ( TContactItemId )
IMPORT_C CContactItem * ReadContactLC ( TContactItemId , const CContactItemViewDef &)
IMPORT_C void ReadContactTextDefL (const CContactItem &, TDes &)
IMPORT_C void ReadContactTextDefL (const CContactItem &, TDes &, CContactTextDef *)
IMPORT_C void ReadContactTextDefL ( TContactItemId , TDes &)
IMPORT_C void ReadContactTextDefL ( TContactItemId , TDes &, CContactTextDef *)
IMPORT_C CContactItem * ReadMinimalContactL ( TContactItemId )
IMPORT_C CContactItem * ReadMinimalContactLC ( TContactItemId )
IMPORT_C void RecoverL ()
IMPORT_C void RecreateSystemTemplateL (const TDesC &)
IMPORT_C void RemoveContactFromGroupL ( CContactItem &, CContactItem &)
IMPORT_C void RemoveContactFromGroupL ( TContactItemId , TContactItemId )
void RemoveObserver (const MContactDbObserver &)
IMPORT_C void RemoveSpeedDialFieldL ( TContactItemId , TInt )
IMPORT_C CContactDatabase * ReplaceL ( TThreadAccess )
IMPORT_C CContactDatabase * ReplaceL (const TDesC &, TThreadAccess )
IMPORT_C void ResetServerSpeedDialsL ()
IMPORT_C void RestoreSortOrderL ()
IMPORT_C void SetCntServerHeapFailure ( TInt , TInt )
IMPORT_C TInt SetCurrentDatabase (const TDesC &)
IMPORT_C void SetCurrentItem (const TContactItemId )
IMPORT_C void SetDatabaseDriveL ( TDriveUnit , TBool )
IMPORT_C void SetDateFormatTextL (const TDesC &)
void SetDbConnectionState ( TDbConnState )
IMPORT_C void SetDbViewContactType (const TUid )
IMPORT_C void SetFieldAsSpeedDialL ( CContactItem &, TInt , TInt )
IMPORT_C TContactSyncId SetLastSyncDateL (const TTime &)
IMPORT_C void SetLastSyncDateL ( TContactSyncId , const TTime &)
IMPORT_C void SetOperationTimeOutL (const TInt )
IMPORT_C void SetOwnCardL (const CContactItem &)
IMPORT_C void SetPrefTemplateL (const CContactItem &)
IMPORT_C void SetSortedItemsList ( CContactIdArray *, CArrayFix < TSortPref > *)
IMPORT_C void SetTextDefinitionL ( CContactTextDef *)
IMPORT_C void SetViewDefinitionL ( CContactViewDef *)
IMPORT_C CContactIdArray * SortArrayL (const CContactIdArray *, const CArrayFix < TSortPref > *)
IMPORT_C CContactIdArray * SortArrayLC (const CContactIdArray *, const CArrayFix < TSortPref > *)
IMPORT_C void SortAsyncL ( CArrayFix < TSortPref > *, TRequestStatus &)
IMPORT_C void SortAsyncL ( CArrayFix < TSortPref > *, TRequestStatus &, MContactSortObserver &)
IMPORT_C void SortByTypeL ( CArrayFix < TSortPref > *)
IMPORT_C void SortL ( CArrayFix < TSortPref > *)
IMPORT_C const CArrayFix < TSortPref > * SortOrder ()
IMPORT_C const CContactIdArray * SortedItemsL ()
TUid SpeedDialFieldUidFromSpeedDialPosition ( TInt )
IMPORT_C void StoreSortOrderL ()
IMPORT_C const CContentType & TemplateContentType (const CContactItemField &)
TInt TemplateCount ()
IMPORT_C TContactItemId TemplateId ()
IMPORT_C const CContactTextDef * TextDefinition ()
IMPORT_C CContactIdArray * UnfiledContactsL ()
IMPORT_C CContactItem * UpdateContactLC ( TContactItemId , CContactItem *)
IMPORT_C TVersion Version ()
IMPORT_C TInt WastedSpaceInBytes ()
IMPORT_C TContactItemId doAddNewContactL ( CContactItem &, TBool , TBool )
IMPORT_C void doCommitContactL (const CContactItem &, TBool , TBool )
IMPORT_C void doDeleteContactL ( TContactItemId , TBool , TBool , TBool )
Private Member Functions
CContactDatabase ()
void AddCntToOpenedGroupL ( TContactItemId , CContactItem &)
TBool AddContactToSortListL ( TContactItemId , TContactItemId &, CBase *, TUid &, TBool )
void AddToTemplateListL (const TContactItemId )
void CheckDbConnForReadL ()
void CheckDbConnForRecoverL ()
void CheckDbConnForWriteL ()
TBool CheckSortError ( TInt )
void CheckTemplateField ( CContactItem &)
TBool CheckType ( TUid )
void CleanupDatabaseRollback ( TAny *)
TInt CompareSortFieldsL (const CContactItem &)
void ConstructL ()
void ConstructTableUsageFlagsFromSortOrderL ( TInt &)
TInt ContactPosL ( TContactItemId )
CContactConverter & ConverterL (const TUid &)
CContactConverter & ConverterL (const TUid &, const TInt64 , MConverterCallBack *, const TVCardVersion , const TBool )
void CreateViewDefL ()
TBool DatabaseReadyL ()
void DeleteContactSendEventActionL ( TContactItemId , TCntSendEventAction )
TInt DoGotoL ( TContactItemId )
void DoReadContactTextDefL (const CContactItemFieldSet *, TDes &, CContactTextDef *)
void EndAsyncActivityL ()
MLplPersistenceLayerFactory * FactoryL ()
void FetchGroupAndTemplateListsL ()
void HandleDbObserverEventGroupDeletedL (const TContactItemId )
void HandleDbObserverEventGroupOrContactAddedL (const TContactDbObserverEventType , const TContactItemId )
void HandleDbObserverEventGroupOrContactChangedL (const TContactItemId )
void InsertInSortArray (const CContactItem &)
void InsertInSortArrayL (const CContactItem &)
void LoadSyncPluginL ()
void MoveInSortArray (const CContactItem &)
void MoveInSortArrayL (const CContactItem &)
CContactDatabase * NewLC ()
TInt NewSortIndexL (const CContactItem &, TInt , TInt )
TInt NextExistingL ( TInt )
CContactItem * OpenNoMergeLCX ( TContactItemId )
TInt PreviousExistingL ( TInt )
void ReSortL ( CArrayFix < TSortPref > *)
void ReadTemplateIdsL ()
void RemoveFromGroupIds (const TContactItemId )
void RemoveFromSortArray ( TContactItemId )
void RemoveFromTemplateList (const TContactItemId )
void RespondToEventL (const TContactDbObserverEventType , const TContactItemId )
void SortDuplicatesL (const CArrayFix < TSortPref > &, CSortArray &, TInt )
void SortDuplicatesL (const CArrayFix < TSortPref > &, CSortArray &, TInt , TInt , TInt )
CContactIdArray * SortLC (const CArrayFix < TSortPref > *, const CContactIdArray *)
void StartAsyncActivityL ()
TBool SystemTemplateFieldsValid (const CContactItem &)
void ValidateDatabaseNameL (const TParse &)
CContactItem * doCreateContactGroupLC (const TDesC &)
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Public Member Enumerations
enum TContactViewFilter {
EUnfiltered  = 0x00000000, EMailable  = 0x00000001, ESmsable  = 0x00000002, ELandLine  = 0x00000004, EFaxable  = 0x00000008, EPhonable  = 0x00000010, EWork  = 0x00000020, EHome  = 0x00000040, ERingTone  = 0x00000080, EVoiceDial  = 0x00000100, EIMAddress  = 0x00000200, EWirelessVillage  = 0x00000400, ECustomFilter1  = 0x00000800, ECustomFilter2  = 0x00001000, ECustomFilter3  = 0x00002000, ECustomFilter4  = 0x00004000
}
enum TDbConnState {
EDbConnectionOpen  = 0, EDbConnectionNotReady , EDbConnectionFailed , EDbConnectionRecoverRequired , EDbConnectionWriteLockedForBackup , EDbConnectionClosedForRestore , EDbConnectionNeedToCloseForRestore
}
enum TDirection { EAsc , EDesc }
enum TOptions {
EDefault  = 0x0000, EIncludeX  = 0x0001, ETTFormat  = 0x0002, EExcludeUid  = 0x0004, EDecreaseAccessCount  = 0x0008, EImportSingleContact  = 0x0010, EIncreaseAccessCount  = 0x0020, ELocalTime  = 0x0040, ENullTemplateId  = 0x0080, EConverterDefined1  = 0x0100, EConverterDefined2  = 0x0200, EConverterDefined3  = 0x0400, EConverterDefined4  = 0x0800, EConverterDefined5  = 0x1000, EConverterDefined6  = 0x2000, EConverterDefined7  = 0x4000, EConverterDefined8  = 0x8000, EConverterReserved1  = 0x00010000, EConverterReserved2  = 0x00020000, EConverterReserved3  = 0x00040000, EConverterReserved4  = 0x00080000, EConverterReserved5  = 0x00100000, EConverterReserved6  = 0x00200000, EConverterReserved7  = 0x00400000, EConverterReserved8  = 0x00800000, EConverterReserved9  = 0x01000000, EConverterReserved10  = 0x02000000, EConverterReserved11  = 0x04000000, EConverterReserved12  = 0x08000000, EConverterReserved13  = 0x10000000, EConverterReserved14  = 0x20000000, EConverterReserved15  = 0x40000000, EConverterReserved16  = 0x80000000
}
enum TSortDataSource { ENoOrder , EUsesIdentityTableOnly , EUsesAllTables , EIdentityTableNotUsed }
enum TThreadAccess { ESingleThread , EMultiThread }
Private Member Enumerations
enum TSvrSessionType { ESvrSessionPersistent , ESvrSessionTemporary , ESvrSessionFromLockServer }
Public Member Type Definitions
typedef TBuf < KTextFieldMinimalLength > TTextFieldMinimal
Private Attributes
CContactItemViewDef * iAllFieldsView
TInt iAsyncActivityCount
CContactIdArray * iCardTemplateIds
RCntModel * iCntSvr
TCollationMethod iCollateMethod
CContactSynchroniser * iContactSynchroniser
CPrivConverter * iConv
CDataBaseChangeObserver * iDataBaseObserver
TDbConnState iDbConnectionState
TUid iDbViewContactType
CContactIdArray * iGroupIds
CCntIdleSorter * iIdleSorter
CProxyFactory * iProxyFactory
CArrayFix < TSortPref > * iSortOrder
CContactIdArray * iSortedItems
TTime iSyncDate
TBool iTablesOpen
CCntTemplateCache * iTemplateCache
CContactTextDef * iTextDef
CContactViewDef * iView

Constructor & Destructor Documentation

CContactDatabase()

CContactDatabase ( ) [private]

~CContactDatabase()

IMPORT_C ~CContactDatabase ( )

Frees all resources owned by the contact database, prior to its destruction.

Member Functions Documentation

AddCntToOpenedGroupL(TContactItemId, CContactItem &)

void AddCntToOpenedGroupL ( TContactItemId aItemId,
CContactItem & aGroup
) [private]

Parameters

TContactItemId aItemId
CContactItem & aGroup

AddContactToGroupL(TContactItemId, TContactItemId)

IMPORT_C void AddContactToGroupL ( TContactItemId aItemId,
TContactItemId aGroupId
)

Sets a contact item in the database to be a member of a contact group.

The item and group are identified by their IDs.

capability
WriteUserData
leave
KErrNotFound Either the group or the item does not exist.
leave
KErrNotSupported The group is not of type KUidContactGroup.
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

TContactItemId aItemId The ID of the item to add to the group.
TContactItemId aGroupId The ID of the group to which the item should be added.

AddContactToGroupL(CContactItem &, CContactItem &)

IMPORT_C void AddContactToGroupL ( CContactItem & aItem,
CContactItem & aGroup
)

Sets a contact item in the database to be a member of a contact group.

capability
WriteUserData
leave
KErrNotFound Either the group or the item does not exist in the database.
leave
KErrNotSupported The group is not of type KUidContactGroup.
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

CContactItem & aItem The item to add to the group.
CContactItem & aGroup The group to which the item should be added.

AddContactToGroupL(TContactItemId, TContactItemId, TBool)

IMPORT_C void AddContactToGroupL ( TContactItemId aItemId,
TContactItemId aGroupId,
TBool aInTransaction
)

Sets a contact item in the database to be a member of a contact group.

The item and group are identified by their IDs.

capability
WriteUserData
leave
KErrNotFound Either the group or the item does not exist.
leave
KErrNotSupported The group is not of type KUidContactGroup.
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

TContactItemId aItemId The ID of the item to add to the group.
TContactItemId aGroupId The ID of the group to which the item should be added.
TBool aInTransaction This argument should be ignored by developers.

AddContactToSortListL(TContactItemId, TContactItemId &, CBase *, TUid &, TBool)

TBool AddContactToSortListL ( TContactItemId aReqId,
TContactItemId & aActualId,
CBase * aItems,
TUid & aFieldType,
TBool aHasSortOrder
) [private]

Parameters

TContactItemId aReqId
TContactItemId & aActualId
CBase * aItems
TUid & aFieldType
TBool aHasSortOrder

AddNewContactL(CContactItem &)

IMPORT_C TContactItemId AddNewContactL ( CContactItem & aContact )

Adds a new contact item to the database and returns its ID.

capability
WriteUserData
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

CContactItem & aContact The contact item to add to the database.

AddObserverL(MContactDbObserver &)

void AddObserverL ( MContactDbObserver & aChangeNotifier )

Parameters

MContactDbObserver & aChangeNotifier

AddToTemplateListL(const TContactItemId)

void AddToTemplateListL ( const TContactItemId aNewTemplateId ) [private]

Parameters

const TContactItemId aNewTemplateId

AllFieldsView()

IMPORT_C CContactItemViewDef * AllFieldsView ( )

Returns the full view definition, that loads every field, the returned pointer is owned by the CContactDatabase object.

capability
None

CancelAsyncSort()

IMPORT_C void CancelAsyncSort ( )

Cancel the CCntIdleSorter object and clean up resources.

CancelNotifyRequestL()

void CancelNotifyRequestL ( )

CheckDbConnForReadL()

void CheckDbConnForReadL ( ) const [private]

CheckDbConnForRecoverL()

void CheckDbConnForRecoverL ( ) const [private]

CheckDbConnForWriteL()

void CheckDbConnForWriteL ( ) const [private]

CheckSortError(TInt)

TBool CheckSortError ( TInt aError ) [private]

Parameters

TInt aError

CheckTemplateField(CContactItem &)

void CheckTemplateField ( CContactItem & aCnt ) [private]

Sets the template id on the contact item to that of the SystemTemplate after each update or commit operation.

Parameters

CContactItem & aCnt

CheckType(TUid)

TBool CheckType ( TUid aUid ) const [private]

Parameters

TUid aUid

CleanupDatabaseRollback(TAny *)

void CleanupDatabaseRollback ( TAny * aDatabase ) [private, static]

Parameters

TAny * aDatabase

CleanupLastLockedContact(TAny *)

void CleanupLastLockedContact ( TAny * aDatabase ) [static]

Parameters

TAny * aDatabase

CleanupTableCancel(TAny *)

void CleanupTableCancel ( TAny * aTable ) [static]

Parameters

TAny * aTable

CloseContactL(TContactItemId)

IMPORT_C void CloseContactL ( TContactItemId aContactId )

Closes the contact item, allowing other applications to access it. Specifying a contact item that is not open, or cannot be found, is harmless. This function does not commit any changes made to the item. Despite the trailing L in the function's name, this function cannot leave.

capability
None

Parameters

TContactItemId aContactId The ID of the contact to close.

CloseTables()

IMPORT_C void CloseTables ( )

This method is no longer required and should not be called.

Closes all database tables. After a rollback and recover all tables need to be closed and re-opened before the database can be accessed again.

capability
WriteUserData

CntServerResourceCount()

IMPORT_C TInt CntServerResourceCount ( )

Debug only.

capability
None

CommitContactL(const CContactItem &)

IMPORT_C void CommitContactL ( const CContactItem & aContact )

Overwrites a contact item with the values contained in aContact. The contact item is also closed by this call.

capability
ReadUserData
capability
WriteUserData
leave
KErrAccessDenied The contact item is not locked by the caller.
leave
KErrNotFound The contact item's ID is not present in the database.
leave
KErrDiskFull The disk does not have enough free space to perform the operation.
leave
KErrNotSupported The contact item cannot be committed because it contains invalid data.

Parameters

const CContactItem & aContact Contains the new values for the contact item.

CompactL()

IMPORT_C void CompactL ( )

This function does nothing and has been deprecated.

capability
WriteUserData

CompareSortFieldsL(const CContactItem &)

TInt CompareSortFieldsL ( const CContactItem & aContact ) [private]

Parameters

const CContactItem & aContact

CompressRequired()

IMPORT_C TBool CompressRequired ( )

This function is deprecated. It always returns EFalse.

capability
None

ConnectionId()

IMPORT_C TUint ConnectionId ( ) const

Gets the ID of the connection to the Contacts server.

This can be compared with the connection IDs of incoming messages to identify which connection generated the message.

capability
None

ConstructL()

void ConstructL ( ) [private]

ConstructTableUsageFlagsFromSortOrderL(TInt &)

void ConstructTableUsageFlagsFromSortOrderL ( TInt & aFlags ) [private]

Looks at the sort order and identifes what tables are required.

Parameters

TInt & aFlags

ContactDatabaseExistsL(const TDesC &)

IMPORT_C TBool ContactDatabaseExistsL ( const TDesC & aFileName ) [static]

A method to determine if a named contact database exists.

If the file is found, it is tested for the correct UIDs.

In v8.1, contact databases can be located in any directory on any writeable drive, and the format of the filename must include an absolute directory path such as c:\system\data\contacts.cdb.

From v9.0 onwards, contact databases can only be located in the correct data caged subdirectory. The filenames must have no path, for example c:contacts.cdb. The maximum length for the drive, filename and extension is 190 characters.

capability
None
leave
KErrNotReady There is no media present in the drive.
leave
KErrBadName The filename is invalid; for example it contains wildcard characters or the drive is missing.
leave
KErrNotFound The database file was not found or it did not have the correct UIDs.
leave
KErrCorrupt The file is not a valid database
leave
KErrArgument if the given descriptor contains more than the maximum length of 190 characters.
CContactDatabase::DefaultContactDatabaseExistsL() CContactDatabase::ListDatabasesL()

Parameters

const TDesC & aFileName The contact database to search for.

ContactIdByGuidL(const TDesC &)

IMPORT_C TContactItemId ContactIdByGuidL ( const TDesC & aGuid )

Searches the contact tables for the contact described by aGuid.

capability
ReadUserData
leave
KErrNotReady The database is not yet ready to read from, could be because an asynchronous open is in progress or because a recover is required after a rollback.
leave
KErrBadHandle An asynchronous open either failed or was cancelled.
leave
KErrLocked The database has been closed for a restore.

Parameters

const TDesC & aGuid Describes the contact item to be found.

ContactMatchesHintFieldL(TInt, TContactItemId)

IMPORT_C TBool ContactMatchesHintFieldL ( TInt aBitWiseFilter,
TContactItemId aContactId
)

Tests whether a contact item's hint bit field matches a filter.

For a match to occur, the item must be of the correct type for inclusion in the database (as returned by GetDbViewContactType() ) and its hint bit field (which indicates whether the item contains a work or home telephone number, fax number or email address) must match the filter, according to the rules described in TContactViewFilter.

capability
None

Parameters

TInt aBitWiseFilter The filter to compare the item against. This is a combination of TContactViewFilter values.
TContactItemId aContactId The ID of the item in the database.

ContactPosL(TContactItemId)

TInt ContactPosL ( TContactItemId aContactId ) [private]

Parameters

TContactItemId aContactId

ContactsChangedSinceL(const TTime &)

IMPORT_C CContactIdArray * ContactsChangedSinceL ( const TTime & aTime )

Gets an array of contacts modified since the specified date/time. The array includes those contacts that have changed since the beginning of the specified micro-second. The caller takes ownership of the returned object.

capability
ReadUserData

Parameters

const TTime & aTime The date/time of interest.

ConverterL(const TUid &)

CContactConverter & ConverterL ( const TUid & aFormat ) [private]

Parameters

const TUid & aFormat

ConverterL(const TUid &, const TInt64, MConverterCallBack *, const TVCardVersion, const TBool)

CContactConverter & ConverterL ( const TUid & aFormat,
const TInt64 aContactFieldFilter,
MConverterCallBack * aCallback,
const TVCardVersion aVersion,
const TBool aExportTel
) [private]

Parameters

const TUid & aFormat
const TInt64 aContactFieldFilter
MConverterCallBack * aCallback
const TVCardVersion aVersion
const TBool aExportTel

CountL()

IMPORT_C TInt CountL ( )

Gets the number of CContactItems in the database. The count includes non-system template items. It does not include items marked as deleted.

capability
None

CreateCompressorLC()

IMPORT_C CContactActiveCompress * CreateCompressorLC ( )

This function is deprecated. It returns an object whose functions do nothing.

capability
WriteUserData

CreateContactCardTemplateL(const TDesC &, TBool)

IMPORT_C CContactItem * CreateContactCardTemplateL ( const TDesC & aTemplateLabel,
TBool aInTransaction = EFalse
)

Creates a contact card template based on the system template and adds it to the database.

A template label must be specifed. This can be changed later using CContactCardTemplate::SetTemplateLabelL() .

The caller takes ownership of the returned object.

capability
WriteUserData

Parameters

const TDesC & aTemplateLabel The string to set as the template label.
TBool aInTransaction = EFalse This argument should be ignored by developers.

CreateContactCardTemplateL(const CContactItem *, const TDesC &, TBool)

IMPORT_C CContactItem * CreateContactCardTemplateL ( const CContactItem * aTemplate,
const TDesC & aTemplateLabel,
TBool aInTransaction = EFalse
)

Creates a contact card template and adds it to the database.

The new template's field set is based on the specified contact item. This could be a contact card, an own card, another template or even a group. Note that no field data is copied into the new template. All of the new template's fields are marked as template fields.

A template label must be specifed. This can be changed later using CContactCardTemplate::SetTemplateLabelL() .

The caller takes ownership of the returned object.

capability
WriteUserData

Parameters

const CContactItem * aTemplate Pointer to an instance of a CContactItem-derived class. This is used to initialise the new template's field set.
const TDesC & aTemplateLabel The string to set as the template label.
TBool aInTransaction = EFalse This argument should be ignored by developers.

CreateContactCardTemplateLC(const TDesC &, TBool)

IMPORT_C CContactItem * CreateContactCardTemplateLC ( const TDesC & aTemplateLabel,
TBool aInTransaction = EFalse
)

Creates a contact card template based on the system template and adds it to the database.

A template label must be specifed. This can be changed later using CContactCardTemplate::SetTemplateLabelL() .

The pointer to the template is left on the cleanup stack. The caller takes ownership of the returned object.

capability
WriteUserData
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

const TDesC & aTemplateLabel The string to set as the template label.
TBool aInTransaction = EFalse This argument should be ignored by developers.

CreateContactCardTemplateLC(const CContactItem *, const TDesC &, TBool)

IMPORT_C CContactItem * CreateContactCardTemplateLC ( const CContactItem * aTemplate,
const TDesC & aTemplateLabel,
TBool aInTransaction = EFalse
)

Creates a contact card template and adds it to the database.

The new template's field set is based on the specified contact item. This could be a contact card, an own card, another template or even a group. Note that no field data is copied into the new template. All of the new template's fields are marked as template fields.

A template label must be specifed. This can be changed later using CContactCardTemplate::SetTemplateLabelL() .

The pointer to the object is left on the cleanup stack. The caller takes ownership of it.

capability
WriteUserData
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

const CContactItem * aTemplate Pointer to an instance of a CContactItem-derived class. This is used to initialise the new template's field set.
const TDesC & aTemplateLabel The string to set as the template label.
TBool aInTransaction = EFalse This argument should be ignored by developers.

CreateContactGroupL(TBool)

IMPORT_C CContactItem * CreateContactGroupL ( TBool aInTransaction = EFalse )

Creates a new contact group with a default label of 'Group Label' and adds it to the database.

The caller takes ownership of the returned object.

capability
WriteUserData

Parameters

TBool aInTransaction = EFalse This argument should be ignored by developers.

CreateContactGroupL(const TDesC &, TBool)

IMPORT_C CContactItem * CreateContactGroupL ( const TDesC & aGroupLabel,
TBool aInTransaction = EFalse
)

Creates a new contact group with a specified label and adds it to the database.

The caller takes ownership of the returned object.

capability
WriteUserData

Parameters

const TDesC & aGroupLabel The string to set as the group label.
TBool aInTransaction = EFalse This argument should be ignored by developers.

CreateContactGroupLC(TBool)

IMPORT_C CContactItem * CreateContactGroupLC ( TBool aInTransaction = EFalse )

Creates a new contact group with a default label of 'Group Label' and adds it to the database.

The caller takes ownership of the returned object.

capability
WriteUserData

Parameters

TBool aInTransaction = EFalse This argument should be ignored by developers.

CreateContactGroupLC(const TDesC &, TBool)

IMPORT_C CContactItem * CreateContactGroupLC ( const TDesC & aGroupLabel,
TBool aInTransaction = EFalse
)

Creates a new contact group with a specified label and adds it to the database.

The pointer to the group is left on the cleanup stack. The caller takes ownership of the returned object.

capability
WriteUserData
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

const TDesC & aGroupLabel The string to set as the group label.
TBool aInTransaction = EFalse This argument should be ignored by developers.

CreateL(TThreadAccess)

IMPORT_C CContactDatabase * CreateL ( TThreadAccess aAccess = ESingleThread ) [static]

Creates and opens an empty contact database using the default database name.

capability
WriteUserData
leave
KErrAlreadyExists The database already exists.
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

TThreadAccess aAccess = ESingleThread The default (ESingleThread) allows access to the session with the database server from a single client thread only (as in v5 and v5.1). EMultiThread allows multiple client threads to share the same session with the server. As multi-threaded programs are uncommon in Symbian OS, this argument can be ignored by most C++ developers

CreateL(const TDesC &, TThreadAccess)

IMPORT_C CContactDatabase * CreateL ( const TDesC & aFileName,
TThreadAccess aAccess = ESingleThread
) [static]

Creates and opens a named contact database.

From v9.0 onwards, contact databases can only be located in the correct data caged subdirectory. The filenames must have no path, for example c:contacts.cdb. The maximum length for the drive, filename and extension is 190 characters.

capability
WriteUserData
leave
KErrAlreadyExists The database already exists.
leave
KErrBadName The filename is invalid; for example it contains wildcard characters or the drive letter is missing.
leave
KErrDiskFull The disk does not have enough free space to perform the operation.
leave
KErrArgument if the given descriptor contains more than the maximum length of 190 characters.

Parameters

const TDesC & aFileName The filename of the database to create.
TThreadAccess aAccess = ESingleThread The default (ESingleThread) allows access to the session with the database server from a single client thread only (as in v5 and v5.1). EMultiThread allows multiple client threads to share the same session with the server. As multi-threaded programs are uncommon in Symbian OS, this argument can be ignored by most C++ developers

CreateOwnCardL()

IMPORT_C CContactItem * CreateOwnCardL ( )

Creates a default own card based on the system template and adds it to the database. This is set as the database's current own card, replacing any existing current own card. The caller takes ownership of the returned object.

capability
WriteUserData

CreateOwnCardLC()

IMPORT_C CContactItem * CreateOwnCardLC ( )

Creates a default own card based on the system template and adds it to the database. This is set as the database's current own card, replacing any existing current own card. The caller takes ownership of the returned object.

capability
WriteUserData

CreateRecoverLC()

IMPORT_C CContactActiveRecover * CreateRecoverLC ( )

This function is deprecated. It returns an object whose functions do nothing.

capability
WriteUserData

CreateViewDefL()

void CreateViewDefL ( ) [private]

DamageDatabaseL(TInt)

IMPORT_C void DamageDatabaseL ( TInt aSecretCode )

Debug Only

capability
WriteUserData

Parameters

TInt aSecretCode

DatabaseBeginL(TBool)

IMPORT_C void DatabaseBeginL ( TBool aIsInTransaction )

Starts a new transaction, without placing a cleanup item to rollback the database onto the cleanupstack. This is to enable clients to call contacts methods from an active object.

capability
WriteUserData
leave
KErrDiskFull if used storage space above threshold

Parameters

TBool aIsInTransaction ETrue if transaction already started

DatabaseBeginLC(TBool)

IMPORT_C void DatabaseBeginLC ( TBool aIsInTransaction )

Starts a new transaction. Places and leaves a cleanup item to rollback the database on the cleanupstack.

leave
KErrDiskFull There is insufficient disk space.

Parameters

TBool aIsInTransaction Used to determine whether or not to start the transaction depending on if a transaction is currently in progress.

DatabaseCommitL(TBool)

IMPORT_C void DatabaseCommitL ( TBool aIsInTransaction )

Commits an existing transaction, without popping a cleanup item.

capability
WriteUserData

Parameters

TBool aIsInTransaction ETrue if transaction already started

DatabaseCommitLP(TBool)

IMPORT_C void DatabaseCommitLP ( TBool aIsInTransaction )

Commits an existing transaction, pops the rollback cleanup item off the CleanupStack . Closes the database if the connection state is EDbConnectionNeedToCloseForRestore.

Parameters

TBool aIsInTransaction Used to determine whether or not to commit the transaction depending on whether a transaction is currently in progress.

DatabaseDrive(TDriveUnit &)

IMPORT_C TBool DatabaseDrive ( TDriveUnit & aDriveUnit ) [static]

Gets the current database drive. The database drive is the drive on which the default contact database is located. Note: this function can leave.

capability
None
leave
KErrNoMemory Out of memory.
CContactDatabase::SetDatabaseDrive() CContactDatabase::GetDefaultNameL()

Parameters

TDriveUnit & aDriveUnit On return, contains the database drive.

DatabaseReadyL()

TBool DatabaseReadyL ( ) const [private]

Determine if the database is ready. Ready in this context means that the database is open and readable/writable (i.e. the state machine is in CStateWritable).

capability
None

DatabaseRollback()

IMPORT_C void DatabaseRollback ( )

Force a rollback of the database.

capability
WriteUserData

DefaultContactDatabaseExistsL()

IMPORT_C TBool DefaultContactDatabaseExistsL ( ) [static]

A static method to determine if the default contact database exists.

It searches the drive set by SetDatabaseDriveL() , or if no drive has been set, it searches drive c:.

If the file is found, it is tested for the correct UIDs.

capability
None
leave
KErrNotReady There is no media present in the drive.
leave
KErrNotFound The database file was not found or it did not have the correct UIDs.
leave
KErrCorrupt The file is not a valid database
CContactDatabase::ContactDatabaseExistsL()

DeleteContactL(TContactItemId)

IMPORT_C void DeleteContactL ( TContactItemId aContactId )

Deletes a contact item.

Note: if the contact's access count is greater than zero, the contact is not fully deleted from the database. A 'skeleton' of the contact is left, containing only basic information, and no field data. The skeleton contact can still be accessed if a record of its contact ID has been retained (or call DeletedContactsLC() ). The skeleton is removed when the access count is zero.

capability
ReadUserData
capability
WriteUserData
leave
KErrNotFound aContactId is not present in the database.
leave
KErrInUse The contact item is open.
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

TContactItemId aContactId The contact item ID of the contact to delete.

DeleteContactSendEventActionL(TContactItemId, TCntSendEventAction)

void DeleteContactSendEventActionL ( TContactItemId aContactId,
TCntSendEventAction aActionType
) [private]

Deletes a contact item. See doDeleteContactL() for details

Parameters

TContactItemId aContactId
TCntSendEventAction aActionType

DeleteContactsL(const CContactIdArray &)

IMPORT_C void DeleteContactsL ( const CContactIdArray & aContactIds )

Deletes an array of contacts.

The function commits the changes for every 32 (for 9.5 onwards it commits after every 50) contacts deleted, and compresses the database as required. A changed message is not sent for every contact deleted, instead a single unknown change event message (EContactDbObserverEventUnknownChanges) is sent after all the contacts have been deleted and the changes committed.

capability
WriteUserData
capability
ReadUserData
leave
KErrNotFound A contact item ID contained in the array is not present in the database.
leave
KErrInUse One or more of the contact items is open.
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

const CContactIdArray & aContactIds An array of contacts to delete.

DeleteDatabaseL(const TDesC &)

IMPORT_C void DeleteDatabaseL ( const TDesC & aFileName ) [static]

A static method to delete a named contact database.

If the file is found, it is tested for the correct UIDs.

In v8.1, contact databases can be located in any directory on any writeable drive, and the format of the filename must include an absolute directory path such as c:\system\data\contacts.cdb.

From v9.0 onwards, contact databases can only be located in the correct data caged subdirectory. The filenames must have no path, for example c:contacts.cdb. The maximum length for the drive, filename and extension is 190 characters.

capability
WriteUserData
leave
KErrBadName The filename is invalid; for example it contains wildcard characters or the drive is missing.
leave
KErrInUse Another client has the database open.
leave
KErrNotFound The database file was not found or it did not have the correct UIDs.
leave
KErrArgument if the given descriptor contains more than the maximum length of 190 characters.
CContactDatabase::DeleteDefaultFileL()

Parameters

const TDesC & aFileName The contact database file to delete.

DeleteDefaultFileL()

IMPORT_C void DeleteDefaultFileL ( ) [static]

Deletes the default contact database.

capability
WriteUserData
leave
KErrInUse Another client has the database open.
leave
KErrNotFound The database file was not found or it did not have the correct UIDs.
CContactDatabase::DeleteDatabaseL() CContactDatabase::GetDefaultNameL() CContactDatabase::DefaultContactDatabaseExistsL()

DeletedContactsLC()

IMPORT_C CContactIdArray * DeletedContactsLC ( )

Gets an array of IDs for contact items that still exist in the database, but are marked as deleted. These are contact items which have been deleted, but which have a non-zero access count. The caller takes ownership of the returned object.

Debug only.

capability
ReadUserData

DoGotoL(TContactItemId)

TInt DoGotoL ( TContactItemId aContactId ) [private]

Parameters

TContactItemId aContactId

DoReadContactTextDefL(const CContactItemFieldSet *, TDes &, CContactTextDef *)

void DoReadContactTextDefL ( const CContactItemFieldSet * aFieldSet,
TDes & aResult,
CContactTextDef * aTextDef
) [private]

Parameters

const CContactItemFieldSet * aFieldSet
TDes & aResult
CContactTextDef * aTextDef

EndAsyncActivityL()

void EndAsyncActivityL ( ) [private]

ExportSelectedContactsL(const TUid &, const CContactIdArray &, RWriteStream &, TInt, TBool)

IMPORT_C void ExportSelectedContactsL ( const TUid & aFormat,
const CContactIdArray & aSelectedContactIds,
RWriteStream & aWriteStream,
TInt aOption,
TBool aExportPrivateFields = ETrue
)

Converts an array of contact items to vCards and exports them to a write stream.

The default character set CVersitParser::EUTF8CharSet is used to convert into. If you need a different character set, use the other overload of this function.

capability
ReadUserData
leave
KErrNotSupported aFormat.iUid is not KUidVCardConvDefaultImpl.
leave
KErrNotFound One or more of the contact items does not exist in the database.

Parameters

const TUid & aFormat Indicates the format for imported and exported contacts. Must have a value of KUidVCardConvDefaultImpl.
const CContactIdArray & aSelectedContactIds Array of contact IDs to export.
RWriteStream & aWriteStream The stream to write to.
TInt aOption Indicates the options for import and export. See the TOptions enum.
TBool aExportPrivateFields = ETrue ETrue exports fields marked as private. EFalse does not export fields marked as private. See CContactItemField::SetPrivate().

ExportSelectedContactsL(const TUid &, const CContactIdArray &, RWriteStream &, TInt, const Versit::TVersitCharSet, TBool)

IMPORT_C void ExportSelectedContactsL ( const TUid & aFormat,
const CContactIdArray & aSelectedContactIds,
RWriteStream & aWriteStream,
TInt aOption,
const Versit::TVersitCharSet aCharSet,
TBool aExportPrivateFields = ETrue
)

Converts an array of contact items to vCards and exports them to a write stream using the specified character set.

capability
ReadUserData
leave
KErrNotSupported aFormat.iUid is not KUidVCardConvDefaultImpl.
leave
KErrNotFound One or more of the contact items does not exist in the database.

Parameters

const TUid & aFormat Indicates the format for imported and exported contacts. Must have a value of KUidVCardConvDefaultImpl.
const CContactIdArray & aSelectedContactIds Array of contact IDs to export.
RWriteStream & aWriteStream The stream to write to.
TInt aOption Indicates the options for import and export. See the TOptions enum.
const Versit::TVersitCharSet aCharSet The character set to convert into.
TBool aExportPrivateFields = ETrue ETrue exports fields marked as private. EFalse does not export fields marked as private. See CContactItemField::SetPrivate().

ExportSelectedContactsL(const TUid &, const CContactIdArray &, RWriteStream &, TInt, const TInt64, MConverterCallBack *, const TVCardVersion, const TBool, Versit::TVersitCharSet, TBool)

IMPORT_C void ExportSelectedContactsL ( const TUid & aFormat,
const CContactIdArray & aSelectedContactIds,
RWriteStream & aWriteStream,
TInt aOption,
const TInt64 aContactFieldFilter,
MConverterCallBack * aCallback,
const TVCardVersion aVersion,
const TBool aExportTel,
Versit::TVersitCharSet aCharSet = Versit::EUTF8CharSet,
TBool aExportPrivateFields = ETrue
)

Converts an array of contact items to PBAP compliant vCards following vCard2.1 and vCard3.0 specifications and exports them to a write stream using UTF-8 as the character set. It also provides support for exporting contacts as standard vCard2.1.

capability
ReadUserData
leave
KErrNotSupported aFormat.iUid is not KUidPBAPVCardConvImpl for PBAP export.
leave
KErrNotSupported aFormat.iUid is not KUidVCardConvDefaultImpl for standard vCard2.1 export.
leave
KErrNotSupported aCharSet is other than UTF-8 for PBAP export.
leave
KErrNotFound One or more of the contact items does not exist in the database.

Parameters

const TUid & aFormat Indicates the format for imported and exported contacts. It should have a value of KUidPBAPVCardConvImpl if user wants to export contacts as PBAP specific vCards and KUidVCardConvDefaultImpl for standard vCard2.1.
const CContactIdArray & aSelectedContactIds Array of contact IDs to export.
RWriteStream & aWriteStream The stream to write to.
TInt aOption Indicates the options for import and export. See the TOptions enum.
const TInt64 aContactFieldFilter 64-bit filter,specifies the contact fields to export, argument value not considered for standard vCard2.1 export.
MConverterCallBack * aCallback Calls client which has to implement class MConverterCallBack, used to add intra-contact properties, argument value not considered for standard vCard2.1 export.
const TVCardVersion aVersion TVCardVersion specifies vCard version to which contacts should be exported.
const TBool aExportTel If TEL property should be exported, it should be set to ETrue, argument value not considered for standard vCard2.1 export.
Versit::TVersitCharSet aCharSet = Versit::EUTF8CharSet The character set to convert into.Must be UTF-8 for PBAP export, provided as default value.
TBool aExportPrivateFields = ETrue ETrue exports fields marked as private. EFalse does not export fields marked as private. See CContactItemField::SetPrivate().

FactoryL()

MLplPersistenceLayerFactory * FactoryL ( ) [private]

FetchGroupAndTemplateListsL()

void FetchGroupAndTemplateListsL ( ) [private]

FileSize()

IMPORT_C TInt FileSize ( ) const

Gets the size of the database file in bytes.

capability
None

FileUid()

IMPORT_C TPtrC FileUid ( )

Gets the database's UID. This value is used to identify a particular contact database. The database UID is generated when the database is first created.

Note: This method can leave.

capability
None

FilterDatabaseL(CCntFilter &)

IMPORT_C void FilterDatabaseL ( CCntFilter & aFilter )

Filters the database. On return, aFilter contains an array of filtered contact item IDs.

capability
ReadUserData

Parameters

CCntFilter & aFilter The filter to use. On return, contains a filtered array of contact item IDs.

FindAsyncL(const TDesC &, const CContactItemFieldDef *, MIdleFindObserver *)

IMPORT_C CIdleFinder * FindAsyncL ( const TDesC & aText,
const CContactItemFieldDef * aFieldDef,
MIdleFindObserver * aObserver
)

Searches the database asynchronously for a text string. The function searches the fields contained in the field definition asynchronously using the MIdleFindObserver and CIdleFinder classes. The caller takes ownership of the returned object.

Parameters

const TDesC & aText The text to search for.
const CContactItemFieldDef * aFieldDef Specifies the fields to search.
MIdleFindObserver * aObserver Implements the callback function IdleFindCallback(). NULL if no observer is needed.

FindInTextDefAsyncL(const MDesCArray &, MIdleFindObserver *, const TCallBack &)

IMPORT_C CIdleFinder * FindInTextDefAsyncL ( const MDesCArray & aFindWords,
MIdleFindObserver * aObserver,
const TCallBack & aWordParserCallback
)

Parameters

const MDesCArray & aFindWords
MIdleFindObserver * aObserver
const TCallBack & aWordParserCallback

FindInTextDefAsyncL(const MDesCArray &, const CContactTextDef *, MIdleFindObserver *, const TCallBack &)

IMPORT_C CIdleFinder * FindInTextDefAsyncL ( const MDesCArray & aFindWords,
const CContactTextDef * aTextDef,
MIdleFindObserver * aObserver,
const TCallBack & aWordParserCallback
)

Parameters

const MDesCArray & aFindWords
const CContactTextDef * aTextDef
MIdleFindObserver * aObserver
const TCallBack & aWordParserCallback

FindInTextDefLC(const MDesCArray &, const TCallBack &)

IMPORT_C CContactIdArray * FindInTextDefLC ( const MDesCArray & aFindWords,
const TCallBack & aWordParserCallback
)

Parameters

const MDesCArray & aFindWords
const TCallBack & aWordParserCallback

FindInTextDefLC(const MDesCArray &, CContactTextDef *, const TCallBack &)

IMPORT_C CContactIdArray * FindInTextDefLC ( const MDesCArray & aFindWords,
CContactTextDef * aTextDef,
const TCallBack & aWordParserCallback
)

Parameters

const MDesCArray & aFindWords
CContactTextDef * aTextDef
const TCallBack & aWordParserCallback

FindLC(const TDesC &, const CContactItemFieldDef *)

IMPORT_C CContactIdArray * FindLC ( const TDesC & aText,
const CContactItemFieldDef * aFieldDef
)

Searches the database for a text string. The function searches the fields contained in the field definition. The caller takes ownership of the returned object. There is a limit of 255 characters on the search string length, due to the implementation of the DBMS API, which also has a search string length restriction of 255 chars. If the search string passed in is over 255 characters this method will leave with KErrArgument.

Parameters

const TDesC & aText The text to search for.
const CContactItemFieldDef * aFieldDef Specifies the fields to search.

GetCardTemplateIdListL()

IMPORT_C CContactIdArray * GetCardTemplateIdListL ( ) const

Gets a copy of the database's template ID list. This is a list of the IDs of all contact card templates which have been added to the database. The caller takes ownership of the returned object.

GetCurrentDatabase(TDes &)

IMPORT_C TInt GetCurrentDatabase ( TDes & aDatabase ) const

Where there are multiple contact databases on a device, this function can be used to enquire which database is the current one. The current database functions are provided as part of current item functionality. In order to pass a current item from one contacts model client to another, the receiving client needs to be using the same database.

The current database is a path and filename, set using SetCurrentDatabase() which is persisted by the contacts server.

capability
None

Parameters

TDes & aDatabase The path and filename of the current database. KNullDesC if no current database has been set.

GetCurrentItem()

IMPORT_C TContactItemId GetCurrentItem ( ) const

Gets the ID of the current item, as set by SetCurrentItem() . The current item ID is initialised to KNullContactId when the database is opened.

capability
None

GetDbViewContactType()

IMPORT_C TUid GetDbViewContactType ( ) const

Gets the type of contact items which are included in sorted views of the database, as set by SetDbViewContactType() .

GetDefaultNameL(TDes &)

IMPORT_C void GetDefaultNameL ( TDes & aDes ) [static]

Gets the file name of the default contact database.

By default it is on drive C: but this can be changed using SetDatabaseDriveL() .

Parameters

TDes & aDes On return, contains the drive and filename of the default contact database. From v9.0 onwards, this has the form driveletter:filename, in other words, it does not include a path.

GetGroupIdListL()

IMPORT_C CContactIdArray * GetGroupIdListL ( ) const

Returns a copy of the database's group ID list. This is a list which contains the contact item IDs for each group in the database. The caller takes ownership of the returned object.

GetLastSyncDateL(TContactSyncId, TTime &)

IMPORT_C void GetLastSyncDateL ( TContactSyncId aSyncId,
TTime & aSyncDate
)

Gets the date/time the database was last synchronised with a particular sync ID, as set by SetLastSyncDateL() .

leave
KErrNotFound The ID cannot be found in the database.

Parameters

TContactSyncId aSyncId This argument should be ignored by developers.
TTime & aSyncDate On return contains the date/time the database was last synchronised with the sync ID specified.

GetSpeedDialFieldL(TInt, TDes &)

IMPORT_C TContactItemId GetSpeedDialFieldL ( TInt aSpeedDialPosition,
TDes & aPhoneNumber
)

Returns the ID of the contact item whose telephone number field is mapped to the speed dial position specified. This function is provided so that information may be displayed about a contact item whose telephone number is being dialled using speed dialling.

The function also retrieves the telephone number stored in the field.

capability
ReadUserData

Parameters

TInt aSpeedDialPosition The speed dial position. This is an integer in the range 1 to 9 inclusive. If outside this range, the function leaves with KErrArgument.
TDes & aPhoneNumber On return, contains the telephone number which is mapped to the speed dial position specified. Returns KNullDesC if the speed dial position requested has not been set.

GroupCount()

TInt GroupCount ( ) const [inline]

Gets the number of groups that exist in the database.

HandleDatabaseEventL(RDbNotifier::TEvent)

void HandleDatabaseEventL ( RDbNotifier::TEvent ) [inline]

HandleDatabaseEventL(const TContactDbObserverEvent &)

IMPORT_C void HandleDatabaseEventL ( const TContactDbObserverEvent & aEvent )

Handle the Database event

Parameters

const TContactDbObserverEvent & aEvent Database change event

HandleDbObserverEventGroupDeletedL(const TContactItemId)

void HandleDbObserverEventGroupDeletedL ( const TContactItemId aContactId ) [private]

Parameters

const TContactItemId aContactId

HandleDbObserverEventGroupOrContactAddedL(const TContactDbObserverEventType, const TContactItemId)

void HandleDbObserverEventGroupOrContactAddedL ( const TContactDbObserverEventType aEventType,
const TContactItemId aContactId
) [private]

Add new contact card/group to sorted items list using add event.

Since
7.0

Parameters

const TContactDbObserverEventType aEventType
const TContactItemId aContactId

HandleDbObserverEventGroupOrContactChangedL(const TContactItemId)

void HandleDbObserverEventGroupOrContactChangedL ( const TContactItemId aContactId ) [private]

Update sorted items list using contact card/group change event.

Since
7.0

Parameters

const TContactItemId aContactId

HandleDiskSpaceEvent(TInt)

void HandleDiskSpaceEvent ( TInt aDrive )

Default behaviour for handling a low disk event - This function is unimplemented.

Parameters

TInt aDrive

ICCTemplateIdL()

IMPORT_C TContactItemId ICCTemplateIdL ( )

Returns the ID of the template that should be used with CContactICCEntry items.

capability
None

ICCTemplateIdL(TUid)

IMPORT_C TContactItemId ICCTemplateIdL ( TUid aPhonebookUid )

Returns the ID of the template that should be used with CContactICCEntry items belonging to the phonebook with TUid aPhonebookUid.

capability
None

Parameters

TUid aPhonebookUid The phonebook ID.

ImportContactsL(const TUid &, RReadStream &, TBool &, TInt)

IMPORT_C CArrayPtr < CContactItem > * ImportContactsL ( const TUid & aFormat,
RReadStream & aReadStream,
TBool & aImportSuccessful,
TInt aOption
)

Imports one or more vCards from a read stream. The vCards are converted into contact items, and added to the database. If at least one contact item was successfully imported, aImportSuccessful is set to ETrue. If EImportSingleContact is specified in aOption, the read stream marker is left at the next position, ready to read the next contact item. The caller takes ownership of the returned object.

capability
WriteUserData
leave
KErrNotSupported aFormat.iUid is not KUidVCardConvDefaultImpl.

Parameters

const TUid & aFormat Indicates the format for imported and exported contacts. Its value must be KUidVCardConvDefaultImpl.
RReadStream & aReadStream The stream to read from.
TBool & aImportSuccessful On return, ETrue if at least one contact was successfully imported. EFalse if not.
TInt aOption Indicates the options for import and export. See the TOptions enum.

InsertInSortArray(const CContactItem &)

void InsertInSortArray ( const CContactItem & aContact ) [private]

Parameters

const CContactItem & aContact

InsertInSortArrayL(const CContactItem &)

void InsertInSortArrayL ( const CContactItem & aContact ) [private]

Parameters

const CContactItem & aContact

IsDamaged()

IMPORT_C TBool IsDamaged ( ) const

This function is deprecated. It always returns EFalse.

capability
None

IsICCSynchronisedL()

TBool IsICCSynchronisedL ( )

ListDatabasesL()

IMPORT_C CDesCArray * ListDatabasesL ( ) [static]

A static method to list the contact databases on all drives.

In v8.1, this function finds contact databases located anywhere on the drives, and the format of the returned filenames is c:\system\data\contacts.cdb.

From v9.0 onwards, this function finds contact databases only in the correct data caged subdirectory. The returned filenames have no path, for example c:contacts.cdb. The maximum length for the drive, filename and extension is 190 characters.

In either case, the filenames returned are in the correct format for Open() , OpenL() , CreateL() , ReplaceL() and DeleteDatabaseL() .

capability
ReadUserData
leave
KErrNoMemory Out of memory.

ListDatabasesL(TDriveUnit)

IMPORT_C CDesCArray * ListDatabasesL ( TDriveUnit aDriveUnit ) [static]

A static method to list the contact databases on a specified drive.

In v8.1, this function finds contact databases located anywhere on the drive, and the format of the returned filenames is c:\system\data\contacts.cdb.

From v9.0 onwards, this function finds contact databases only in the correct data caged subdirectory. The returned filenames have no path, for example c:contacts.cdb. The maximum length for the drive, filename and extension is 190 characters.

In either case, the filenames returned are in the correct format for Open() , OpenL() , CreateL() , ReplaceL() and DeleteDatabaseL() .

capability
ReadUserData
leave
KErrNoMemory Out of memory.

Parameters

TDriveUnit aDriveUnit The drive unit to search for contact databases.

LoadSyncPluginL()

void LoadSyncPluginL ( ) [private]

LockServerCallBackL(TUint)

IMPORT_C TInt LockServerCallBackL ( TUint aServerOperation )

For BC.

Parameters

TUint aServerOperation

LockServerCleanup()

IMPORT_C void LockServerCleanup ( )

For BC.

LockServerConnectL(const TDesC &)

IMPORT_C CContactDatabase * LockServerConnectL ( const TDesC & aFileName ) [static]

For BC.

Parameters

const TDesC & aFileName

LockServerConnectL(const TDesC &, TInt)

IMPORT_C CContactDatabase * LockServerConnectL ( const TDesC & aFileName,
TInt aOperation
) [static]

For BC.

Parameters

const TDesC & aFileName
TInt aOperation

MachineId()

IMPORT_C TInt64 MachineId ( ) const

Returns a number unique to the contacts database. This value may be passed to CContactItem::UidStringL() .

capability
None

MatchPhoneNumberL(const TDesC &, TInt)

IMPORT_C CContactIdArray * MatchPhoneNumberL ( const TDesC & aNumber,
TInt aMatchLengthFromRight
)

Returns an array of contact item IDs for all the contact items which may contain the specified telephone number in a telephone, fax or SMS type field.

The comparison method used is not exact. The number is compared starting from the right side of the number and the method returns an array of candidate matches. Punctuation (eg. spaces) and other alphabetic characters are ignored when comparing.

Additionally, if the contacts model phone parser (CNTPHONE.DLL) is available, then any DTMF digits are also excluded from the comparision.

Notes: Due to the way numbers are stored in the database, it is recommended that at least 7 match digits are specified even when matching a number containing fewer digits. Failure to follow this guideline may (depending on the database contents) mean that the function will not return the expected Contacts Id set.

capability
ReadUserData

Parameters

const TDesC & aNumber Phone number string. If the length of phone number string is greater than KCntMaxTextFieldLength then only the first KCntMaxTextFieldLength characters are used in the match.
TInt aMatchLengthFromRight Number of digits from the right of the phone number to use Up to 15 digits can be specified, and it is recommended that at least 7 match digits are specified.

MoveInSortArray(const CContactItem &)

void MoveInSortArray ( const CContactItem & aContact ) [private]

Parameters

const CContactItem & aContact

MoveInSortArrayL(const CContactItem &)

void MoveInSortArrayL ( const CContactItem & aContact ) [private]

Parameters

const CContactItem & aContact

NewLC()

CContactDatabase * NewLC ( ) [private, static]

Create a new CContactDatabase object

NewSortIndexL(const CContactItem &, TInt, TInt)

TInt NewSortIndexL ( const CContactItem & aContact,
TInt aStartPos,
TInt aEndPos
) [private]

Parameters

const CContactItem & aContact
TInt aStartPos
TInt aEndPos

NextExistingL(TInt)

TInt NextExistingL ( TInt aIndex ) [private]

Parameters

TInt aIndex

NullUidValue()

TInt NullUidValue ( ) [static, inline]

Gets the NULL contact ID value.

Open(TRequestStatus &, TThreadAccess)

IMPORT_C CContactOpenOperation * Open ( TRequestStatus & aStatus,
TThreadAccess aAccess = ESingleThread
) [static]

Opens the default contact database asynchronously.

The Contacts server is asked to prepare the database to be opened. This may include cleaning up incomplete writes from when the device was last switched off, or updating the database format.

If an error is encountered starting the asynchronous open the return value is NULL and the error is returned in the TRequestStatus parameter.

Errors from the asynchronous open include: KErrNotFound The database file was not found or it did not have the correct UIDs. KErrLocked The file is in use by another client. Other system wide error codes.

If the return value is not NULL the ownership of the CContactOpenOperation object is passed to the client. This may be deleted before the asynchronous open completes.

When the client supplied TRequestStatus is completed with KErrNone the TakeDatabase() method of CContactOpenOperation is called to pass ownership of the open database to the client.

capability
ReadUserData
CContactOpenOperation

Parameters

TRequestStatus & aStatus On return, the request status for the asynchronous phase request. The Open() action can fail with one of the system wide error codes. In this case, the CContactDatabase object cannot access the database and must be deleted.
TThreadAccess aAccess = ESingleThread This argument should be ignored by developers.

Open(const TDesC &, TRequestStatus &, TThreadAccess)

IMPORT_C CContactOpenOperation * Open ( const TDesC & aFileName,
TRequestStatus & aStatus,
TThreadAccess aAccess = ESingleThread
) [static]

Opens a named contact database asynchronously.

The Contacts server is asked to prepare the database to be opened. This may include cleaning up incomplete writes from when the device was last switched off, or updating the database format.

In v8.1, contact databases can be located in any directory on any writeable drive, and the format of the filename must include an absolute directory path such as c:\system\data\contacts.cdb.

From v9.0 onwards, contact databases can only be located in the correct data caged subdirectory. The filenames must have no path, for example c:contacts.cdb. The maximum length for the drive, filename and extension is 190 characters.

If an empty path is entered, it will be treated as a request to open the default contact database.

If an error is encountered starting the asynchronous open the return value is NULL and the error is returned in the TRequestStatus parameter.

Errors from the asynchronous open include: KErrNotFound The database file was not found or it did not have the correct UIDs. KErrLocked The file is in use by another client. KErrBadName The filename is invalid; for example it includes wildcard characters or the drive is missing. Other system wide error codes.

If the return value is not NULL the ownership of the CContactOpenOperation object is passed to the client. This may be deleted before the asynchronous open completes.

When the client supplied TRequestStatus is completed with KErrNone the TakeDatabase() method of CContactOpenOperation is called to pass ownership of the open database to the client.

capability
ReadUserData
CContactOpenOperation

Parameters

const TDesC & aFileName The filename of the database to open.
TRequestStatus & aStatus On return, the request status for the asynchronous phase request. The Open() action can fail with one of the system wide error codes. In this case the CContactDatabase object cannot access the database and must be deleted.
TThreadAccess aAccess = ESingleThread This argument should be ignored by developers.

OpenContactL(TContactItemId)

IMPORT_C CContactItem * OpenContactL ( TContactItemId aContactId )

Opens a contact item for editing.

The returned contact item is locked and left open until either CommitContactL() or CloseContactL() is called.

This function uses a view definition that loads every field. If you need to specify your own view definition use the other overload of this function.

The caller takes ownership of the returned object.

capability
WriteUserData
leave
KErrInUse The contact item is already open.
leave
KErrNotFound The contact item is not present in the database.

Parameters

TContactItemId aContactId The ID of the contact item to open.

OpenContactL(TContactItemId, const CContactItemViewDef &)

IMPORT_C CContactItem * OpenContactL ( TContactItemId aContactId,
const CContactItemViewDef & aViewDef
)

Opens a contact item for editing, leaving the lock record on the cleanup stack.

The returned item is locked and left open until either CommitContactL() or CloseContactL() is called.

This function uses the specified view definition. Note: Care should be taken when specifying a view definition because when committing the contact item any fields not loaded by the view definition are deleted from the item.

The caller takes ownership of the returned object.

capability
WriteUserData
leave
KErrInUse The contact item is already open
leave
KErrNotFound The contact item is not present in the database.

Parameters

TContactItemId aContactId The ID of the contact item to open.
const CContactItemViewDef & aViewDef The view definition.

OpenContactLX(TContactItemId)

IMPORT_C CContactItem * OpenContactLX ( TContactItemId aContactId )

Opens a contact item for editing using a specified view definition.

The returned contact item is locked and left open until either CommitContactL() or CloseContactL() is called.

Note: care should be taken when specifying a view definition because when committing the contact item, any fields not loaded by the view definition are deleted from the item.

The caller takes ownership of the returned object.

capability
WriteUserData
leave
KErrInUse The contact item is already open.
leave
KErrNotFound The contact item is not present in the database.

Parameters

TContactItemId aContactId The ID of the contact item to open.

OpenContactLX(TContactItemId, const CContactItemViewDef &)

IMPORT_C CContactItem * OpenContactLX ( TContactItemId aContactId,
const CContactItemViewDef & aViewDef
)

Opens a contact item for editing, leaving the lock record on the cleanup stack.

The returned item is locked and left open until either CommitContactL() or CloseContactL() is called.

This function uses the specified view definition. Note: Care should be taken when specifying a view definition because when committing the contact item any fields not loaded by the view definition are deleted from the item.

The caller takes ownership of the returned object.

capability
WriteUserData
leave
KErrInUse The contact item is already open
leave
KErrNotFound The contact item is not present in the database.

Parameters

TContactItemId aContactId The ID of the contact item to open.
const CContactItemViewDef & aViewDef The view definition.

OpenDatabaseAsyncL(TRequestStatus &, const TDesC &)

void OpenDatabaseAsyncL ( TRequestStatus & aStatus,
const TDesC & aFileName =  KNullDesC
)

Parameters

TRequestStatus & aStatus
const TDesC & aFileName =  KNullDesC

OpenL(TThreadAccess)

IMPORT_C CContactDatabase * OpenL ( TThreadAccess aAccess = ESingleThread ) [static]

Opens the default contact database.

Note: clients should not assume any knowledge of the default database name or location because they may be changed in future releases.

capability
ReadUserData
leave
KErrNotFound The database file was not found or it did not have the correct UIDs.
leave
KErrLocked Another client is writing to the database.
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

TThreadAccess aAccess = ESingleThread The default (ESingleThread) allows access to the session with the database server from a single client thread only (as in v5 and v5.1). EMultiThread allows multiple client threads to share the same session with the server. As multi-threaded programs are uncommon in Symbian OS, this argument can be ignored by most C++ developers

OpenL(const TDesC &, TThreadAccess)

IMPORT_C CContactDatabase * OpenL ( const TDesC & aFileName,
TThreadAccess aAccess = ESingleThread
) [static]

Opens a named contact database.

From v9.0 onwards, contact databases can only be located in the correct data caged subdirectory. The filenames must have no path, for example c:contacts.cdb. The maximum length for the drive, filename and extension is 190 characters, and empty string is not accepted.

capability
ReadUserData
leave
KErrNotFound The database file was not found or it did not have the correct UIDs.
leave
KErrLocked Another client is writing to the database.
leave
KErrBadName The filename is invalid; for example it contains wildcard characters or the drive is missing.
leave
KErrDiskFull The disk does not have enough free space to perform the operation.
leave
KErrArgument if the given descriptor contains more than the maximum length of 190 characters.

Parameters

const TDesC & aFileName The filename of the database to open.
TThreadAccess aAccess = ESingleThread The default (ESingleThread) allows access to the session with the database server from a single client thread only (as in v5 and v5.1). EMultiThread allows multiple client threads to share the same session with the server. As multi-threaded programs are uncommon in Symbian OS, this argument can be ignored by most C++ developers

OpenNoMergeLCX(TContactItemId)

CContactItem * OpenNoMergeLCX ( TContactItemId aContactId ) [private]

Parameters

TContactItemId aContactId

OpenTablesL()

IMPORT_C void OpenTablesL ( )

This method is no longer required and should not be called.

Opens all database tables. After a rollback and recover all tables need to be closed and re-opened before the database can be accessed again.

capability
ReadUserData

OverrideMachineUniqueId(TInt64)

IMPORT_C void OverrideMachineUniqueId ( TInt64 aMachineUniqueId )

Debug only.

capability
None

Parameters

TInt64 aMachineUniqueId The Machine ID to set.

OwnCardId()

IMPORT_C TContactItemId OwnCardId ( ) const

Returns the ID of the database's current own card.

Having obtained this ID, the client may then open the own card in the same way as an ordinary contact card (using ReadContactL() or OpenContactL() ).

capability
None

PhonebookGroupIdL()

IMPORT_C TContactItemId PhonebookGroupIdL ( )

Returns the ID of the contacts model group which represents the ADN phonebook.

capability
None

PrefTemplateId()

IMPORT_C TContactItemId PrefTemplateId ( ) const

Returns the ID of the database's preferred template, as set by SetPrefTemplateL() . KNullContactId if not set. The preferred template is for clients who may have multiple templates but want to identify one as preferred.

capability
None

PreviousExistingL(TInt)

TInt PreviousExistingL ( TInt aIndex ) [private]

Parameters

TInt aIndex

ReSortL(CArrayFix< TSortPref > *)

void ReSortL ( CArrayFix < TSortPref > * aSortOrder ) [private]

Parameters

CArrayFix < TSortPref > * aSortOrder

ReadContactAndAgentL(TContactItemId)

IMPORT_C CArrayPtr < CContactItem > * ReadContactAndAgentL ( TContactItemId aContactId )

Reads a contact item and an agent if the item has an agent field. The item and agent (if present) are returned in an array. The function uses the database's default view definition (as set by SetViewDefinitionL() ). The caller takes ownership of the returned object.

capability
ReadUserData
leave
KErrNotFound The specified contact item cannot be found in the database.

Parameters

TContactItemId aContactId The ID of the contact item to read.

ReadContactL(TContactItemId)

IMPORT_C CContactItem * ReadContactL ( TContactItemId aContactId )

Reads a contact item without locking it.

This function uses the default view definition (as set by SetViewDefinitionL() ). The caller takes ownership of the returned object.

capability
ReadUserData
leave
KErrNotFound The specified contact item does not exist in the database.

Parameters

TContactItemId aContactId The ID of the contact item to read.

ReadContactL(TContactItemId, const CContactItemViewDef &)

IMPORT_C CContactItem * ReadContactL ( TContactItemId aContactId,
const CContactItemViewDef & aViewDef
)

Reads a contact item without locking it.

This function uses the view definition specified. The caller takes ownership of the returned object.

capability
ReadUserData
leave
KErrNotFound The specified contact item does not exist in the database.

Parameters

TContactItemId aContactId The ID of the contact item to read.
const CContactItemViewDef & aViewDef The view definition to use.

ReadContactLC(TContactItemId)

IMPORT_C CContactItem * ReadContactLC ( TContactItemId aContactId )

Reads a contact item without locking it.

This function uses the default view definition (as set by SetViewDefinitionL() ). The caller takes ownership of the returned object.

capability
ReadUserData
leave
KErrNotFound The specified contact item does not exist in the database.

Parameters

TContactItemId aContactId The ID of the contact item to read.

ReadContactLC(TContactItemId, const CContactItemViewDef &)

IMPORT_C CContactItem * ReadContactLC ( TContactItemId aContactId,
const CContactItemViewDef & aViewDef
)

Reads a contact item without locking it.

This function uses the view definition specified. The caller takes ownership of the returned object.

capability
ReadUserData
leave
KErrNotFound The specified contact item does not exist in the database.

Parameters

TContactItemId aContactId The ID of the contact item to read.
const CContactItemViewDef & aViewDef The view definition to use.

ReadContactTextDefL(const CContactItem &, TDes &)

IMPORT_C void ReadContactTextDefL ( const CContactItem & aItem,
TDes & aResult
)

Reads text into a descriptor from a pre-loaded contact item.

This function uses the database's current text definition (as set using CContactDatabase::SetTextDefinitionL() ).

capability
ReadUserData

Parameters

const CContactItem & aItem The contact item to read.
TDes & aResult On return, contains the text read from the contact item aItem, using the database's current text definition.

ReadContactTextDefL(const CContactItem &, TDes &, CContactTextDef *)

IMPORT_C void ReadContactTextDefL ( const CContactItem & aItem,
TDes & aResult,
CContactTextDef * aTextDef
)

Reads text into a descriptor from a pre-loaded contact item, using the specified text definition.

capability
ReadUserData

Parameters

const CContactItem & aItem The contact item to read.
TDes & aResult On return, contains the text read from the contact item aItem, using the text definition specified in aTextDef.
CContactTextDef * aTextDef The text definition to use.

ReadContactTextDefL(TContactItemId, TDes &)

IMPORT_C void ReadContactTextDefL ( TContactItemId aContactId,
TDes & aResult
)

Reads text from a contact item stored in the database into a descriptor.

This function uses the database's currently set text definition (as set using CContactDatabase::SetTextDefinitionL() ).

capability
ReadUserData
leave
KErrNotFound The specified contact item cannot be found in the database.

Parameters

TContactItemId aContactId The ID of the contact to read.
TDes & aResult On return, contains the text read from the contact item identified by aContactId, using the database's current text definition.

ReadContactTextDefL(TContactItemId, TDes &, CContactTextDef *)

IMPORT_C void ReadContactTextDefL ( TContactItemId aContactId,
TDes & aResult,
CContactTextDef * aTextDef
)

Reads text from a contact item stored in the database into a descriptor using the specified text definition.

capability
ReadUserData
leave
KErrNotFound The specified contact item cannot be found in the database.

Parameters

TContactItemId aContactId The ID of the contact to read.
TDes & aResult On return, contains the text read from the contact item identified by aContactId, using the text definition specified in aTextDef.
CContactTextDef * aTextDef The text definition to use.

ReadMinimalContactL(TContactItemId)

IMPORT_C CContactItem * ReadMinimalContactL ( TContactItemId aContactId )

Reads a contact item (contact card, own card, template, or contact group), but does not read the group or template information.

This function is identical to the variant of ReadContactL() which uses the database's default view definition, except that this function does not read:

  • the list of group members and the group label (if the item is a CContactGroup )

  • the template label (if the item is a CContactCardTemplate )

  • the list of groups to which the item belongs, if any (not applicable to templates)

  • any fields inherited from a non-system template, if any (not applicable if the item is a CContactCardTemplate )

Notes:

This function is faster than the standard reading function ( ReadContactL() ), which needs to match the template fields and groups etc.

The caller takes ownership of the returned object.

capability
ReadUserData
leave
KErrNotFound The specified contact item cannot be found in the database.

Parameters

TContactItemId aContactId The ID of the contact to read.

ReadMinimalContactLC(TContactItemId)

IMPORT_C CContactItem * ReadMinimalContactLC ( TContactItemId aContactId )

Reads a contact item (contact card, own card, template, or contact group), but does not read the group or template information.

This function is identical to the variant of ReadContactLC() which uses the server's default view definition, except that this function does not read:

  • the list of group members and the group label (if the item is a CContactGroup )

  • the template label (if the item is a CContactCardTemplate )

  • the list of groups to which the item belongs, if any (not applicable to templates)

  • any fields inherited from a non-system template, if any (not applicable if the item is a CContactCardTemplate )

Notes:

This function is faster than the standard reading function ( ReadContactLC() ), which needs to match the template fields and groups etc.

The caller takes ownership of the returned object.

capability
ReadUserData
leave
KErrNotFound The specified contact item cannot be found in the database.

Parameters

TContactItemId aContactId The ID of the contact to read.

ReadTemplateIdsL()

void ReadTemplateIdsL ( ) [private]

RecoverL()

IMPORT_C void RecoverL ( )

Recovers the database from a rollback. It first closes all tables and then reopens them after the recover.

capability
WriteUserData

RecreateSystemTemplateL(const TDesC &)

IMPORT_C void RecreateSystemTemplateL ( const TDesC & aFileName ) [static]

A static method to recreate the system template.

From v9.0 onwards, contact databases can only be located in the correct data caged subdirectory. The filenames must have no path, for example c:contacts.cdb. The maximum length for the drive, filename and extension is 190 characters.

capability
ReadUserData
capability
WriteUserData
leave
KErrBadName The filename is invalid; for example it contains wildcard characters or the drive letter is missing.
leave
KErrArgument if the given descriptor contains more than the maximum length of 190 characters.

Parameters

const TDesC & aFileName The contact database filename.

RemoveContactFromGroupL(CContactItem &, CContactItem &)

IMPORT_C void RemoveContactFromGroupL ( CContactItem & aItem,
CContactItem & aGroup
)

Removes the association between a contact item and a group.

capability
WriteUserData
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

CContactItem & aItem The item to remove.
CContactItem & aGroup The group from which the item should be removed.

RemoveContactFromGroupL(TContactItemId, TContactItemId)

IMPORT_C void RemoveContactFromGroupL ( TContactItemId aItemId,
TContactItemId aGroupId
)

Removes the association between a contact item and a group.

The item and group are identified by their IDs.

capability
WriteUserData
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

TContactItemId aItemId The ID of the item to remove.
TContactItemId aGroupId The ID of the group from which the item should be removed.

RemoveFromGroupIds(const TContactItemId)

void RemoveFromGroupIds ( const TContactItemId aContactId ) [private]

Parameters

const TContactItemId aContactId

RemoveFromSortArray(TContactItemId)

void RemoveFromSortArray ( TContactItemId aContactId ) [private]

Parameters

TContactItemId aContactId

RemoveFromTemplateList(const TContactItemId)

void RemoveFromTemplateList ( const TContactItemId aOldTemplateId ) [private]

Parameters

const TContactItemId aOldTemplateId

RemoveObserver(const MContactDbObserver &)

void RemoveObserver ( const MContactDbObserver & aChangeNotifier )

Parameters

const MContactDbObserver & aChangeNotifier

RemoveSpeedDialFieldL(TContactItemId, TInt)

IMPORT_C void RemoveSpeedDialFieldL ( TContactItemId aContactId,
TInt aSpeedDialPosition
)

Removes the mapping between a contact item field and a speed dial position.

Removes the KUidSpeedDialXxx UID from the field's content type, removes the field's speed dial attribute and commits the changes to the item.

capability
ReadUserData
capability
WriteUserData
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

TContactItemId aContactId The ID of the contact item containing the speed dial field.
TInt aSpeedDialPosition The speed dial position. This is an integer in the range 1 to 9 inclusive. If outside this range, the function leaves with KErrArgument.

ReplaceL(TThreadAccess)

IMPORT_C CContactDatabase * ReplaceL ( TThreadAccess aAccess = ESingleThread ) [static]

Creates and opens an empty contact database, replacing the existing default database.

capability
WriteUserData
leave
KErrInUse Another client has an open connection to the database.
leave
KErrDiskFull The disk does not have enough free space to perform the operation.
leave
KErrNoMemory There is no memory to perform the operation.

Parameters

TThreadAccess aAccess = ESingleThread The default (ESingleThread) allows access to the session with the database server from a single client thread only (as in v5 and v5.1). EMultiThread allows multiple client threads to share the same session with the server. As multi-threaded programs are uncommon in Symbian OS, this argument can be ignored by most C++ developers

ReplaceL(const TDesC &, TThreadAccess)

IMPORT_C CContactDatabase * ReplaceL ( const TDesC & aFileName,
TThreadAccess aAccess = ESingleThread
) [static]

Creates and opens an empty contact database, replacing any existing file with the same name.

From v9.0 onwards, contact databases can only be located in the correct data caged subdirectory. The filenames must have no path, for example c:contacts.cdb. The maximum length for the drive, filename and extension is 190 characters.

capability
WriteUserData
leave
KErrBadName The filename is invalid; for example it contains wildcard characters or the drive letter is missing.
leave
KErrInUse Another client has an open connection to the database.
leave
KErrDiskFull The disk does not have enough free space to perform the operation.
leave
KErrNoMemory There is no memory to perform the operation.
leave
KErrArgument if the given descriptor contains more than the maximum length of 190 characters.

Parameters

const TDesC & aFileName The filename of the database to replace.
TThreadAccess aAccess = ESingleThread The default (ESingleThread) allows access to the session with the database server from a single client thread only (as in v5 and v5.1). EMultiThread allows multiple client threads to share the same session with the server. As multi-threaded programs are uncommon in Symbian OS, this argument can be ignored by most C++ developers

ResetServerSpeedDialsL()

IMPORT_C void ResetServerSpeedDialsL ( )

Requests that the server reset all its speed dials to a NULL state. Needed so that T_NOMACH works (since deleting the db no longer resets the speed dials)

Debug only.

capability
WriteUserData

RespondToEventL(const TContactDbObserverEventType, const TContactItemId)

void RespondToEventL ( const TContactDbObserverEventType aEventType,
const TContactItemId aContactId
) [private]

Parameters

const TContactDbObserverEventType aEventType
const TContactItemId aContactId

RestoreSortOrderL()

IMPORT_C void RestoreSortOrderL ( )

This function is not currently supported.

SetCntServerHeapFailure(TInt, TInt)

IMPORT_C void SetCntServerHeapFailure ( TInt aTAllocFailType,
TInt aRate
)

Debug only.

capability
None

Parameters

TInt aTAllocFailType
TInt aRate

SetCurrentDatabase(const TDesC &)

IMPORT_C TInt SetCurrentDatabase ( const TDesC & aDatabase ) const

Where there are multiple contact databases on a device, this function can be used to set a database as the current one.

Note: this function simply updates a file name which is stored by the contacts server and its use is optional. It is provided as part of current item functionality. In order to pass a current item from one contacts model client to another, the receiving client needs to be using the same database.

capability
WriteUserData

Parameters

const TDesC & aDatabase The path and filename of the current database.

SetCurrentItem(const TContactItemId)

IMPORT_C void SetCurrentItem ( const TContactItemId aContactId )

Sets the ID of the current item and persists it in the database. The current item is provided for use by clients who want to identify one contact item in the database as the currently selected item.

capability
WriteUserData

Parameters

const TContactItemId aContactId The ID of the current item.

SetDatabaseDriveL(TDriveUnit, TBool)

IMPORT_C void SetDatabaseDriveL ( TDriveUnit aDriveUnit,
TBool aCopy = ETrue
) [static]

Sets the contact database drive and optionally moves the default contact database from its current location to the new drive. This function guarantees an all or nothing operation. If the database is not successfully moved, the drive setting is not updated to reflect the change.

In v8.1 when copying the file is moved to \system\data on the specified drive, and if the destination file already exists it is replaced.

From v9.0 onwards the file copying goes to the correct data caged directory on the destination drive. If the destination file already exists the copy fails.

capability
WriteUserData
leave
KErrNotReady There is no media present in the drive.
leave
KErrInUse The destination file for the copy is already open.
leave
KErrNotFound The source file for the copy was not found.
leave
KErrAlreadyExists The destination file for the copy already exists, (v9.0).
CContactdatabase::DatabaseDrive() CContactDatabase::GetDefaultNameL() CContactDatabase::DefaultContactDatabaseExistsL()

Parameters

TDriveUnit aDriveUnit The drive to which to move the database.
TBool aCopy = ETrue ETrue moves the existing file to the specified drive. Deletion of the source file will fail if it is in use. EFalse does not move the file.

SetDateFormatTextL(const TDesC &)

IMPORT_C void SetDateFormatTextL ( const TDesC & aFormat )

This function is not currently supported.

Parameters

const TDesC & aFormat This parameter should be ignored.

SetDbConnectionState(TDbConnState)

void SetDbConnectionState ( TDbConnState aDbConnectionState )

Parameters

TDbConnState aDbConnectionState

SetDbViewContactType(const TUid)

IMPORT_C void SetDbViewContactType ( const TUid aUid )

Sets the type of contact items to be included in sorted views of the database.

See also SortL() and SortByTypeL() .

This value is initialised to KUidContactItem when the database is opened. This means that all CContactItem-derived types (cards, non-system templates, groups, own cards) are included in database views.

capability
None

Parameters

const TUid aUid Specifies a contact type. One of the following: KUidContactCard (contact cards), KUidContactGroup (contact item groups), KUidContactOwnCard (own cards), KUidContactCardTemplate (templates which are not system templates, in other words, which have been added to the database), KUidContactItem (all of the above)

SetFieldAsSpeedDialL(CContactItem &, TInt, TInt)

IMPORT_C void SetFieldAsSpeedDialL ( CContactItem & aItem,
TInt aFieldIndex,
TInt aSpeedDialPosition
)

Sets a field containing a telephone number as a speed dial field. The field is identified by aFieldIndex within the contact item aItem. It is assigned a speed dial position between 1 and 9 inclusive.

The field's speed dial and user added attributes are set and the appropriate UID (KUidSpeedDialXxx) is added to the field's content type. The changes are committed to the database.

Notes:

If an item's telephone number field has already been assigned to position aSpeedDialPosition, that item is updated so that the speed dial attribute is removed from its field and the speed dial field type UID is removed from the field's content type, before the new speed dial field is set.

The speed dial attribute can be tested for using the CContactItemField::IsSpeedDial() function.

The contact item passed to this function (aItem) must have been obtained using one of the variants of CContactDatabase::OpenContactL() . This is because it is modified and committed to the database by this function - no further commits are necessary.

capability
ReadUserData
capability
WriteUserData
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

CContactItem & aItem The contact item containing the field to set as a speed dial field.
TInt aFieldIndex Index of a field in aItem's field set to set as a speed dial field.
TInt aSpeedDialPosition The speed dial position. This is an integer in the range 1 to 9 inclusive. If outside this range, the function leaves with KErrArgument.

SetLastSyncDateL(const TTime &)

IMPORT_C TContactSyncId SetLastSyncDateL ( const TTime & aSyncDate )

Sets the date/time the database was last synchronised.

This overload sets the last synchronised date/time where the sync ID is not known, and returns the sync ID that was created (a sync ID identifies a machine with which the database has been synchronised).

Parameters

const TTime & aSyncDate The database's new last synchronised date/time.

SetLastSyncDateL(TContactSyncId, const TTime &)

IMPORT_C void SetLastSyncDateL ( TContactSyncId aSyncId,
const TTime & aSyncDate
)

Sets the date/time the database was last synchronised.

This overload is for a known sync ID and updates the database's last synchronised date/time for that ID.

leave
KErrNotFound The specified sync ID is not found.

Parameters

TContactSyncId aSyncId This argument should be ignored by developers.
const TTime & aSyncDate The database's new last synchronised date/time.

SetOperationTimeOutL(const TInt)

IMPORT_C void SetOperationTimeOutL ( const TInt aMicroSeconds ) const

Sets the time out of operations on the database server.

This API allows the behaviour of the Contacts Model to be tuned for scenarios where clients either expect to encounter or know they will encounter operations failing primarily due to the database being locked.

Not all clients will find they need to use this API. By default the operation timeout is 1 second.

The timeout only needs to be set once per session. Multiple clients using the same database can specify independent values for the operation timeout.

capability
None
leave
KErrArgument If aMicroSeconds is less than 0 or is greater than 300000000 (equivalent to 5 minutes).

Parameters

const TInt aMicroSeconds The operation timeout in microseconds. This timeout will only be applied to requests sent by clients of this database after this point in time.

SetOwnCardL(const CContactItem &)

IMPORT_C void SetOwnCardL ( const CContactItem & aContact )

Sets an existing contact item to be the database's current own card.

capability
WriteUserData
leave
KErrNotFound aContact does not exist in the database.
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

const CContactItem & aContact The contact item to set as the database's current own card. It must already exist in the database. It cannot be a group or a template.

SetPrefTemplateL(const CContactItem &)

IMPORT_C void SetPrefTemplateL ( const CContactItem & aContact )

Sets the database's preferred template.

The preferred template's ID persists when the database is opened and closed. If the preferred template is subsequently deleted, the preferred template ID is set to KNullContactId.

capability
WriteUserData
leave
KErrNotSupported The item is not a template (of type KUidContactCardTemplate).
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

const CContactItem & aContact The contact card template to set as the database's preferred template.

SetSortedItemsList(CContactIdArray *, CArrayFix< TSortPref > *)

IMPORT_C void SetSortedItemsList ( CContactIdArray * aSortedItems,
CArrayFix < TSortPref > * aSortOrder
)

This method allows clients of contacts model to set the sorted item list and sort order from a default sort order server as proposed for Crystal 6.0

Note: This method can leave.

capability
None

Parameters

CContactIdArray * aSortedItems Specifies an array sorted items
CArrayFix < TSortPref > * aSortOrder Specifies the sort order

SetTextDefinitionL(CContactTextDef *)

IMPORT_C void SetTextDefinitionL ( CContactTextDef * aView )

Sets the text definition. The contact database takes ownership of the text definition specified.

Parameters

CContactTextDef * aView The new text definition.

SetViewDefinitionL(CContactViewDef *)

IMPORT_C void SetViewDefinitionL ( CContactViewDef * aView )

Sets the default view definition. The contact database takes ownership of the view definition specified. The default view definition is used in calls to ReadContactL() , ReadContactLC() and ReadContactAndAgentL() when no view definition is explicitly specified.

capability
WriteUserData

Parameters

CContactViewDef * aView The view definition. This method does nothing if this is null.

SortArrayL(const CContactIdArray *, const CArrayFix< TSortPref > *)

IMPORT_C CContactIdArray * SortArrayL ( const CContactIdArray * aIdArray,
const CArrayFix < TSortPref > * aSortOrder
)

Sorts an array of contact IDs. The sort uses the same logic as SortL() . The caller takes ownership of the returned object.

capability
None

Parameters

const CContactIdArray * aIdArray Pointer to array of contact IDs to sort.
const CArrayFix < TSortPref > * aSortOrder Sort order array.

SortArrayLC(const CContactIdArray *, const CArrayFix< TSortPref > *)

IMPORT_C CContactIdArray * SortArrayLC ( const CContactIdArray * aIdArray,
const CArrayFix < TSortPref > * aSortOrder
)

Sorts an array of contact IDs. The sort uses the same logic as SortL() . The returned array is left on the cleanup stack. The caller takes ownership of the returned object.

capability
None

Parameters

const CContactIdArray * aIdArray Pointer to array of contact IDs to sort.
const CArrayFix < TSortPref > * aSortOrder Sort order array.

SortAsyncL(CArrayFix< TSortPref > *, TRequestStatus &)

IMPORT_C void SortAsyncL ( CArrayFix < TSortPref > * aSortOrder,
TRequestStatus & aStatus
)

aSortOrder is owned by the idle sorter.

Parameters

CArrayFix < TSortPref > * aSortOrder Specifies the sort order
TRequestStatus & aStatus The request status for the asynchronous phase request.

SortAsyncL(CArrayFix< TSortPref > *, TRequestStatus &, MContactSortObserver &)

IMPORT_C void SortAsyncL ( CArrayFix < TSortPref > * aSortOrder,
TRequestStatus & aStatus,
MContactSortObserver & aObserver
)

aSortOrder is owned by the idle sorter.

Parameters

CArrayFix < TSortPref > * aSortOrder Specifies the sort order
TRequestStatus & aStatus The request status for the asynchronous phase request.
MContactSortObserver & aObserver

SortByTypeL(CArrayFix< TSortPref > *)

IMPORT_C void SortByTypeL ( CArrayFix < TSortPref > * aSortOrder )

Sorts the database using the view type value set by SetDbViewContactType() . The database takes ownership of the sort order array passed in.

The sort uses the same logic as SortL() . The two functions have the same effect.

After calling this function, use CContactDatabase::SortedItemsL() to retrieve the sorted array of contact IDs.

capability
None

Parameters

CArrayFix < TSortPref > * aSortOrder Sort order array.

SortDuplicatesL(const CArrayFix< TSortPref > &, CSortArray &, TInt)

void SortDuplicatesL ( const CArrayFix < TSortPref > & aSortOrder,
CSortArray & aList,
TInt aPos
) [private]

Parameters

const CArrayFix < TSortPref > & aSortOrder
CSortArray & aList
TInt aPos

SortDuplicatesL(const CArrayFix< TSortPref > &, CSortArray &, TInt, TInt, TInt)

void SortDuplicatesL ( const CArrayFix < TSortPref > & aSortOrder,
CSortArray & aList,
TInt aIndex,
TInt aStartPos,
TInt aEndPos
) [private]

Parameters

const CArrayFix < TSortPref > & aSortOrder
CSortArray & aList
TInt aIndex
TInt aStartPos
TInt aEndPos

SortL(CArrayFix< TSortPref > *)

IMPORT_C void SortL ( CArrayFix < TSortPref > * aSortOrder )

Sorts the database. The sort only includes items of the type set by SetDbViewContactType() . The database takes ownership of the sort order array passed in. Contacts are sorted using the first TSortPref in the array. Any identical matches are then sorted using the next TSortPref and so on. When there are no more TSortPrefs to use, any remaining unsorted contacts are left in the original database order.

Note: after calling this function, use CContactDatabase::SortedItemsL() to retrieve the sorted array of contact IDs.

capability
None

Parameters

CArrayFix < TSortPref > * aSortOrder Sort order array. If the array's count is zero, no sorting takes place.

SortLC(const CArrayFix< TSortPref > *, const CContactIdArray *)

CContactIdArray * SortLC ( const CArrayFix < TSortPref > * aSortOrder,
const CContactIdArray * aIdArray
) [private]

Parameters

const CArrayFix < TSortPref > * aSortOrder
const CContactIdArray * aIdArray

SortOrder()

IMPORT_C const CArrayFix < TSortPref > * SortOrder ( ) const

Gets the array of sort preferences.

Note: This method can leave.

capability
None

SortedItemsL()

IMPORT_C const CContactIdArray * SortedItemsL ( )

Returns a pointer to the array of contact items which have been sorted by either SortByTypeL() or SortL() . This pointer is valid until a change is made to the database or until the database's active object is allowed to run. If the array is required after one of the above two events has occurred, a copy of the array must first be made.

capability
None

SpeedDialFieldUidFromSpeedDialPosition(TInt)

TUid SpeedDialFieldUidFromSpeedDialPosition ( TInt aSpeedDialPosition ) [static]

Returns the field UID for the given speed dial position. This method is copied from CCntServerSpeedDialManager::SpeedDialFieldUidFromSpeedDialPosition() rather than export this method for use here and on the server. Once the BC break referred to in SetFieldAsSpeedDialL() has been made this method should be removed.

Parameters

TInt aSpeedDialPosition The speed dial position for which we want the field UID.

StartAsyncActivityL()

void StartAsyncActivityL ( ) [private]

StoreSortOrderL()

IMPORT_C void StoreSortOrderL ( )

This function is not currently supported.

SystemTemplateFieldsValid(const CContactItem &)

TBool SystemTemplateFieldsValid ( const CContactItem & aContact ) [private]
Determines if the System template fields are valid. Valid means that no fields contain data.
capability
None

Parameters

const CContactItem & aContact Contact item representing the System template.

TemplateContentType(const CContactItemField &)

IMPORT_C const CContentType & TemplateContentType ( const CContactItemField & aField ) const

Gets the content type of the template field which a specified field maps onto. If the field does not map onto a field in a template, then its own content type is returned.

Note: this function can leave.

Parameters

const CContactItemField & aField The field of interest.

TemplateCount()

TInt TemplateCount ( ) const [inline]

Gets the number of contact card templates that exist in the database. This does not include the system template.

TemplateId()

IMPORT_C TContactItemId TemplateId ( ) const

Gets the ID of the system template. This can then be read, opened and committed like any other contact item.

TextDefinition()

IMPORT_C const CContactTextDef * TextDefinition ( ) const

Gets a pointer to the text definition.

UnfiledContactsL()

IMPORT_C CContactIdArray * UnfiledContactsL ( )

Returns a list of 'unfiled' contacts. These are contacts which do not belong to any group.

capability
ReadUserData

UpdateContactLC(TContactItemId, CContactItem *)

IMPORT_C CContactItem * UpdateContactLC ( TContactItemId aContactId,
CContactItem * aNewContact
)

Updates a contact identified by aContactId with the data in aNewContact. All empty fields are deleted.

capability
WriteUserData
capability
ReadUserData
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

TContactItemId aContactId This argument should be ignored by developers.
CContactItem * aNewContact The contact item to replace it with.

ValidateDatabaseNameL(const TParse &)

void ValidateDatabaseNameL ( const TParse & aParseName ) [private, static]

Parameters

const TParse & aParseName

Version()

IMPORT_C TVersion Version ( ) const

Gets the contact model's version number.

WastedSpaceInBytes()

IMPORT_C TInt WastedSpaceInBytes ( ) const

This function is deprecated and always returns 0.

capability
None

doAddNewContactL(CContactItem &, TBool, TBool)

IMPORT_C TContactItemId doAddNewContactL ( CContactItem & aContact,
TBool aIsTemplate,
TBool aIsInTransaction
)

Adds a new contact item to the database and returns its ID.

capability
WriteUserData
leave
KErrDiskFull The disk does not have enough free space to perform the operation.

Parameters

CContactItem & aContact The contact item to add to the database.
TBool aIsTemplate This argument should be ignored by developers.
TBool aIsInTransaction This argument should be ignored by developers.

doCommitContactL(const CContactItem &, TBool, TBool)

IMPORT_C void doCommitContactL ( const CContactItem & aContact,
TBool aIsInTransaction,
TBool aSendChangedEvent
)

Updates the existing contact information.

capability
ReadUserData
capability
WriteUserData
leave
KErrAccessDenied The contact item is not locked by the caller.
leave
KErrNotFound The contact item's ID is not present in the database.
leave
KErrNotSupported The contact item cannot be committed because it contains invalid data.

Parameters

const CContactItem & aContact Contains the new values for the contact item.
TBool aIsInTransaction This argument should be ignored by developers.
TBool aSendChangedEvent This argument should be ignored by developers.

doCreateContactGroupLC(const TDesC &)

CContactItem * doCreateContactGroupLC ( const TDesC & aGroupLabel =  KNullDesC ) [private]

Parameters

const TDesC & aGroupLabel =  KNullDesC

doDeleteContactL(TContactItemId, TBool, TBool, TBool)

IMPORT_C void doDeleteContactL ( TContactItemId aContactId,
TBool aIsInTransaction,
TBool aSendChangedEvent,
TBool aDecAccessCount = EFalse
)

Deletes a contact item.

Note: if the contact's access count is greater than zero, the contact is not fully deleted from the database. A 'skeleton' of the contact is left, containing only basic information, and no field data. The skeleton contact can still be accessed if a record of its contact ID has been retained (or call DeletedContactsLC() ). The skeleton is removed when the access count is zero.

capability
ReadUserData
capability
WriteUserData
leave
KErrNotSupported An attempt has been made to delete the system template.
leave
KErrNotFound aContactId is not present in the database.
leave
KErrInUse The contact item is open.

Parameters

TContactItemId aContactId The contact item ID of the contact to delete.
TBool aIsInTransaction This argument should be ignored by developers.
TBool aSendChangedEvent This argument should be ignored by developers.
TBool aDecAccessCount = EFalse This argument should be ignored by developers.

Member Enumerations Documentation

Enum TContactViewFilter

Contact view filter flags.

These flags define the bits that can be set in filtered views (CContactFilteredView) and in the filter passed to CContactDatabase::ContactMatchesHintFieldL() for comparing against contact view items ( CViewContact ).

If the item's bit field and the view's filter have the same settings for the CContactDatabase::EHome and CContactDatabase::EWork flags and any of the other flags are set in both, a match occurs and the item is included in the view.

Filters only apply to non-hidden contact fields with content.

Enumerators

EUnfiltered = 0x00000000

The view is unfiltered; it includes all contact items.

EMailable = 0x00000001

The filter includes items that have an email address.

ESmsable = 0x00000002

The filter includes items that have a mobile telephone number.

ELandLine = 0x00000004

The filter includes items that have a landline telephone number.

EFaxable = 0x00000008

The filter includes items that have a fax number.

EPhonable = 0x00000010

The filter includes items that are phonable. (All items with any of the above three flags set also have this flag set).

EWork = 0x00000020

The filter excludes items without a work telephone number or email address.

EHome = 0x00000040

The filter excludes items without a home telephone number or email address.

ERingTone = 0x00000080

The filter includes items that have a non-empty ring tone field (a ring tone that is associated with the item).

EVoiceDial = 0x00000100

The filter includes items that have a non-empty voice dial field (a voice recording associated with a telephone number field in the item).

EIMAddress = 0x00000200

The filter includes items that have any non empty instant messaging address field.

EWirelessVillage = 0x00000400

The filter includes items that have a non empty Wireless Village ID field. An item with this flag set will also have the EIMAddress flag set.

ECustomFilter1 = 0x00000800

Reserved filters for future use.

ECustomFilter2 = 0x00001000

Reserved filters for future use.

ECustomFilter3 = 0x00002000

Reserved filters for future use.

ECustomFilter4 = 0x00004000

Reserved filters for future use.

Enum TDbConnState

State of database connection

Enumerators

EDbConnectionOpen = 0

Database is open, connection is available for use.

EDbConnectionNotReady

Initial state.

EDbConnectionFailed

Asynchronous Open failed.

EDbConnectionRecoverRequired

A Rollback has occurred and a Recover is required now.

EDbConnectionWriteLockedForBackup

Write access is locked during backup.

EDbConnectionClosedForRestore

The database has been closed whilst a Restore is in progress.

EDbConnectionNeedToCloseForRestore

Restore is in progress need to close after current transaction.

Enum TDirection

Currently unused

Enumerators

EAsc
EDesc

Enum TOptions

Import and export format flags. Contacts can be imported into or exported from the contact database as vCards.

The following options are available during import and export.

This enum is deprecated. It has been replaced by the TOptions enum in the plugin convertor class CContactVCardConverter, so that each plugin converter can define its own options.

Enumerators

EDefault = 0x0000
EIncludeX = 0x0001

Handle Symbian's extended vCard format options.

ETTFormat = 0x0002

Support non-standard extensions requried by Symbian PC connectivity software and Microsoft, amongst others.

EExcludeUid = 0x0004

Don't export the contact ID (for exporting only).

EDecreaseAccessCount = 0x0008

Decrease the contact's access count when importing and exporting.

EImportSingleContact = 0x0010

Only import the first contact in the read stream (for importing only).

EIncreaseAccessCount = 0x0020

Increase the contact's access count when importing and exporting.

ELocalTime = 0x0040

Sets a contact item to the local time when importing.

ENullTemplateId = 0x0080

Allows you to set a template to a contact item that does not exist.

EConverterDefined1 = 0x0100

For use by implementor of converter plug-in.

EConverterDefined2 = 0x0200

For use by implementor of converter plug-in.

EConverterDefined3 = 0x0400

For use by implementor of converter plug-in.

EConverterDefined4 = 0x0800

For use by implementor of converter plug-in.

EConverterDefined5 = 0x1000

For use by implementor of converter plug-in.

EConverterDefined6 = 0x2000

For use by implementor of converter plug-in.

EConverterDefined7 = 0x4000

For use by implementor of converter plug-in.

EConverterDefined8 = 0x8000

For use by implementor of converter plug-in.

EConverterReserved1 = 0x00010000

Reserved for use by Symbian.

EConverterReserved2 = 0x00020000

Reserved for use by Symbian.

EConverterReserved3 = 0x00040000

Reserved for use by Symbian.

EConverterReserved4 = 0x00080000

Reserved for use by Symbian.

EConverterReserved5 = 0x00100000

Reserved for use by Symbian.

EConverterReserved6 = 0x00200000

Reserved for use by Symbian.

EConverterReserved7 = 0x00400000

Reserved for use by Symbian.

EConverterReserved8 = 0x00800000

Reserved for use by Symbian.

EConverterReserved9 = 0x01000000

Reserved for use by Symbian.

EConverterReserved10 = 0x02000000

Reserved for use by Symbian.

EConverterReserved11 = 0x04000000

Reserved for use by Symbian.

EConverterReserved12 = 0x08000000

Reserved for use by Symbian.

EConverterReserved13 = 0x10000000

Reserved for use by Symbian.

EConverterReserved14 = 0x20000000

Reserved for use by Symbian.

EConverterReserved15 = 0x40000000

Reserved for use by Symbian.

EConverterReserved16 = 0x80000000

Reserved for use by Symbian.

Enum TSortDataSource

Enumerators

ENoOrder
EUsesIdentityTableOnly
EUsesAllTables
EIdentityTableNotUsed

Enum TSvrSessionType

Enumerators

ESvrSessionPersistent
ESvrSessionTemporary
ESvrSessionFromLockServer

Enum TThreadAccess

Specifies whether the database can be accessed from single or multiple threads.

Enumerators

ESingleThread

Allows access to the contacts database from a single thread only.

EMultiThread

Allows for a multi-threaded program to access the contact database from multiple threads but note that the contacts model provides no synchronisation support for such use.

Member Type Definitions Documentation

Typedef TTextFieldMinimal

typedef TBuf < KTextFieldMinimalLength > TTextFieldMinimal

A text buffer of KTextFieldMinimalLength used during sorting and searching of contacts

Member Data Documentation

CContactItemViewDef * iAllFieldsView

CContactItemViewDef * iAllFieldsView [private]

TInt iAsyncActivityCount

TInt iAsyncActivityCount [private]

CContactIdArray * iCardTemplateIds

CContactIdArray * iCardTemplateIds [private]

RCntModel * iCntSvr

RCntModel * iCntSvr [private]

TCollationMethod iCollateMethod

TCollationMethod iCollateMethod [private]

CContactSynchroniser * iContactSynchroniser

CContactSynchroniser * iContactSynchroniser [private]

CPrivConverter * iConv

CPrivConverter * iConv [private]

CDataBaseChangeObserver * iDataBaseObserver

CDataBaseChangeObserver * iDataBaseObserver [private]

TDbConnState iDbConnectionState

TDbConnState iDbConnectionState [private]

TUid iDbViewContactType

TUid iDbViewContactType [private]

CContactIdArray * iGroupIds

CContactIdArray * iGroupIds [private]

CCntIdleSorter * iIdleSorter

CCntIdleSorter * iIdleSorter [private]

CProxyFactory * iProxyFactory

CProxyFactory * iProxyFactory [private]

CArrayFix< TSortPref > * iSortOrder

CArrayFix < TSortPref > * iSortOrder [private]

CContactIdArray * iSortedItems

CContactIdArray * iSortedItems [private]

TTime iSyncDate

TTime iSyncDate [private]

TBool iTablesOpen

TBool iTablesOpen [private]

CCntTemplateCache * iTemplateCache

CCntTemplateCache * iTemplateCache [private]

CContactTextDef * iTextDef

CContactTextDef * iTextDef [private]

CContactViewDef * iView

CContactViewDef * iView [private]