diff -r a36b1e19a461 -r 989d2f495d90 serviceproviders/sapi_contacts_vpbk/tsrc/dev/tcontacts_async/inc/tcontacts_async.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/serviceproviders/sapi_contacts_vpbk/tsrc/dev/tcontacts_async/inc/tcontacts_async.h Fri Jul 03 15:51:24 2009 +0100 @@ -0,0 +1,446 @@ +/* +* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: ?Description +* +*/ + + + + +#ifndef CONTACTSUT_H +#define CONTACTSUT_H + +// INCLUDES +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "contactcallback.h" + +// Logging path +_LIT( KContactsUTLogPath, "c:\\logs\\TestFramework\\ContactsUT\\" ); +// Log file +_LIT( KContactsUTLogFile, "ContactsUT.txt" ); + +// CONSTANTS + + + +// FORWARD DECLARATIONS +class CContactsUT; +extern int getlist_cancel(int, char**); +extern int add_cancel(int, char**); +extern int delete_cancel(int, char**); +extern int import_cancel(int, char**); +extern int export_cancel(int, char**); +extern int organise_cancel(int, char**); +extern int getlistsrh_cancel(int, char**); +//extern int getlist_detail_cancel(int, char**); + +// FORWARD DECLARATIONS +class CContactsUT; +class CVPbkContactManager; +class MVPbkContactStoreList; +class MVPbkStoreContact; +class MVPbkContactOperationBase; +class CVPbkContactLinkArray; +class CVPbkVCardEng; +class CContactService; +class CSingleContact; +// CLASS DECLARATION + +/** +* CContactsUT test class for STIF Test Framework TestScripter. +* ?other_description_lines +* +* @lib ?library +* @since ?Series60_version +*/ +NONSHARABLE_CLASS(CContactsUT) : public CScriptBase, + public MContactCallback, + public MVPbkContactStoreListObserver, + public MVPbkContactObserver, + public MVPbkContactFindObserver, + public MVPbkSingleContactOperationObserver, + public MVPbkBatchOperationObserver + + { + public: + enum TOperation + { + ENone, + EContact, + EGroup, + EVCard, + EVCardEx, + EGetContact, + EGetGroup, + EGetDatabase, + EGetContactDelete, + ESingleContact, + ESearchContact, + EAscContact, + EDscContact, + EContactId, + EContactVerify + }; + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CContactsUT* NewL( CTestModuleIf& aTestModuleIf ); + + /** + * Destructor. + */ + virtual ~CContactsUT(); + + public: // New functions + + /** + * ?member_description. + * @since ?Series60_version + * @param ?arg1 ?description + * @return ?description + */ + //?type ?member_function( ?type ?arg1 ); + + public: // Functions from base classes + + /** + * From CScriptBase Runs a script line. + * @since ?Series60_version + * @param aItem Script line containing method name and parameters + * @return Symbian OS error code + */ + virtual TInt RunMethodL( CStifItemParser& aItem ); + /** + * From CScriptBase Runs a script line. + * @since ?Series60_version + * @param aItem Script line containing method name and parameters + * @return Symbian OS error code + */ + virtual void HandleReturnValue( TOperationEvent aEvent, const TInt& aError, TInt aTransId ); + + /* + *Called after GetList async call is complete + */ + virtual void HandleReturnIter( const TInt& aError, CContactIter* aIter, TInt aTransId ); + + /* + * Called when creating a new contact or retrieving a contact is successful + */ + virtual void HandleRetrieveContact( MVPbkStoreContact* aStoreContact, TInt aTransId ); + + /** + * Called when the opening process is complete. + * + * Before this all stores have sent StoreReady or StoreUnavailable + * event. The client can not trust that all stores are available + * for use when this is called. + */ + virtual void OpenComplete(); + + /** + * Called when a contact store is ready to use. + * + * @param aContactStore The store that is ready. + */ + virtual void StoreReady(MVPbkContactStore& aContactStore); + + /** + * Called when a contact store becomes unavailable. + * + * Client may inspect the reason of the unavailability and decide + * whether or not it will keep the store opened (ie. listen to + * the store events). + * + * @param aContactStore The store that became unavailable. + * @param aReason The reason why the store is unavailable. + * This is one of the system wide error codes. + */ + virtual void StoreUnavailable(MVPbkContactStore& aContactStore, + TInt aReason); + + /** + * Called when changes occur in the contact store. + * + * @see TVPbkContactStoreEvent + * @param aContactStore A store whose event it is. + * @param aStoreEvent The event that has occurred. + */ + virtual void HandleStoreEventL( + MVPbkContactStore& aContactStore, + TVPbkContactStoreEvent aStoreEvent); + + /** + * Called when a contact operation has succesfully completed. + * + * NOTE: If you use Cleanupstack for MVPbkStoreContact use + * MVPbkStoreContact::PushL or CleanupDeletePushL from e32base.h. + * (Do Not Use CleanupStack::PushL(TAny*) because then the virtual + * destructor of the M-class won't be called when the object + * is deleted). + * + * @param aResult The result of the operation. The client takes + * the ownership of the iStoreContact immediately + * if set in aResult. + */ + virtual void ContactOperationCompleted(TContactOpResult aResult); + + /** + * Called when a contact operation has failed. + * + * @param aOpCode The operation that failed. + * @param aErrorCode System error code of the failure. + * KErrAccessDenied when EContactCommit + * means that contact hasn't been locked. + * @param aErrorNotified ETrue if the implementation has already + * notified user about the error, + * EFalse otherwise. + */ + virtual void ContactOperationFailed + (TContactOp aOpCode, TInt aErrorCode, TBool aErrorNotified); + + /** + * Called when find is complete. Caller takes ownership of the results + * In case of an error during find, the aResults may contain only + * partial results of the find + * + * @param aResults Array of contact links that matched the find + * Callee must take ownership of this object in + * the start of the function, ie. in case the + * function leaves the results must be destroyed. + * The find operation can be destroyed at the end + * of this callback. + */ + virtual void FindCompleteL( MVPbkContactLinkArray* aResults ); + + /** + * Called in case the find fails for some reason. The find operation + * can be destroyed at the end of this callback. + * + * @param aError One of the system wide error codes. + * KErrNotReady if store is not ready (not open or unavailable) + */ + virtual void FindFailed( TInt aError ); + + /** + * Called when the operation is completed. + * + * A client has the operation as a member and it can delete the operation + * instance in this function call. If the implementation of the store + * calls the function from the operation instance it must not handle + * any member data after calling it. + * + * @param aOperation The completed operation. + * @param aContact The contact returned by the operation. + * A client must take the ownership immediately. + * + * NOTE: + * If you use CleanupStack for MVPbkStoreContact + * Use MVPbkStoreContact::PushL or + * CleanupDeletePushL from e32base.h. + * (Do Not Use CleanupStack::PushL(TAny*) because + * then the virtual destructor of the M-class + * won't be called when the object is deleted). + */ + virtual void VPbkSingleContactOperationComplete( + MVPbkContactOperationBase& aOperation, + MVPbkStoreContact* aContact ); + + /** + * Called if the operation fails. + * + * A client has the operation as a member and it can delete the operation + * instance in this function call. If the implementation of the store + * calls the function from the operation instance it must not handle + * any member data after calling it. + * + * @param aOperation The failed operation. + * @param aError An error code of the failure. + */ + virtual void VPbkSingleContactOperationFailed( + MVPbkContactOperationBase& aOperation, + TInt aError ); + + /** + * Called when one step of the operation is completed. + * + * @param aOperation Operation whose step has completed + * @param aStepSize Size of the performed step + */ + virtual void StepComplete( + MVPbkContactOperationBase& aOperation, + TInt aStepSize ); + + /** + * Called when one step of the operation fails. + * + * @param aOperation Operation whose step has failed + * @param aStepSize Size of the performed step + * @param aError Error that occured + * @return ETrue if the batch operation should continue, + * EFalse otherwise + * NOTE! If returning ETrue the operation can NOT be deleted. + * Operation should be deleted in OperationCompleted() + * function. + * If returning EFalse the operation can be deleted + * safely. + */ + virtual TBool StepFailed( + MVPbkContactOperationBase& aOperation, + TInt aStepSize, TInt aError ); + + /** + * Called when operation is completed. + * This is called when all steps are executed. If EFalse is returned + * in StepFailed() call this function is NOT called. + * + * @param aOperation the completed operation + */ + virtual void OperationComplete( + MVPbkContactOperationBase& aOperation ); + + + protected: // New functions + + /** + * ?member_description. + * @since ?Series60_version + * @param ?arg1 ?description + * @return ?description + */ + //?type ?member_function( ?type ?arg1 ); + + protected: // Functions from base classes + + /** + * From ?base_class ?member_description + */ + //?type ?member_function(); + + private: + + /** + * C++ default constructor. + */ + CContactsUT( CTestModuleIf& aTestModuleIf ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + // Prohibit copy constructor if not deriving from CBase. + // ?classname( const ?classname& ); + // Prohibit assigment operator if not deriving from CBase. + // ?classname& operator=( const ?classname& ); + + /** + * Frees all resources allocated from test methods. + * @since ?Series60_version + */ + void Delete(); + + /** + * Test methods are listed below. + */ + public: + void DeleteAllL(); + void AddOneContactL(TDesC& aName); + void CheckContactsL(TInt& aCount,RPointerArray& aIdArray); + + + /** + * Example test method. + * @since ?Series60_version + * @param aItem Script line containing parameters. + * @return Symbian OS error code. + */ + //ADD NEW METHOD DEC HERE + virtual TInt AddContactSAPIL( CStifItemParser& aItem ); + virtual TInt DeleteContactSAPIL( CStifItemParser& aItem ); + virtual TInt ModifyContactSAPIL( CStifItemParser& aItem ); + virtual TInt ImportContactSAPIL( CStifItemParser& aItem ); + virtual TInt ExportContactSAPIL( CStifItemParser& aItem ); + + virtual TInt GetListDeleteContactL( CStifItemParser& aItem ); + virtual TInt AddContactGetListL( CStifItemParser& aItem ); + virtual TInt GetGroupsL( CStifItemParser& aItem ); + virtual TInt GetContactsL( CStifItemParser& aItem ); + virtual TInt GetDatabaseL( CStifItemParser& aItem ); + virtual TInt AddL( CStifItemParser& aItem ); + virtual TInt AddGroupL( CStifItemParser& aItem ); + virtual TInt DeleteContactL( CStifItemParser& aItem ); + virtual TInt DeleteGroupL( CStifItemParser& aItem ); + virtual TInt ModifyL( CStifItemParser& aItem ); + virtual TInt ModifyGroupL( CStifItemParser& aItem ); + virtual TInt OrganiseAddL( CStifItemParser& aItem ); + virtual TInt OrganiseDeleteL( CStifItemParser& aItem ); + virtual TInt ImportL( CStifItemParser& aItem ); + virtual TInt ExportL( CStifItemParser& aItem ); + virtual TInt GetSearchContactL( CStifItemParser& aItem ); + virtual TInt GetContactsAscOrderL( CStifItemParser& aItem ); + virtual TInt GetContactsDscOrderL( CStifItemParser& aItem ); + virtual TInt GetListConactIdL( CStifItemParser& aItem ); + virtual TInt AddInvalidFieldL( CStifItemParser& aItem ); + virtual TInt AddMultiplePhoneNumbersContactL( CStifItemParser& aItem ); + virtual TInt DeleteSingleContactL( CStifItemParser& aItem ); + virtual TInt GetListCancelL( CStifItemParser& aItem ); + virtual TInt GetListSrchCancelL( CStifItemParser& aItem ); + virtual TInt ExportCancelL( CStifItemParser& aItem ); + virtual TInt AddCancelL( CStifItemParser& aItem ); + virtual TInt ImportCancelL( CStifItemParser& aItem ); + virtual TInt DeleteCancelL( CStifItemParser& aItem ); + virtual TInt OrganiseCancelL( CStifItemParser& aItem ); + // virtual TInt GetListDetailCancelL( CStifItemParser& aItem ); + private: // Data + TInt iErr; + HBufC8* iBuf; + + RFs iRfs; + MVPbkContactStoreList* iStores; + MVPbkContactStore* iStore; + MVPbkStoreContact* iStoreContact; + MVPbkContactGroup* iGroup; + MVPbkContactLink* iResult; + MVPbkContactOperationBase* iOp; + CVPbkContactLinkArray* iContactToDelete; + CVPbkVCardEng* iVCardEngine; + RDesWriteStream iDestStream; + RFileReadStream iSource; + TInt iOperation; + CContactService* iServiceHandle; + CSingleContact* iSingleContact; + public: + CVPbkContactManager* iContactManager; + HBufC8* iBuffer; + MVPbkContactLinkArray* iFindResults; + + }; + +#endif // CONTACTSUT_H + +// End of File