本文整理汇总了C++中CContactItemFieldSet::AddL方法的典型用法代码示例。如果您正苦于以下问题:C++ CContactItemFieldSet::AddL方法的具体用法?C++ CContactItemFieldSet::AddL怎么用?C++ CContactItemFieldSet::AddL使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CContactItemFieldSet
的用法示例。
在下文中一共展示了CContactItemFieldSet::AddL方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: WriteBlobL
/**
Utility method used to write text and binary blob fields into write streams. The write
streams will be used to persist the blob informations in contact database.
Provides a mechanism to get information from a contact item and store them in the
right blob fields within contact database. Template can be NULL.
@param aTextHeader reference to a write stream in which text header will be written
@param aTextValues reference to a write stream in which text values will be written.
From the caller point of view this reference should be a reference to a RSqlParamWriteStream instance
@param aBinaryHeader reference to a write stream in which binary header will be written
@param aBinaryValues reference to a write stream in which binary values will be written.
@param aItem Contact item to be filled with information from text blob field.
@param aSysTemplate System template item.
*/
void TCntPersistenceUtility::WriteBlobL(CEmbeddedStore& aTextEmbeddedStore, RWriteStream& aTextValues, CEmbeddedStore& aBinaryEmbeddedStore, CEmbeddedStore& aBinaryEmbeddedBlobStore, const CContactItem& aItem, const CContactTemplate* aSysTemplate)
{
CContactItemFieldSet& fieldSet = aItem.CardFields();
CContactItemFieldSet* textFieldSet = CContactItemFieldSet::NewLC();
CContactItemFieldSet* binaryFieldSet = CContactItemFieldSet::NewLC();
for(TInt i = 0; i < fieldSet.Count(); ++i)
{
CContactItemField* item = CContactItemField::NewL((aItem.CardFields())[i]);
CleanupStack::PushL(item);
if(item->StorageType() == KStorageTypeText)
{
textFieldSet->AddL(*item);
}
else
{
binaryFieldSet->AddL(*item);
}
CleanupStack::Pop(item);
}
TStreamId rootId = textFieldSet->StoreL(aTextEmbeddedStore, aSysTemplate, aTextValues, aBinaryEmbeddedBlobStore, NULL);// *textEmbeddedBlobStore);
aTextEmbeddedStore.SetRootL(rootId);
aTextEmbeddedStore.CommitL();
rootId = binaryFieldSet->StoreL(aBinaryEmbeddedStore, aSysTemplate, aTextValues, aBinaryEmbeddedBlobStore, NULL);
aBinaryEmbeddedStore.SetRootL(rootId);
aBinaryEmbeddedStore.CommitL();
aBinaryEmbeddedBlobStore.CommitL();
CleanupStack::PopAndDestroy(2, textFieldSet); //binaryFieldSet, textFieldSet
}
示例2: RestoreTextL
/**
Utility method used to read text fields from blob and fill item field set,Provides a mechanism to restore a
contact item field set from text blob field within contact database.
Blob informations are stored based on contact item field. At restore, a reference to a contact item field set
is provided. For every contact item field in the item field set, a text restore is made.
@param aFieldSet Reference to CContactItemFieldSet. Item field set that has to be filled with informations from blob
@param aHeaderStore Stream store containing the header informations
@param aId Root id for the header stream store
@param aValuesStore Read stream used to read text fields from text blob
@param aViewDef View definition indicating which fields have to be read from blob
@param aTemplate Template indicating if current field set should be filled based on a template
*/
void TCntPersistenceUtility::RestoreTextL(CContactItemFieldSet& aFieldSet, CStreamStore& aHeaderStore, TStreamId aId, HBufC* textStream, const CContactItemViewDef& aViewDef, const CContactItem* aTemplate)
{
const TBool KIncludeFields = ( aViewDef.Use() == CContactItemViewDef::EIncludeFields );
if (KIncludeFields && aViewDef.Count() == 0)
{
// If view definition does not contain any field we don't do anything (don't read from
// blob). We simply return from method without doing anything.
// This is not an error condition
return;
}
RStoreReadStream stream;
stream.OpenLC(aHeaderStore,aId);
TCardinality fieldCount;
stream>>fieldCount;
TInt textFieldIndex=0;
for (TInt ii = 0; ii < fieldCount; ++ii)
{
// Restore text for every CContactItemField in provided CContactItemFieldSet.
CContactItemField* field = CContactItemField::NewLC();
if(aTemplate)
{
field->RestoreFieldTypesL(stream, &(aTemplate->CardFields()));
}
else
{
field->RestoreFieldTypesL(stream, NULL);
}
ASSERT(field->StorageType() == KStorageTypeText);
TBool fieldDefined = ETrue;
if(!aViewDef.MatchesAll())
{
fieldDefined = (aViewDef.Find(field->ContentType()) != KErrNotFound);
}
if ((!((fieldDefined && KIncludeFields) || (!fieldDefined && !KIncludeFields))) ||
(field->IsHidden() && aViewDef.Mode() == CContactItemViewDef::EMaskHiddenFields))
{
CleanupStack::PopAndDestroy(field);
}
else
{
field->RestoreTextL(textStream, textFieldIndex);
aFieldSet.AddL(*field);
CleanupStack::Pop(field);
}
++textFieldIndex;
}
CleanupStack::PopAndDestroy(&stream);
}
示例3: PhonebookWriteReqL
static void PhonebookWriteReqL(PktBuf &in, PktBuf &out)
{
TUint16 memtype, ns, type, subtype;
TUint32 location;
CContactItem *item;
CContactItemFieldSet *fieldset;
CContactItemField *field;
TBuf<64> name;
TPtrC family_name, given_name;
int i, s;
g->InitPhoneBookL();
in >> memtype;
in >> location;
if (memtype != GN_MT_ME) {
out << (TUint16)GNAPPLET_MSG_PHONEBOOK_WRITE_RESP;
out << (TUint16)GN_ERR_INVALIDMEMORYTYPE;
return;
}
fieldset = CContactItemFieldSet::NewLC();
in >> ns;
for (i = 0; i < ns; i++) {
in >> type >> subtype >> name;
switch (type) {
case GN_PHONEBOOK_ENTRY_Name:
for (s = 0; s < name.Length() && name[s] != ' '; s++) ;
if (s >= 1 && s < name.Length()) {
family_name.Set(name.Ptr(), s);
given_name.Set(name.Ptr() + s + 1, name.Length() - s - 1);
} else {
family_name.Set(name);
}
if (family_name.Length() > 0) {
field = CContactItemField::NewL(KStorageTypeText, KUidContactFieldFamilyName);
//field->SetLabelL(_L("alma"));
field->SetMapping(KUidContactFieldVCardMapUnusedN);
field->TextStorage()->SetTextL(family_name);
fieldset->AddL(*field);
}
if (given_name.Length() > 0) {
field = CContactItemField::NewL(KStorageTypeText, KUidContactFieldGivenName);
//field->SetLabelL(_L("alma"));
field->SetMapping(KUidContactFieldVCardMapUnusedN);
field->TextStorage()->SetTextL(given_name);
fieldset->AddL(*field);
}
break;
case GN_PHONEBOOK_ENTRY_Email:
field = CContactItemField::NewL(KStorageTypeText, KUidContactFieldEMail);
field->SetMapping(KUidContactFieldVCardMapEMAILINTERNET);
field->TextStorage()->SetTextL(name);
fieldset->AddL(*field);
break;
case GN_PHONEBOOK_ENTRY_Note:
field = CContactItemField::NewL(KStorageTypeText, KUidContactFieldNote);
field->SetMapping(KUidContactFieldVCardMapNOTE);
field->TextStorage()->SetTextL(name);
fieldset->AddL(*field);
break;
case GN_PHONEBOOK_ENTRY_Number:
if (subtype == GN_PHONEBOOK_NUMBER_Fax) {
field = CContactItemField::NewL(KStorageTypeText, KUidContactFieldFax);
field->SetMapping(KUidContactFieldVCardMapTEL);
field->AddFieldTypeL(KUidContactFieldVCardMapFAX);
} else {
field = CContactItemField::NewL(KStorageTypeText, KUidContactFieldPhoneNumber);
field->SetMapping(KUidContactFieldVCardMapTEL);
switch (subtype) {
case GN_PHONEBOOK_NUMBER_Home:
field->AddFieldTypeL(KUidContactFieldVCardMapHOME);
break;
case GN_PHONEBOOK_NUMBER_Mobile:
field->AddFieldTypeL(KUidContactFieldVCardMapCELL);
break;
case GN_PHONEBOOK_NUMBER_Work:
field->AddFieldTypeL(KUidContactFieldVCardMapWORK);
break;
}
}
field->TextStorage()->SetTextL(name);
fieldset->AddL(*field);
break;
case GN_PHONEBOOK_ENTRY_Ringtone:
//field = CContactItemField::NewL(KStorageTypeText, KUidContactFieldRingTone);
//field->TextStorage()->SetTextL(name);
//fieldset->AddL(*field);
break;
case GN_PHONEBOOK_ENTRY_Group:
//field = CContactItemField::NewL(KStorageTypeText,
//field->TextStorage()->SetTextL(name);
//fieldset->AddL(*field);
break;
case GN_PHONEBOOK_ENTRY_URL:
field = CContactItemField::NewL(KStorageTypeText, KUidContactFieldUrl);
field->SetMapping(KUidContactFieldVCardMapURL);
field->TextStorage()->SetTextL(name);
fieldset->AddL(*field);
//.........这里部分代码省略.........