diff -r 000000000000 -r 094583676ce7 wvuing/wvuiprocess/Inc/CCABlockingPC.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuiprocess/Inc/CCABlockingPC.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,226 @@ +/* +* Copyright (c) 2006 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: Process Component for Blocking and Unblocking +* +*/ + + +#ifndef CCABLOCKINGPC_H +#define CCABLOCKINGPC_H + +// INCLUDES +#include "MCABackgroundObserver.h" +#include "MCABlockingPC.h" + +//FORWARD DECLARATION +class MCABackgroundInterface; +class CCAEngine; +class MCABlocking; +class MCABlockingBackgroundObserverPC; +class MCAServerContactsArrayPC; +class CCAServerContactsArrayPC; + +// CLASS DECLARATION +/** + * This class provides blocking functions to UI side + * + * @lib chat.app + * @since 3.2 + */ +class CCABlockingPC : public CBase, + public MCABackgroundObserver, + public MCABlockingPC + + { + + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aBlockingInterface Reference to blocking interface + * @param aBackgroundInterface Reference to aBackgroundInterface + * @return Instance of the class + */ + static CCABlockingPC* NewL( CCAEngine& aEngine ); + + /** + * Second phased symbian constructor. + */ + void ConstructL(); + + /** + * Destructor + */ + virtual ~CCABlockingPC(); + + public: + /** + * Gets the backgroundstatus + *@return the TCABackgroundStatus + */ + TInt GetBackgroundStatus(); + + /** + * Gets the blockedlist from server + *@return the + */ + TInt GetBlockedListFromServerL(); + + /** + * Gets the retrieved blocked list + *@return the blocked array + */ + const CDesCArray* GetBlockedList(); + + /** + * Remove user from blocked or granted list. + * @param aBlockList blocked to be removed entity's list. + * @return error code. + */ + TInt RemoveL( const CDesCArray* aUnBlockList, + const CDesCArray* aGrantList = NULL ); + + /** + * Insert users to be blocked or granted. + * @param aBlockList blocked entity's list. + * @param aGrantList granted entity's list. + * @return error code. + */ + + TInt InsertL( const CDesCArray* aUnBlockList, + const CDesCArray* aGrantList ); + + + /** + * Is this contact in our block list or not? + * @param aContact specifies the contact. + * @return ETrue if yes EFalse if not. + */ + TBool IsContactBlocked( const TDesC& aContact, + TBool aUseGrant = EFalse ) const ; + + /** + * Set temporary grant on/off. If contact is blocked, unblock is permanent. + * @since 3.2 + * @param aContact specifies the contact + * @param aOn On/off. ETrue = on + * @return errorCode if unsuccessfull + */ + TInt SetTemporaryGrantL( const TDesC& aContact, TBool aOn ) ; + + /** + * See MCABackgroundObserver + */ + void HandleBackgroundEvent( + MCABackgroundInterface::TCABackgroundTasks aEventSource, + MCABackgroundInterface::TCABackgroundStatus aStatus, + TInt aSubTaskNumber, + TInt aLeaveCode + ); + + + + /** + *Gets the list of blockedmembers + */ + void GetBlockedMembersL( const TDesC& aIcon ); + + /** + * Gets the reference of ServerContactsArray + */ + MCAServerContactsArrayPC& GetServerContactsArray(); + + + /** + * Gets blocked members from Blocking interface and fetch nicknames also + * for contact ID's from Storage. + * @param aIcon Icon to be inserted in front of + * each list item (e.g "1\t") + * @return contacts array with wvid's and nicknames + */ + MCAServerContactsArrayPC* GetBlockedMembersLC( const TDesC& aIcon ); + + + /** + * Gets the list to be unblocked + * @Param aSelectedItem - selected index + * @param aFindTxt - Find Pane Text + */ + CDesCArrayFlat* GetUnBlockListL( TInt aSelectedItem, + const TDesC& aFindTxt ); + + + /** + * GetWvId:gets the WvId of a given index + */ + TPtrC GetWvIdL( const TDesC& aIcon, TInt aDeletedIndex ); + + /** + * DeleteContactL: Deletes a contact + * @Param aWvId: WVID of the contact to be deleted + * @Param aFindTxt : Find Pane Text + */ + TInt DeleteContactL( TInt aSelectedItem, const TDesC& aFindTxt ); + + /** + * RemoveIDsL: removes the list of userids to be unblocked + * @Param aUserIds: list of userids + */ + void RemoveIDsL( const CDesCArray* aUserIds ); + + public://From MCABackgroundObserverPC + + /** + * Registers the UI observer for backgorund tasks. + * @param aBackgroundObserver: observer to be registered + */ + void RegisterBackgroundObserver( MCABlockingBackgroundObserverPC* + aBackgroundObserver ); + /** + * UnRegisters the UI observer for backgorund tasks. + * + */ + void UnRegisterBackgroundObserver( ); + + + private: + + /** + * Default Constructor + * @param aEngine - reference to chat engine + */ + CCABlockingPC( CCAEngine& aEngine ); + + + + private://Data members + + CCAEngine& iEngine; + + //Pointer to blocking interface not owned so don't delete + MCABlocking& iBlockingInterface; + + //Pointer to BackgroundInterface not owned so don't delete + MCABackgroundInterface& iBackgroundInterface; + + //Owns. Pointer to CCAServerContactsarrayPC + MCAServerContactsArrayPC* iBlockingArray; + + //Backgorund observer for ui to be notified of for + //any background activites received from engine + MCABlockingBackgroundObserverPC* iBackgroundObserver; + + + }; +#endif //end of CCABlockingPC \ No newline at end of file