diff -r 000000000000 -r 094583676ce7 wvuing/wvuiprocess/Inc/MCASearchInterfacePC.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuiprocess/Inc/MCASearchInterfacePC.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,252 @@ +/* +* 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: Interface for search operations +* +*/ + + +#ifndef MCASEARCHINTERFACEPC_H +#define MCASEARCHINTERFACEPC_H + + +// INCLUDES +#include "MCASearchObserverInterface.h" +#include "TEnumsPC.h" +#include "MCASearchInterface.h" + +#include + +// FORWARD DECLARATIONS +class MCASearchObserverInterfacePC; +class MCASearchBackgroundObserverPC; +class MCAServerContactsArrayPC; + + +// CLASS DECLARATION +/** + * Search services interface for UI and Engine. + * + * @lib wvuiprocessng.lib + * @since 3.2 + */ +class MCASearchInterfacePC: public MCASearchObserverInterface + + { + public: + + /** + * Destructor. + */ + virtual ~MCASearchInterfacePC() + { + + }; + public: + + /** + * To add the UI side observer for MCASearchObserverInterfacePC + * events from the engine. + */ + virtual void AddObserver( MCASearchObserverInterfacePC* aObserver ) = 0; + + /** + * To remove the UI side observer for MCASearchObserverInterfacePC + * events from the engine. + */ + virtual void RemoveObserver() = 0; + + /** + * Registers observer for background task + * @param aBackgaBackgroundObserver pointer of instance of UI component + * @param aTaskMask is an AND mask for task requested, + * @param aEventMask is an AND mask for events requested, + * @return KErrNone on success, system wide error code otherwise + */ + virtual TInt RegisterBackgroundObserver( + MCASearchBackgroundObserverPC* aBackgroundObserver, + TInt aTaskMask, + TInt aEventMask + ) = 0; + /** + * Removes the observer + * @param aBackgroundObserver pointer of instance to remove + */ + virtual void UnRegisterBackgroundObserver( + MCASearchBackgroundObserverPC* aBackgroundObserver + ) = 0; + + /** + * @param aTaskID is an id of a background task + * @retrun status of the background task or KErrNotFound + */ + virtual TInt BackgroundTaskStatus( TEnumsPC::TCABackgroundTasks aTaskID ) = 0; + + /** + * Builds the search pairs and sets the search requestSet values. + * This allocates memory and copies aValue to its internal data storage. + * @param aSearchCriteriaArray specifies list of search criterias (search keys) + * @param aSearchStringArray specifies array of strings to be searched(search values) + */ + + virtual void SetRequestL( RArray& aSearchCriteriaArray, + CDesCArray& aSearchStringArray ) = 0; + + /** + * @return ETrue if iSearchPairs is not null + */ + virtual TBool IsSearchPairsSet() = 0; + + /** + * @return SearchString - string to be searched + */ + virtual HBufC* GetSearchStringLC() = 0; + + /** + * Find any contact which id is aContactId + * @param aContactId Contactid to recognize contact. + * @return ETrue if contact found else EFalse + */ + virtual TBool FindAnyContactL( const TDesC& aContactId ) = 0; + + public: + + /** + * @see MCASearchObserverInterface::HandleError + */ + virtual void HandleSearchError( TInt aErrorCode ) = 0; + /** + * @see MCASearchObserverInterface::HandleSearchFinished + */ + virtual void HandleSearchFinished( ) = 0; + + + public: + + /** + * Start the search. + * @param aSearchLimit defines how many results you want. + * @param aObserver The observer for this search operation + * @param aSearchPairs Pairs to be searched + * @return Error code. + * Leaves + * ESearchNotSupported + */ + virtual TInt StartSearchL( TInt aSearchLimit, + MCASearchObserverInterfacePC* aObserver, + CSearchPairs* aSearchPairs = NULL ) = 0; + + /** + * Stops the current search. Must be called before starting new search. + * @return Error code. + * Leaves + * ESearchNotSupported + */ + virtual TInt EndSearchL() = 0; + + /** + * Continues search. This function must only be called when more results + * are wanted. + * @param aIndex specifies the next index where to start search. + * @param aObserver The observer for this search operation + * @return Error code. + * Leaves + * ERequestedResultsButNotAvailable + * ESearchNotSupported + */ + virtual TInt SearchNextL( TInt aIndex, + MCASearchObserverInterfacePC* aObserver ) = 0; + + /** + * Gets the properties of group + * @param The group id + * @param aCommonProps Common group properties + * @param aPrivateProps Private group properties + * @return CSP error code + */ + virtual TEnumsPC::TImpsCSPAllErrors GetPropertiesL( const TDesC& aGroupId, + CImpsCommonGroupProps*& aCommonProps, + CImpsPrivateGroupProps*& aPrivateProps + ) = 0; + + /** + * To set the groupname of the group whose id is aGroupId + * @param aGroupId: id of the group whose name has to be set + * @param aGroupName: name of the group to be set + */ + + virtual void SetGroupNameL( const TDesC& aGroupId, const TDesC& aGroupName ) = 0; + + /** + * To create a group with group id aGroupId + * @param aGroupId: id of the group to be created + */ + virtual void CreateGroupL( const TDesC& aGroupId ) = 0; + + /** + * To save the changes made to a groups properties and make it persistent. Once this is done + * the isFavorite property of the group will always return true. + * @param aGroupId: id of the group which has to be saved + */ + virtual void SaveChangesL( const TDesC& aGroupId ) = 0; + + /** + * To populate the two arrays of group names and goup ids + * @param aGroupNames: array of the current group names + * @param aGroupIds: array of the current group IDs + */ + virtual MCAServerContactsArrayPC* GetPairArrayForServerContactsArrayLC() = 0; + + /** + * To set the groupname of the group whose id is aGroupId + * @param aGroupId: id of the group which has to be searched for + * @param bool : returns true if the group with aGroupId is found else returns false + */ + virtual TBool FindGroup( const TDesC& aGroupId ) = 0; + + + /** + * Delete the given group + * @param aGroupId The group id of the group to delete + * @param aDeleteFromNetwork Defines whether the group should + * be deleted also from network server or not + * @return The errorcode + */ + virtual TInt DeleteGroupL( const TDesC& aGroupId, TBool aDeleteFromNetwork ) = 0; + + + /** + * To get the groupname of the group whose id is aGroupId + * @param aGroupId: of the group whose name has to be set + * @param aHasCommonProps: Returned by reference. True if the group has common group properties + * else return false + * @param aImpsError: return by reference. Return the error code if any. + */ + virtual TPtrC GetGroupNameL( const TDesC& aWvid, TBool& aHasCommonProps, + TEnumsPC::TImpsCSPAllErrors& aImpsError ) = 0; + /* + * Get the storage type of this group and check if it is a persistent grp. + * If the group is marked as favourite, then it will be persistent + * @return ETrue if favourite else EFalse + */ + virtual TBool IsFavouriteChatGroup( const TDesC& aGroupId ) const = 0; + + /* + * Get the total no. of groups the user has joined too'. + */ + virtual TInt JoinedGroups() = 0; + }; + +#endif // MCASEARCHINTERFACEPC_H + +// End of File