本文整理汇总了C++中CContactItem::SetTemplateRefId方法的典型用法代码示例。如果您正苦于以下问题:C++ CContactItem::SetTemplateRefId方法的具体用法?C++ CContactItem::SetTemplateRefId怎么用?C++ CContactItem::SetTemplateRefId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CContactItem
的用法示例。
在下文中一共展示了CContactItem::SetTemplateRefId方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DoTestsL
LOCAL_C void DoTestsL()
{
CleanupClosePushL(test);
test.Start(_L("@SYMTESTCaseID:PIM-T-TEMPLATECACHE-0001 ----------- State Tests ----------"));
__UHEAP_MARK;
RCntModel cntClient;
cntClient.ConnectL();
cntClient.OpenDatabase();
CCntTemplateCache* templateCache = CCntTemplateCache::NewL(cntClient);
CleanupStack::PushL(templateCache);
CContactIdArray* cardTemplateIds = CContactIdArray::NewLC();
// Add 15 templates
CContactTemplate* contactTemplate = NULL;
TInt ii = 0;
for (; ii < 15; ++ii)
{
contactTemplate = CContactTemplate::NewLC();
cardTemplateIds->AddL(cntClient.CreateContactL(*contactTemplate));
CleanupStack::PopAndDestroy(); // contactTemplate
}
// Create a contactItem
CCntItemBuilder* cntItemBldr = CCntItemBuilder::NewLC(static_cast<CContactTemplate&>(templateCache->SystemTemplateL()));
CContactItem* cntItem = cntItemBldr->GetCntItemLC();
/*TContactItemId cntId = */cntClient.CreateContactL(*cntItem);
ii = 0;
for (; ii < 15; ++ii)
{
cntItem->SetTemplateRefId((*cardTemplateIds)[ii]);
templateCache->MergeWithTemplateL(*cntItem);
// Merge a second time... the template should now be cached
templateCache->MergeWithTemplateL(*cntItem);
}
CleanupStack::PopAndDestroy(cntItem);
CleanupStack::PopAndDestroy(cntItemBldr);
CleanupStack::PopAndDestroy(cardTemplateIds);
CleanupStack::PopAndDestroy(templateCache);
cntClient.Close();
__UHEAP_MARKEND;
test.Next(_L("---- All Tests Completed OK ----"));
test.End();
CleanupStack::PopAndDestroy(1); // test.Close
}
示例2: AddFieldsNewTemplateL
/** Create Contact user defuned Template add add field to contact item
* through template and verify the field is being added
* aValue - field value
* @param aStorageType - Storage type of each field
* @param aContFieldUid - Uid of Contact field
* @param avCardMapUid - Uid of vCard
* @return - void
*/
void CTestAddFieldsStep::AddFieldsNewTemplateL(TPtrC aValue, TInt aStorageType,TUid aContFieldUid, TUid avCardMap)
{
TPtrC value;
TInt year, month, day;
CContactDatabase *base = NULL;
_LIT(KTestDbName, "c:mytemplate.cdb");
_LIT(KUserDefinedTemplate,"MyTemplate");
// replace existing database name
base = CContactDatabase::ReplaceL(KTestDbName);
CleanupStack::PushL(base);
TContactItemId TempId ;
CContactItemField* field = NULL;
//Create User defined Template
CContactItem* contactTemplate = base->CreateContactCardTemplateLC(KUserDefinedTemplate);
// Get the ID of Template
TempId = contactTemplate->Id();
//Add fields to it
field = CContactItemField::NewL(aStorageType, aContFieldUid);
CleanupStack::PushL(field);
field->SetMapping(avCardMap);
contactTemplate->AddFieldL(*field);
CleanupStack::Pop(field);
//Allocates and constructs a new contact card.
CContactItem* item = CContactCard::NewLC();
//Sets the ID of the template on which this contact item is based
item->SetTemplateRefId(TempId);
//create contact item and add field value to it
field = CContactItemField::NewL(aStorageType, aContFieldUid);
CleanupStack::PushL(field);
field->SetMapping(avCardMap);
if(aStorageType==KStorageTypeDateTime)
{
//Get the int value
TBool res;
res = GetIntFromConfig(ConfigSection(), KIniYear, year);
if(!res)
{
ERR_PRINTF1(_L("Unable to read year val from ini file"));
SetTestStepResult(EFail);
}
res = GetIntFromConfig(ConfigSection(), KIniMonth, month);
if(!res)
{
ERR_PRINTF1(_L("Unable to read month val from ini file"));
SetTestStepResult(EFail);
}
res = GetIntFromConfig(ConfigSection(), KIniDay, day);
if(!res)
{
ERR_PRINTF1(_L("Unable to read day val from ini file"));
SetTestStepResult(EFail);
}
TDateTime date(year,(TMonth)month,day,0,0,0,0);
field->DateTimeStorage()->SetTime(date);
}
else
{
field->TextStorage()->SetTextL(aValue);
}
item->AddFieldL(*field);
// verify the field is being added to the user defined template
CContactItemFieldSet& ContactFieldSet = item->CardFields();
TInt pos = ContactFieldSet.Find(aContFieldUid, avCardMap);
if(pos != KErrNotFound)
{
if(aStorageType==KStorageTypeDateTime)
{
TDateTime result=ContactFieldSet[pos].DateTimeStorage()->Time().DateTime();
//compair the results
if((result.Year() == year) && (result.Month() == (TMonth)month) && (result.Day() == day))
{
SetTestStepResult(EPass);
}
else
{
SetTestStepResult(EFail);
}
}
else
{
value.Set(ContactFieldSet[pos].TextStorage()->Text());
//compair the results
if(aValue.Compare(value)==0 )
//.........这里部分代码省略.........
示例3: Next
/**
Reads the contact item from the database using the given contact item ID.
@param aItemId The Id number of the contact to be read.
@param aView Specifies the fields to be read.
@param aInfoToRead not used
@param aSessionId The ID of the session that issued the request. This is used
to prevent Phonebook Synchroniser deadlock.
@param aIccOpenCheck Specifies if validation with the Phonebook Synchroniser is
needed for this contact.
@leave KErrArgument if the itemID can't be set within select statement
@leave KErrNotFound if a contact item with aItemId does not exist within contact database
@leave KSqlErrBusy the database file is locked; thrown if RSqlStatement::Next()
returns this error
@leave KErrNoMemory an out of memory condition has occurred - the statement
will be reset;thrown if RSqlStatement::Next() returns this error
@leave KSqlErrGeneral a run-time error has occured - this function must not
be called again;thrown if RSqlStatement::Next() returns this error
@leave KSqlErrMisuse this function has been called after a previous call
returned KSqlAtEnd or KSqlErrGeneral.thrown if RSqlStatement::Next()
returns this error
@leave KSqlErrStmtExpired the SQL statement has expired (if new functions or
collating sequences have been registered or if an
authorizer function has been added or changed);
thrown if RSqlStatement::Next() returns this error
@return CContactItem created from reading the database tables.
*/
CContactItem* CPplContactItemManager::ReadLC(TContactItemId aItemId, const CContactItemViewDef& aView, TInt aInfoToRead, TUint aSessionId, TBool aIccOpenCheck) const
{
CContactTemplate* sysTemplate = NULL;
if (aItemId != KGoldenTemplateId)
{
sysTemplate = const_cast<CContactTemplate*>(&iContactProperties.SystemTemplateL());
}
RSqlStatement selectStmt;
CleanupClosePushL(selectStmt);
User::LeaveIfError(selectStmt.Prepare(iDatabase, iSelectStatement->SqlStringL()));
TInt err = selectStmt.BindInt(KFirstParam, aItemId);
if(err != KErrNone)
{
User::Leave(KErrArgument);
}
CContactItem* item = NULL;
TUid type(KNullUid);
if((err = selectStmt.Next()) == KSqlAtRow)
{
TInt contactId = selectStmt.ColumnInt(iSelectStatement->ParameterIndex(KContactId));
TInt templateId = selectStmt.ColumnInt(iSelectStatement->ParameterIndex(KContactTemplateId));
TInt typeFlags = selectStmt.ColumnInt(iSelectStatement->ParameterIndex(KContactTypeFlags));
type = TCntPersistenceUtility::TypeFlagsToContactTypeUid(typeFlags);
item = CContactItem::NewLC(type);
item->SetId(contactId);
TPtrC guid = selectStmt.ColumnTextL(iSelectStatement->ParameterIndex(KContactGuidString));
item->SetUidStringL(guid);
TInt attr = (typeFlags & EContactAttributes_Mask) >> EContactAttributes_Shift;
item->SetAttributes(attr);
item->SetTemplateRefId(templateId);
item->SetLastModified(TTime(selectStmt.ColumnInt64(iSelectStatement->ParameterIndex(KContactLastModified))));
item->SetCreationDate(TTime(selectStmt.ColumnInt64(iSelectStatement->ParameterIndex(KContactCreationDate))));
item->SetAccessCount(selectStmt.ColumnInt(iSelectStatement->ParameterIndex(KContactAccessCount)));
RArray<TPtrC> fastAccessFields;
CleanupClosePushL(fastAccessFields);
fastAccessFields.AppendL(selectStmt.ColumnTextL(iSelectStatement->ParameterIndex(KContactFirstName)));
fastAccessFields.AppendL(selectStmt.ColumnTextL(iSelectStatement->ParameterIndex(KContactLastName)));
fastAccessFields.AppendL(selectStmt.ColumnTextL(iSelectStatement->ParameterIndex(KContactCompanyName)));
fastAccessFields.AppendL(selectStmt.ColumnTextL(iSelectStatement->ParameterIndex(KContactFirstNamePrn)));
fastAccessFields.AppendL(selectStmt.ColumnTextL(iSelectStatement->ParameterIndex(KContactLastNamePrn)));
fastAccessFields.AppendL(selectStmt.ColumnTextL(iSelectStatement->ParameterIndex(KContactCompanyNamePrn)));
//set first name, last name, company name, first name pronunciation, last name pronunciation, company name pronunciation
for (TInt fieldNum = item->CardFields().Count() - 1; fieldNum>=0; --fieldNum)
{
CContactItemField& textField = (item->CardFields())[fieldNum];
const TInt nameFieldIndex = NameFieldIndex(textField);
// Check if field is first name, last name, company name,
// first name pronunciation, last name pronunciation, company name pronunciation.
if (nameFieldIndex != KErrNotFound)
{
HBufC* text = HBufC::NewLC(fastAccessFields[nameFieldIndex].Size());
text->Des() = fastAccessFields[nameFieldIndex];
textField.TextStorage()->SetText(text);
CleanupStack::PopAndDestroy(text);
}
}
CleanupStack::PopAndDestroy(&fastAccessFields);
}