diff -r 77cb48a03620 -r d9861ae9169c simpledatamodeladapter/inc/presencepluginwatcher.h --- a/simpledatamodeladapter/inc/presencepluginwatcher.h Thu Jul 01 14:09:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,408 +0,0 @@ -/* -* Copyright (c) 2006-2009 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: IETF SIMPLE Protocol implementation for XIMP Framework -* -*/ - - -#ifndef CPRESENCEPLUGINWATCHER_H -#define CPRESENCEPLUGINWATCHER_H - -#include -#include -#include -#include - -#include "mpresencepluginconnectionobs.h" -#include "presencelogger.h" - -class TXIMPRequestId; -class MXIMPIdentity; -class MXIMPProtocolConnectionHost; -class MSimpleConnection; -class CPresencePluginEntityWatcher; -class CPresencePluginData; - -/** - * CPresencePluginWatcher - * - * Simple Engine Connection - * - * @lib presenceplugin.dll - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CPresencePluginWatcher ): public CActive, - public MProtocolPresenceWatching - { - public: - - /** - * Current operation - */ - enum TPluginWatcherOperation - { - EPluginUndef, - EPluginSubscribeGroup, - EPluginUnsubscribeGroup, - EPluginSubscribeSingle, - EPluginSubscribeByAdding, - EPluginUnSubscribeByRemoving - }; - - /** - * Current actibe object state - */ - enum TPluginXdmState - { - EPluginIdle, - EPluginInitXdm, - EPluginFetchRls, - EPluginAddGroupMember, - EPluginRemoveGroupMember - }; - - /** - * Constructor. - * @param aObs callback for complete requests - * @param aConn Simple Engine connection - */ - static CPresencePluginWatcher* NewL( - MPresencePluginConnectionObs& aObs, - MSimpleConnection& aConn, - CPresencePluginData* aPresenceData ); - - /** - * Standard C++ destructor - */ - virtual ~CPresencePluginWatcher(); - - /** - * SIP Watcher is complets it's task. - * @param aStatus error status - * @return none - */ - void CompleteWatcher( TInt aStatus ); - - /** - * Delete a single entity watcher - * @param aPresentityid presentity id - * @return none - */ - void DeleteWatcher( - const TDesC8& aPresentityid ); - - /** - * SubscribeL() - * - * @since S60 5.1 - * @param aIdentity presentity id to subscribe - * @return none - */ - void SubscribeL( const TDesC& aIdentity ); - - /** - * SubscribeAllL() - * - * @since S60 3.2 - * @param none - * @return none - */ - void SubscribeAllL(); - - /** - * UnSubscribeAllL() - * - * @since S60 3.2 - * @param none - * @return none - */ - void UnSubscribeAllL(); - - /** - * Subscribes presentity presence. - * - * @since S60 5.0 - * @param aPresentityId, presentity id - * @param aStatus, client status to complete - * @return none - */ - void DoPerformSubscribePresentityPresenceL( - const MXIMPIdentity& aPresentityId, - TRequestStatus& aStatus ); - - /** - * Unsubscribes presentity presence. - * - * @since S60 5.0 - * @param aPresentityId, presentity id - * @param aStatus, client status to complete - * @return none - */ - void DoPerformUnsubscribePresentityPresenceL( - const MXIMPIdentity& aPresentityId, - TRequestStatus& aStatus ); - - /** - * Accept watcher to watcher list - * - * @since S60 5.1 - * @param aWatcher, watcher - * @return none - */ - void AcceptL( const CPresencePluginEntityWatcher* aWatcher ); - - private: - - /** - * Standard C++ constructor - * @param aObs, Presence plugin connection - * @param aConn, SIMPLE connection - */ - CPresencePluginWatcher( - MPresencePluginConnectionObs& aObs, - MSimpleConnection& aConn, - CPresencePluginData* aPresenceData ); - - public: // from base class MXIMPBase - - /** - * Defined in a base class - */ - TAny* GetInterface( - TInt32 aInterfaceId, - TIfGetOps aOps ); - - /** - * Defined in a base class - */ - const TAny* GetInterface( - TInt32 aInterfaceId, - TIfGetOps aOps ) const; - - /** - * Defined in a base class - */ - TInt32 GetInterfaceId() const; - - public: // from base class MXIMPProtocolPresenceWatching - - /** - * Defined in a base class - */ - void DoSubscribePresentityPresenceL( - const MXIMPIdentity& aPresentityId, - const MPresenceInfoFilter& aPif, - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoUpdatePresentityPresenceSubscriptionPifL( - const MXIMPIdentity& aPresentityId, - const MPresenceInfoFilter& aPif, - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoUnsubscribePresentityPresenceL( - const MXIMPIdentity& aPresentityId, - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoSubscribePresentityGroupMembersPresenceL( - const MXIMPIdentity& aGroupId, - const MPresenceInfoFilter& aPif, - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoUpdatePresentityGroupMembersPresenceSubscriptionPifL( - const MXIMPIdentity& aGroupId, - const MPresenceInfoFilter& aPif, - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoUnsubscribePresentityGroupMembersPresenceL( - const MXIMPIdentity& aGroupId, - TXIMPRequestId aReqId ); - - public: - - /** - * Save presentity id - * - * @since S60 3.2 - * @param aPresentityId presentity id - * @param aFormatUri, attempt to format uri - * @return none - */ - void SetPresIdentityL( - const MXIMPIdentity& aPresentityId, - TBool aFormatUri ); - - /** - * Calls MXIMPProtocolConnectionHost callback - * - * @since S60 3.2 - * @param aStatus error status - * @return none - */ - void CompleteXIMPReq( TInt aStatus ); - - /** - * Set XIMP request id - * - * @since S60 3.2 - * @param aId, request id - * @return none - */ - void SetXIMPId( TXIMPRequestId aId ); - - /** - * Check if ID matches with existing watcher - * - * @since S60 5.1 - * @param aPresentityId presentity ID - * @return ETrue if matching watcher found - */ - TBool MatchWatcherId( const TDesC8& aPresentityId ) const; - - protected: // from base class CActive - - /** - * Defined in a base class - */ - void RunL(); - - /** - * Defined in a base class - */ - TInt RunError( TInt aError ); - - /** - * Defined in a base class - */ - void DoCancel(); - - private: - - /** - * Match existing watcher - * - * @since S60 3.2 - * @param aPresentityId presentity id - * @return watcher or NULL when not found - */ - CPresencePluginEntityWatcher* MatchWatcherL( - const TDesC8& aPresentityId, TBool aCreate ); - - /** - * StartXdmOperationL - * - * @since S60 3.2 - * @param none - * @return none - */ - void StartXdmOperationL(); - - private: // Data - - /** - * XIMP Plugin connection observer - * Own. - */ - MPresencePluginConnectionObs& iConnObs; - - /** - * XIMP Host. - * Not Own. - */ - MXIMPProtocolConnectionHost* iHost; - - /** - * SIMPLE engine connection - * Not Own. - */ - MSimpleConnection& iConnection; - - /** - * SIMPLE engine watchers - * Own. - */ - RPointerArray iWatchers; - - /** - * Watcher candidates - * Own. - */ - RPointerArray iWatcherCandidates; - - /** - * Current PrFW request id - * Own. - */ - TXIMPRequestId iXIMPId; - - /** - * Simple Engine request id - * Own. - */ - TInt iSimpleId; - - /** - * XDM Utils - * Not own. - */ - CPresencePluginXdmUtils* iXdmUtils; - - /** - * Current presentity in progress - * Own. - */ - HBufC16* iPresIdentity; - - /** - * Presence data - * Own - */ - CPresencePluginData* iPresenceData; - - /** - * XDM state - */ - TPluginXdmState iXdmState; - - /** - * Whether the request is completed - * Own. - */ - TBool iCompleted; - - /** - * Current operation - * Own. - */ - TPluginWatcherOperation iOperation; - - SIMPLE_UNIT_TEST( T_CPresencePluginWatcher ) - SIMPLE_UNIT_TEST( T_CPresencePluginXdmUtils ) - }; - -#endif // CPRESENCEPLUGINWATCHER_H