CContactItemFieldSet Class Reference

#include <app/cntitem.h>

class CContactItemFieldSet : public CBase, public CBase

Inherits from

Public Member Functions
~CContactItemFieldSet()
IMPORT_C CContactItemFieldSet &AddL(CContactItemField &)
CArrayFix< TFieldHeader > *ConstructFieldHeaderArrayLC(RWriteStream &, CStreamStore &)
TBool ContainsFieldTypeMapping(const CContentType &, const TFieldType &)
TInt Count()
voidExternalizeL(RWriteStream &)
TInt FieldText(TFieldType, TDes &, TInt)
TInt FieldTypeCount(const CContactItemFieldSet &, TInt, const CContactItemField &)
TInt Find(TFieldType)
TInt Find(TFieldType, TUid)
IMPORT_C TIntFindNext(TFieldType, TInt)
IMPORT_C TIntFindNext(TFieldType, TUid, TInt)
IMPORT_C voidInsertL(TInt, CContactItemField &)
voidInternalizeL(RReadStream &)
IMPORT_C voidMove(TInt, TInt)
IMPORT_C CContactItemFieldSet *NewL()
IMPORT_C CContactItemFieldSet *NewLC()
IMPORT_C voidRemove(TInt)
voidReset()
IMPORT_C voidRestoreL(CStreamStore &, TStreamId, CStreamStore *, const CContactItemViewDef &, RReadStream &)
IMPORT_C voidRestoreL(CStreamStore &, TStreamId, CStreamStore *, const CContactItemViewDef &, const CContactItem *, HBufC *)
IMPORT_C TStreamIdStoreL(CStreamStore &, RWriteStream &, CStreamStore &)
TStreamId StoreL(CStreamStore &, RWriteStream &, CStreamStore &, CContactTables *)
IMPORT_C voidUpdateFieldL(const CContactItemField &, TInt)
IMPORT_C voidUpdateFieldSyncL(const CContactItemField &, TInt)
const CContactItemField &operator[](TInt)
CContactItemField &operator[](TInt)
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()

Detailed Description

A contact item's field set. The field set owns an array of contact item fields (CContactItemFields). The field set is owned by a contact item, and can be retrieved using CContactItem::CardFields(). Use functions in class CContactItem to add and remove fields to/from the field set.

A field set can contain more than one field of the same type, but this is not advisable as it may cause problems when synchronising the contacts database.

Constructor & Destructor Documentation

~CContactItemFieldSet ( )

IMPORT_C~CContactItemFieldSet()

The destructor frees all resources owned by the field set, prior to its destruction.

Member Function Documentation

AddL ( CContactItemField & )

IMPORT_C CContactItemFieldSet &AddL(CContactItemField &aField)

Appends a field to the field set. The field set takes ownership of the field.

Parameters
aFieldReference to the field to add to the field set. The field's ID is updated.
Return Value
Reference to the current field set.

ConstructFieldHeaderArrayLC ( RWriteStream &, CStreamStore & )

CArrayFix< TFieldHeader > *ConstructFieldHeaderArrayLC(RWriteStream &aTextStream,
CStreamStore &aBlobStore
)
Part of the system template update implementation. This could be used for a generic update method at a later stage.
Since
7.0

ContainsFieldTypeMapping ( const CContentType &, const TFieldType & )

TBool ContainsFieldTypeMapping(const CContentType &aBaseFieldContentType,
const TFieldType &aContactFieldType
)const

Count ( )

TInt Count()const [inline]

Gets the number of fields in the field set.

Return Value
The number of fields in the field set.

ExternalizeL ( RWriteStream & )

voidExternalizeL(RWriteStream &aStream)const

Externalises a CContactItemFieldSet object to a write stream.

Parameters
aStreamStream to which the object should be externalised.

FieldText ( TFieldType, TDes &, TInt )

TInt FieldText(TFieldTypeaFieldType,
TDes &aText,
TIntaStartPosition
)const

FieldTypeCount ( const CContactItemFieldSet &, TInt, const CContactItemField & )

TInt FieldTypeCount(const CContactItemFieldSet &aSystemTemplateFields,
TIntaStartIndex,
const CContactItemField &aField
)const

Find ( TFieldType )

TInt Find(TFieldTypeaFieldType)const [inline]

Finds the first field in the field set with the specified field type.

Parameters
aFieldTypeThe field type of interest.
Return Value
If found, the index of the field within the field set, or KErrNotFound if not found.

Find ( TFieldType, TUid )

TInt Find(TFieldTypeaFieldType,
TUidaMapping
)const [inline]

Finds the first field in the field set containing both the content type mapping and the field type specified.

Parameters
aFieldTypeThe field type of interest.
aMappingThe content type mapping of interest.
Return Value
If found, the index of the field within the field set, or KErrNotFound if not found.

FindNext ( TFieldType, TInt )

IMPORT_C TIntFindNext(TFieldTypeaFieldType,
TIntaStartPos =  KContactFieldSetSearchAll
)const

Finds the next field in the field set with the specified field type.

Parameters
aFieldTypeThe field type of interest.
aStartPosThe index within the field set array at which to start the search. By default set to KContactFieldSetSearchAll, to find the first field. Must be a valid array index, or the function raises a panic.
Return Value
If found, the index of the field within the field set, or KErrNotFound if not found.

FindNext ( TFieldType, TUid, TInt )

IMPORT_C TIntFindNext(TFieldTypeaFieldType,
TUidaMapping,
TIntaStartPos =  KContactFieldSetSearchAll
)const

Finds the next field in the field set containing both the content type mapping and the field type specified.

Parameters
aFieldTypeThe field type of interest.
aMappingThe content type mapping of interest.
aStartPosThe index within the array at which to start the search. By default set to KContactFieldSetSearchAll, to find the first field. Must be a valid array index, or the function raises a panic.
Return Value
If found, the index of the field within the field set, or KErrNotFound if not found.

