diff -r fd64c38c277d -r b46a585f6909 phonebookengines_old/contactsmodel/tsrc/T_UTILS.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookengines_old/contactsmodel/tsrc/T_UTILS.H Fri Jun 11 13:29:23 2010 +0300 @@ -0,0 +1,169 @@ +// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#ifndef __T_UTILS_H__ +#define __T_UTILS_H__ + +#include +#include +#include +#include +#include +#include + +class RTest; + +enum TVCardStoreType + { + KVCardStoreTypeBuf, + KVCardStoreTypeFile, + }; + +class CVCardTestStore : public CBase + { +public: + IMPORT_C ~CVCardTestStore(); + IMPORT_C static CVCardTestStore* NewLC(TVCardStoreType aType, RFs *aFs, TInt aFileNum); + IMPORT_C static CVCardTestStore* NewL(TVCardStoreType aType, RFs *aFs, TInt aFileNum); + inline void SetStreamId(TStreamId aStreamId) {iStreamId=aStreamId;}; + inline TStreamId StreamId() const {return(iStreamId);}; + IMPORT_C CStreamStore *Store() const; +#ifdef __EABI__ + /** Cause vtable & typeinfo to be exported */ + CVCardTestStore() {} +#endif + +private: + IMPORT_C void ConstructL(TVCardStoreType aType, RFs *aFs, TInt aFileNum); +private: + TStreamId iStreamId; + TVCardStoreType iType; + CBufStore *iBufStore; + CFileStore *iFileStore; + }; + + +/** Holds results from performance profiling. +Same data members as deprecated TProfile class in e32debug.h */ +class TCntProfile + { +public: + TInt iTime; + TInt iCount; + }; + + +class CCntTest : public CBase + { +public: + IMPORT_C void ConstructL(RTest &aTest, const TDesC &aDatabaseName); + IMPORT_C void EndTestLib(TInt aErr); + inline RFs &Fs() {return(iFs);}; + CContactDatabase* Db() {return(iDb);}; + IMPORT_C CContactDatabase* CreateDatabaseL(); + IMPORT_C CContactDatabase* OpenDatabaseL(); + IMPORT_C void SelectDriveL(); + IMPORT_C void CloseDatabase(); + IMPORT_C void DeleteDatabaseL(); + IMPORT_C void DeleteAllTemplateFieldsL(); + IMPORT_C void TestField(CContactItemField &aField,TStorageType aType,TFieldType aFieldType,TUid aMapping); + IMPORT_C void AdjustContactAccessCountL(TContactItemId aItemId, TInt aCount); + IMPORT_C void TestAccessCount(TContactItemId aItemId, TInt aCount); + IMPORT_C TBool CompareFields(CContactItemField &aField1, CContactItemField &aField2); + IMPORT_C void CheckDeletedContact(TContactItemId aDeleteId); + IMPORT_C void CheckContactDoesNotExist(TContactItemId aNotExistId); + IMPORT_C void DeleteContact(TContactItemId aDeleteMe); + IMPORT_C HBufC *ContactUidLC(TContactItemId aId, TInt64 aMachineId); + IMPORT_C CVCardTestStore* ExportContactsLC(const CContactIdArray *aIds, TUint aFormatFlags, TVCardStoreType aType=KVCardStoreTypeBuf, TInt aFileNum=0); + IMPORT_C CVCardTestStore* ExportContactLC(TContactItemId aId, TUint aFormatFlags, TVCardStoreType aType=KVCardStoreTypeBuf, TInt aFileNum=0); + IMPORT_C void ImportContacts1by1L(CVCardTestStore* aStore, TUint aFormatFlags); + IMPORT_C CArrayPtr* ImportContactsL(CVCardTestStore* aStore, TUint aFormatFlags); + IMPORT_C CArrayPtr* ImportContactsLC(CVCardTestStore* aStore, TUint aFormatFlags); + IMPORT_C void PrintfNewline() const; + IMPORT_C TBool LockServerSessionExists(TBool aPause=EFalse) const; + IMPORT_C TInt LockServerProcessCount(TBool aPause=EFalse, TBool aDisplayCount=EFalse, TBool aDisplayList=EFalse) const; + IMPORT_C void TestLockServerExists() const; + IMPORT_C void TestNoLockServer() const; + IMPORT_C void TestLockServerCloses() const; + inline const TFileName& DatabaseName() const {return(iDatabaseName);}; + /** Profiling APIs */ + IMPORT_C static TInt ProfileResult(TCntProfile* aProfile,TInt aStart,TInt aCount); + IMPORT_C static TInt ProfileReset(TInt aStart,TInt aCount); + IMPORT_C static TInt ProfileStart(TInt aProfile); + IMPORT_C static TInt ProfileEnd(TInt aProfile); + +#ifdef __EABI__ + /** Cause vtable & typeinfo to be exported */ + IMPORT_C CCntTest() {} +#endif +private: + + IMPORT_C ~CCntTest(); +private: + CContactDatabase* iDb; + TFileName iDatabaseName; + RFs iFs; + CTrapCleanup* iCleanup; + RTest *iTest; + TBool iIsTopLevel; + + }; + +struct TCntProfileTls + { + TTime iTime; + TCntProfile iProfile; + }; + + +IMPORT_C TPtrC FieldText(CContactItem& aItem,TUid aType); +IMPORT_C void SetNameL(CContactItem& aItem,TUid aFieldType,TUid aMapping,const TDesC& aName, TBool aAddEntry); +IMPORT_C void AddFieldL(CContactItemFieldSet* aFieldSet, TStorageType aType,TFieldType aFieldType,TUid aMapping); +IMPORT_C void AddFieldL(CContactItem* aItem, TStorageType aType,TFieldType aFieldType,TUid aMapping); +IMPORT_C void InsertFieldL(CContactItem& aItem, TInt aPos, TStorageType aType,TFieldType aFieldType,TUid aMapping); +IMPORT_C void InsertFieldL(CContactItem& aItem, TInt aPos, TStorageType aType,TFieldType aFieldType,TUid aMapping, const TDesC& aText); +IMPORT_C TContactItemId AddContactL(CContactDatabase* aDb, TFieldType aFieldType,TUid aMapping, const TDesC &aText); +IMPORT_C void SetUserFlags(CContactItemFieldSet& aFieldSet, TUint aFlags, TInt aIndex); +IMPORT_C void SetUserFlags(CContactItemFieldSet& aFieldSet, TUint aFlags); +IMPORT_C void SetUserFlags(CContactItem* aItem, TUint aFlags, TInt aIndex); +IMPORT_C void SetUserFlags(CContactItem* aItem, TUint aFlags); +IMPORT_C CVCardTestStore* ExportContactsL(CContactDatabase* aDb, const CContactIdArray *aIds, TUint aFormatFlags, TVCardStoreType aType, RFs *aFs, TInt aFileNum); +IMPORT_C CArrayPtr* ImportContactsL(CContactDatabase* aDb, CVCardTestStore* aStore, TUint aFormatFlags); +IMPORT_C void CleanUpResetAndDestroy(TAny *aArray); +IMPORT_C TBool CompareItemField(const CContactItemField &aItemField1, const CContactItemField &aItemField2, TBool aCheckStorage); +IMPORT_C TBool CompareItemFields(CContactItem *aItem1, CContactItem *aItem2, TBool aCheckStorage=ETrue, TBool aTemplateLabelRemoved=EFalse); +IMPORT_C TBool TestGroupStateL(CContactDatabase* aDb, TInt aGroupCount, TInt aGroupEntryCount); +IMPORT_C HBufC* GetFullDbName(const TDesC& aDbName); +IMPORT_C TBool DbShouldBeInDamagedState(CContactDatabase* aDb); +IMPORT_C CContactItem* ReadContactFromDamagedDbLC(CContactDatabase* aDb, TContactItemId aContactId); + +/** A simple timer primarily for use in the T_PERFORMANCE test. + Used as an alternative for the CntProfile timing stuff. + Uses User::NTickCount as opposed to TTime. +*/ +class TCntPerfTimer + { +public: + IMPORT_C TCntPerfTimer(); + IMPORT_C void StartTimer(); + IMPORT_C void StopTimer(); + IMPORT_C void ResetTimer(); + IMPORT_C TUint Result(); +private: + TUint iTickCount1; + TUint iTickCount2; + }; + +#endif