diff -r 000000000000 -r 094583676ce7 wvuing/wvuiada/Src/CCAImpsFundClient.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuiada/Src/CCAImpsFundClient.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,278 @@ +/* +* Copyright (c) 2002 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: Implements fundamental services interface. +* +*/ + + + +#ifndef CCAIMPSFUNDCLIENT_H +#define CCAIMPSFUNDCLIENT_H + +// INCLUDES +#include "MCAImpsFundClient.h" + +// FORWARD DECLARATIONS +class RImpsEng; + +// CLASS DECLARATION + +/** +* Implements MCAImpsFundClient. +* Forwards requests to RImpsFundClient +* +* @lib CAAdapter.dll +* @since 1.2 +*/ +class CCAImpsFundClient : public CBase, public MCAImpsFundClient + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param Reference to RImpsEng + */ + static CCAImpsFundClient* NewL( RImpsEng& aImpsEng ); + + /** + * Destructor. + */ + virtual ~CCAImpsFundClient(); + + public: // Functions from base classes + + // INITILIZATION AND CONNECT + + /** + * Registers the listener objects for Fundamental events and connects to + * the Symbian OS Server. + * @since 1.2 + * @param aSearchObs search result observer. May be NULL. Ownership NOT transferred. + * @param aInviteObs invite observer. May be NULL. Ownership NOT transferred. + * @param aPriority Observer priority. Refer to CActive priority. + */ + virtual void RegisterL( MImpsSearchHandler2* aSearchObs, + MImpsInviteHandler2* aInviteObs, + TInt aPriority ); + + /** + * Unregisters the listener object and disconnects from the server. + * @since 1.2 + */ + virtual void Unregister(); + + // Fundamental SERVICES + + /** + * Start search + * @since 1.2 + * @param aPairs defines what is to be searched + * @param aSearchLimit how many results you want + * @return oparation-id (positive) + */ + TInt SearchFirstL( const CSearchPairs& aPairs, + TInt aSearchLimit ); + + /** + * Continue search + * @since 1.2 + * @param aSearchID which search is to be continued + * @param aIndex from which index the search is continued + * @return oparation-id (positive) + */ + TInt SearchNextL( TInt aSearchID, TInt aIndex ); + + + /** + * Stop search + * @since 1.2 + * @param aSearchID which search is to be continued + * @return oparation-id (positive) + */ + TInt StopSearchL( TInt aSearchID ); + + /** + * Send group invite request + * InviteGroupRequest + * @since 1.2 + * @param aInviteId Generated invite id + * @param aUserId IDs of the users to be invited + * @param aScreenName Screen names () of the users to be invited + * @param aGroupName The group () in which the screen name is unique + * @param aInviteGroup ID of the group to which the users are invited to join + * @param aOwnScreenName Screen name of the inviter + * @param aOwnGroupName Group name of the inviter + * @param aInviteReason A short text describing the reason of the invite + * @param aValidityPeriod How long the invitation is valid + * @return oparation-id (positive) + */ + TInt InviteGroupRequestL( const TDesC& aInviteId, + const MDesCArray* aUserId, + const MDesCArray* aScreenName, + const MDesCArray* aGroupName, + const TDesC& aInviteGroup, + const TDesC& aOwnScreenName, + const TDesC& aOwnGroupName, + const TDesC& aInviteReason, + const TInt aValidityPeriod ); + + /** + * Cancel a group invite request + * CancelGroupInviteRequest + * @since 1.2 + * @param aInviteId Invite to be cancelled + * @param aUserId IDs of the users + * @param aScreenName ID of the group () in which the screen name is unique + * @param aGroupName Name of the group + * @param aCancelReason A short text describing the reason for the cancelling. + * @param aOwnScreenName Screen name of the canceller + * @param aOwnGroupName Group name of the canceller. + * @return oparation-id (positive) + */ + TInt CancelGroupInviteRequestL( const TDesC& aInviteId, + const MDesCArray* aUserId, + const MDesCArray* aScreenName, + const MDesCArray* aGroupName, + const TDesC& aCancelReason, + const TDesC& aOwnScreenName, + const TDesC& aOwnGroupName ); + + /** + * Send response to invite + * InviteUserResponse + * @since 1.2 + * @param aInviteId = ID of the invite response + * @param aAcceptance = Do we meet the claim? + * @param aInviteResponse = Textual description of the response + * @param aOwnScreenName = Screen name of the responding user + * @param aOwnGroupName = Group name of the responding user + * @return oparation-id (positive) + */ + TInt GroupInviteUserResponseL( const TDesC& aInviteId, + TBool aAcceptance, + const TDesC& aInviteResponse, + const TDesC& aOwnScreenName, + const TDesC& aOwnGroupName ); + + /** + * Available services accessor + * Notice that there are no services in NOT_LOGGED state, i.e. + * before login has been executed successfully from any client. + * @param aServices Service tree having all supported features and functions. + * @since 1.2 + */ + virtual void GetServicesL( TImpsServices& aServices ); + + /** + * Register an error event observer. + * If this is not registered then a client does not + * receive error events from WV engine. + * An application may implement only one HandleErrorL method + * and give pointer to it in each WV client instance. + * @since 1.2 + * @param aObs error event observer + */ + virtual void RegisterErrorObserverL( MImpsErrorHandler2 &aObs ); + + /** + * Registers the service status change observer. + * This can be called any time + * @since 1.2 + * @param aObs status observer implementation. Ownership NOT transferred. + */ + virtual void RegisterStatusObserverL( MImpsStatusHandler2 *aObs ); + + /** + * Unregisters an error observer. + * Forwards the call to WV Engine always + * This method is not necessary if unregister of the particular + * client has been executed (Unregister). + * @since 1.2 + */ + virtual void UnregisterErrorObserverL(); + + /** + * Unregisters the service status change observer. + * Forwards the call to WV Engine always + * This method is not necessary if unregister of the particular + * client type has been executed (Unregister). + * @since 1.2 + */ + virtual void UnregisterStatusObserverL(); + + /** + * Internal use only. + * Error observer accessor + * @since 1.2 + * @return error observer pointer. Ownership NOT transferred. + */ + virtual MImpsErrorHandler2* ErrorHandler() const; + + /** + * Internal use only. + * Status observer accessor. This is missing from WV Engine. Introduced for consistency. + * @since 1.2 + * @return Status observer pointer. Ownership NOT transferred. + */ + virtual MImpsStatusHandler2* StatusHandler() const; + + /** + * Returns actual WV Engine interface class pointer which is registered. + * @since 1.2 + * @return RImpsFundClient pointer which is registered and can be used. + * Ownership NOT transferred. + */ + RImpsFundClient2* InterfaceL(); + + private: // New functions + + /** + * C++ default constructor. + * @param Reference to RImpsEng + */ + CCAImpsFundClient( RImpsEng& aImpsEng ); + + private: // Data + + // WV Engine fundamental interface. + RImpsFundClient2 iClient; + + // Indicator if we are doing lazy initialization with WV Engine. + TBool iLazyInitialization; + + // Indicator if we have registered WV Engine interface. + TBool iRegistered; + + // Store priority if we are doing lazy initialization. + TInt iPriority; + + // Search observer, stored in lazy initialization. Doens't own. + MImpsSearchHandler2* iSearchHandler; + + // Invite observer, stored in lazy initialization. Doens't own. + MImpsInviteHandler2* iInviteHandler; + + // Status observer, stored in lazy initialization. Doens't own. + MImpsStatusHandler2* iStatusHandler; + + // Error observer, stored in lazy initialization. Doens't own. + MImpsErrorHandler2* iErrorHandler; + + // Refernce to IMPS engine server session instance. + RImpsEng& iImpsEng; + }; + +#endif // MCAIMPSFUNDCLIENT_H + +// End of File