InsertL ( TInt, CContactItemField & )

IMPORT_C voidInsertL(TIntaIndex,
CContactItemField &aField
)

Inserts a field into the field set.

Parameters
aIndexThe position in the field set at which to insert the field. If equal to or greater than the number of elements in the field set, the field is appended to the field set.
aFieldReference to the field to add to the field set. The field's ID is updated.

InternalizeL ( RReadStream & )

voidInternalizeL(RReadStream &aStream)

Internalises a CContactItemFieldSet object from a read stream.

Parameters
aStreamStream from which the object should be internalised.

Move ( TInt, TInt )

IMPORT_C voidMove(TIntaFrom,
TIntaTo
)

Changes a field's position within the field set.

Both indexes specified must be valid (i.e. between zero and Count()-1 inclusive), or the function raises a panic.

Parameters
aFromThe index of the field to move.
aToThe index of the new position within the field set.

NewL ( )

IMPORT_C CContactItemFieldSet *NewL()[static]

Allocates and constructs a new field set.

Return Value
Pointer to the newly created field set.

NewLC ( )

IMPORT_C CContactItemFieldSet *NewLC()[static]

Allocates and constructs a new field set.

Return Value
Pointer to the newly created field set. This is left on the cleanup stack.

Remove ( TInt )

IMPORT_C voidRemove(TIntaIndex)

Removes a field from the field set.

Parameters
aIndexThe index of the field to delete. Must be a valid index within the field set or the function raises a panic.

Reset ( )

voidReset()[inline]

Deletes all fields in the field set.

RestoreL ( CStreamStore &, TStreamId, CStreamStore *, const CContactItemViewDef &, RReadStream & )

IMPORT_C voidRestoreL(CStreamStore &aStore,
TStreamIdanId,
CStreamStore *aBlobStore,
const CContactItemViewDef &aViewDef,
RReadStream &aReadStream
)

Restores the field set using a view definition.

Parameters
aStoreStore from which to restore the field set.
anIdThe root stream ID of aStore.
aBlobStoreIf specified, the stream store from which data stored in non-text fields is read.
aViewDefThe view definition to use.
aReadStreamRead stream from which data stored in text fields (with a storage type of KStorageTypeText) is read.

RestoreL ( CStreamStore &, TStreamId, CStreamStore *, const CContactItemViewDef &, const CContactItem *, HBufC * )

IMPORT_C voidRestoreL(CStreamStore &aStore,
TStreamIdanId,
CStreamStore *aBlobStore,
const CContactItemViewDef &aViewDef,
const CContactItem *aTemplate,
HBufC *aTextBuf
)

The overload that doesn't use dangerous CContactItemFieldSet::LoadTextStreamLC(aReadStream) method. LoadTextStreamLC relies on the stream to know its size, but now all types of streams support this functionality. In order to avoid calling LoadTextStreamLC, aTextBuf is already loaded in HBufC in the caller function. The caller function had access to the table and can use ColLength() API to get the lebgth of the field.

StoreL ( CStreamStore &, RWriteStream &, CStreamStore & )

IMPORT_C TStreamIdStoreL(CStreamStore &aStore,
RWriteStream &aTextStream,
CStreamStore &aBlobStore
)

Stores the field set to a stream store.

Parameters
aStoreStream store to which the field set is written.
aTextStreamStream to which data stored in text fields (with a storage type of KStorageTypeText) is written.
aBlobStoreStream store to which data stored in non-text fields is written.
Return Value
The ID of the stream store.

StoreL ( CStreamStore &, RWriteStream &, CStreamStore &, CContactTables * )

TStreamId StoreL(CStreamStore &aStore,
RWriteStream &aTextStream,
CStreamStore &aBlobStore,
CContactTables *aTables
)

UpdateFieldL ( const CContactItemField &, TInt )

IMPORT_C voidUpdateFieldL(const CContactItemField &aField,
TIntaMatchCount
)

Updates a field in the field set. The field whose content type matches aField's content type is replaced by aField. The second parameter is used to identify which matching field is updated. Specify 1 to update the first matching field, 2 for the second and so on. If there is no field in the field set which matches aField's content type, then aField is appended to the field set.

Parameters
aFieldThe new field information.
aMatchCountIdentifies which matching field in the field set should be updated.

UpdateFieldSyncL ( const CContactItemField &, TInt )

IMPORT_C voidUpdateFieldSyncL(const CContactItemField &aField,
TIntaMatchCount
)

Updates a field in the field set. Searches the set for a matching field. Deletes the matching set's field if any. Adds the aField to the set anyway. Uses the IsEqualForSyncUpdate() function to compare two CContentType objects, rather than the default equals operator. Takes care to hold the PREF, VoiceDial, and SpeedDial properties in the updated field.

Parameters
aFieldSpecifies both the type of the field to update and the updated field's value.
aMatchCountGives the offset of the matching field to update in the order of the set (i.e. 1, means update the first matching field in the set; 2, means update the second matching field in the set).

operator[] ( TInt )

const CContactItemField &operator[](TIntaIndex)const [inline]

Gets the field located at a specified position in the field set.

Parameters
aIndexThe position of the field in the field set. This is relative to zero. It must be non-negative and less than the number of objects in the array, otherwise the operator raises a panic.
Return Value
A const reference to an element in the array.

operator[] ( TInt )

CContactItemField &operator[](TIntaIndex)[inline]

Gets the field located at a specified position in the field set.

Parameters
aIndexThe position of the field in the field set. This is relative to zero. It must be non-negative and less than the number of objects in the array, otherwise the operator raises a panic.
Return Value
A non-const reference to an element in the array.