williamr@4: /* williamr@4: * Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies). williamr@4: * All rights reserved. williamr@4: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@4: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@4: * williamr@4: * Initial Contributors: williamr@4: * Nokia Corporation - initial contribution. williamr@4: * williamr@4: * Contributors: williamr@4: * williamr@4: * Description: Virtual Phonebook observer interface for contact williamr@4: * operations (Delete, Commit...). williamr@4: * williamr@4: */ williamr@4: williamr@4: williamr@4: #ifndef MVPBKCONTACTOBSERVER_H williamr@4: #define MVPBKCONTACTOBSERVER_H williamr@4: williamr@4: // INCLUDES williamr@4: #include williamr@4: #include williamr@4: williamr@4: // FORWARD DECLARATIONS williamr@4: class MVPbkStoreContact; williamr@4: williamr@4: williamr@4: // CLASS DECLARATIONS williamr@4: williamr@4: /** williamr@4: * Virtual Phonebook Contact operation observer interface. williamr@4: * This interface is used to signal the contact operation client williamr@4: * of events. williamr@4: */ williamr@4: class MVPbkContactObserver williamr@4: { williamr@4: public: // Types williamr@4: /** williamr@4: * Operation codes for Contact operation observers. williamr@4: */ williamr@4: enum TContactOp williamr@4: { williamr@4: /// Unknown operation williamr@4: EContactOperationUnknown = 0, williamr@4: /// See MVPbkViewContact::ReadL williamr@4: EContactRead, williamr@4: /// See MVPbkViewContact::ReadAndLockL williamr@4: EContactReadAndLock, williamr@4: /// See MVPbkBaseContact::DeleteL williamr@4: EContactDelete, williamr@4: /// See MVPbkStoreContact::LockL williamr@4: EContactLock, williamr@4: /// See MVPbkStoreContact::Commit williamr@4: EContactCommit, williamr@4: /// See MVPbkContactStore::SetOwnContacL williamr@4: EContactSetOwn williamr@4: }; williamr@4: williamr@4: /// Forward declaration for MVPbkContactObserver::TResult extension williamr@4: struct TResultExt; williamr@4: williamr@4: /** williamr@4: * Result object for Contact operation observers. williamr@4: */ williamr@4: struct TContactOpResult williamr@4: { williamr@4: ///Own: Operation code williamr@4: TContactOp iOpCode; williamr@4: williamr@4: /** williamr@4: * New Store Contact object. williamr@4: * Set if iOpCode is EContactRead or EContactReadAndLock. williamr@4: * If set client takes ownership of the object. williamr@4: */ williamr@4: MVPbkStoreContact* iStoreContact; williamr@4: williamr@4: ///Own: Reserved for Extension williamr@4: TResultExt* iExtension; williamr@4: }; williamr@4: williamr@4: public: // Interface williamr@4: /** williamr@4: * Called when a contact operation has succesfully completed. williamr@4: * williamr@4: * NOTE: If you use Cleanupstack for MVPbkStoreContact use williamr@4: * MVPbkStoreContact::PushL or CleanupDeletePushL from e32base.h. williamr@4: * (Do Not Use CleanupStack::PushL(TAny*) because then the virtual williamr@4: * destructor of the M-class won't be called when the object williamr@4: * is deleted). williamr@4: * williamr@4: * @param aResult The result of the operation. The client takes williamr@4: * the ownership of the iStoreContact immediately williamr@4: * if set in aResult. williamr@4: */ williamr@4: virtual void ContactOperationCompleted(TContactOpResult aResult) =0; williamr@4: williamr@4: /** williamr@4: * Called when a contact operation has failed. williamr@4: * williamr@4: * @param aOpCode The operation that failed. williamr@4: * @param aErrorCode System error code of the failure. williamr@4: * KErrAccessDenied when EContactCommit williamr@4: * means that contact hasn't been locked. williamr@4: * @param aErrorNotified ETrue if the implementation has already williamr@4: * notified user about the error, williamr@4: * EFalse otherwise. williamr@4: */ williamr@4: virtual void ContactOperationFailed williamr@4: (TContactOp aOpCode, TInt aErrorCode, TBool aErrorNotified) =0; williamr@4: williamr@4: /** williamr@4: * Returns an extension point for this interface or NULL. williamr@4: * @param aExtensionUid Uid of extension. williamr@4: * @return Extension point or NULL. williamr@4: */ williamr@4: virtual TAny* ContactObserverExtension( williamr@4: TUid /*aExtensionUid*/) { return NULL; } williamr@4: williamr@4: protected: // Destructor williamr@4: /** williamr@4: * Destructor. williamr@4: */ williamr@4: virtual ~MVPbkContactObserver() { } williamr@4: williamr@4: }; williamr@4: williamr@4: #endif // MVPBKCONTACTOBSERVER_H williamr@4: williamr@4: // End of File