diff -r 2580314736af -r 2669f8761a99 presencefwsimpleadpt/inc/simplepluginauthorization.h --- a/presencefwsimpleadpt/inc/simplepluginauthorization.h Thu Aug 19 10:19:02 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,450 +0,0 @@ -/* -* 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: Simple Protocol implementation for Presence Framework -* -*/ - - - - -#ifndef CSIMPLEPLUGINAUTHORIZATION_H -#define CSIMPLEPLUGINAUTHORIZATION_H - -#include - -#include -#include - -#include "simpleplugincommon.h" -#include "msimplepluginconnectionobs.h" - -class TXIMPRequestId; -class MXIMPIdentity; -class MPresenceInfoFilter; -class MProtocolPresenceAuthorizationDataHost; - -class MSimpleWinfo; -class CPresenceXDM; -class CRLSXDM; -class CXdmEngine; -class CXdmDocument; - - -/** - * CSimplePluginAuthorization - * - * Simple Engine Connection - * - * @lib ?library - * @since s60 v5.0 - */ -NONSHARABLE_CLASS( CSimplePluginAuthorization ) : public CActive, - public MProtocolPresenceAuthorization - { -public: - - - /** - * Current operation - */ - enum TPluginAuthOperation - { - ENoOperation, - // XDM operations - EGrantPresenceForPresentity, - EGrantPresenceForPresentityGroupMembers, - EWithdrawFromPresentity, - EWithdrawFromGroupMembers, - EGrantForEveryone, - EWithdrawFromEveryone, - ESubscribeBlockList, - EUnsubscribeBlockList, - EBlockPresentity, - EUnblockPresentity, - // SIP and XDM operations - ESubscribePresenceGrantRequestList, - EUnsubscribePresenceGrantRequestList - }; - - /** - * Current default rule - */ - enum TPluginAuthDefRule - { - ERuleDef, - ERuleConfirm, - ERuleAllow - }; - - /** - * Constructor. - * @param aObs callback for complete requests - */ - static CSimplePluginAuthorization* NewL( - MSimplePluginConnectionObs& aObs ); - - virtual ~CSimplePluginAuthorization(); - - /** - * SetDataHost - * - * Set Data Host - * - * @lib ?library - * @since s60 v5.0 - */ - void SetDataHost( MProtocolPresenceAuthorizationDataHost& aDataHost ); - - /** - * WinfoTerminatedL - * - * SIMPLE Winfo watcher subscription is terminated - * @param aReason reason code - */ - void WinfoTerminatedL( TInt aReason ); - - /** - * WINFO received from SIMPLE - * @param aWinfo WINFO - */ - void WinfoNotificationL( MSimpleWinfo& aWinfo ); - - /** - * This is to ensure that WINFO watchers responses are detected. - * @param aPrFwId framework request id to be completed - * @param sStatus error code - */ - TBool HandleIfMine( TXIMPRequestId aPrFwId, TInt aStatus ); - - -private: - - CSimplePluginAuthorization( - MSimplePluginConnectionObs& aObs ); - - void ConstructL( ); - - -// from base class MXIMPBase -public: - - /** - * 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; - - -// from base class MProtocolPresenceAuthorization - - /** - * Defined in a base class - */ - void DoSubscribePresenceGrantRequestListL( - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoUnsubscribePresenceGrantRequestListL( - TXIMPRequestId aReqId ); - -// Granting presence information access to single presentities - - /** - * Defined in a base class - */ - void DoGrantPresenceForPresentityL( - const MXIMPIdentity& aPresentityId, - const MPresenceInfoFilter& aPif, - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoUpdatePresenceGrantPifForPresentityL( - const MXIMPIdentity& aPresentityId, - const MPresenceInfoFilter& aPif, - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoWithdrawPresenceGrantFromPresentityL( - const MXIMPIdentity& aPresentityId, - TXIMPRequestId aReqId ); - -// Granting presence information access to presentity group members - - /** - * Defined in a base class - */ - void DoGrantPresenceForPresentityGroupMembersL( - const MXIMPIdentity& aGroupId, - const MPresenceInfoFilter& aPif, - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoUpdatePresenceGrantPifForPresentityGroupMembersL( - const MXIMPIdentity& aGroupId, - const MPresenceInfoFilter& aPif, - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoWithdrawPresenceGrantFromPresentityGroupMembersL( - const MXIMPIdentity& aGroupId, - TXIMPRequestId aReqId ); - -// Granting presence information access to everyone - - /** - * Defined in a base class - */ - void DoGrantPresenceForEveryoneL( - const MPresenceInfoFilter& aPif, - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoUpdatePresenceGrantPifForEveryoneL( - const MPresenceInfoFilter& aPif, - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoWithdrawPresenceGrantFromEveryoneL( - TXIMPRequestId aReqId ); - -// Subscribe presence block list - - /** - * Defined in a base class - */ - void DoSubscribePresenceBlockListL( - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoUnsubscribePresenceBlockListL( - TXIMPRequestId aReqId ); - -// Blocking presence information access from single presentities - - /** - * Defined in a base class - */ - void DoBlockPresenceForPresentityL( - const MXIMPIdentity& aPresentityId, - TXIMPRequestId aReqId ); - - /** - * Defined in a base class - */ - void DoCancelPresenceBlockFromPresentityL( - const MXIMPIdentity& aPresentityId, - TXIMPRequestId aReqId ); - - - -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: - - /** - * Save presentity id - * @param aPresentityId presentity id - */ - void SetPresIdentityL( - const MXIMPIdentity& aPresentityId ); - - /** - * Calls MXIMPProtocolConnectionHost callback - * @param aStatus error status - */ - void CompletePrFwReq( TInt aStatus ); - - - /** - * Start XDM operation - */ - void StartXdmOperationL( - const MXIMPIdentity& aId, - TXIMPRequestId aReqId, - TPluginAuthOperation aOperation ); - - /** - * Start XDM operation. StartXdmOperationL calls this. - */ - void DoStartXdmOperationL( - const MXIMPIdentity& aId, - TXIMPRequestId aReqId, - TPluginAuthOperation aOperation ); - - /** - * Start XDM operation. HandleIfMine calls this. - */ - void DoStartXdmOperationL( - TXIMPRequestId aReqId, - TPluginAuthOperation aOperation ); - - /** - * Call CSimpleXdmUtils operation - */ - void CallActualXdmOperationL(); - - /** - * Copy data from aBlockers to aBlockedSouls - * @param aBlockers user ids - * @param aBlockedSouls user PrFwIdentities - * - */ - void CopyBlockersToArrayL( - CPtrCArray& aBlockers, RPointerArray& aBlockedSouls ); - - /** - * Handle full Winfo notification - * @param aWinfo WINFO - */ - void HandleFullWinfoNotificationL( MSimpleWinfo& aWinfo ); - - /** - * Handle partial Winfo notification - * @param aWinfo WINFO - */ - void HandlePartialWinfoNotificationL( MSimpleWinfo& aWinfo ); - - /** - * Call HandlePresenceGrantRequestReceivedL - * @param aUserId user id - */ - void CallHandlePresenceGrantRequestReceivedL( const TDesC& aUserId ); - - /** - * Call HandlePresenceGrantRequestObsoletedL( - * @param aUserId user id - */ - void CallHandlePresenceGrantRequestObsoletedL( const TDesC& aUserId ); - - /** - * Handle block list subscription routines - */ - void HandleSubscribeBlockListL(); - - -private: // Data - - /** - * PrFw Plugin connection observer - */ - MSimplePluginConnectionObs& iConnObs; - - /** - * PrFw Plugin Authorization Data Host - * Not own. - */ - MProtocolPresenceAuthorizationDataHost* iDataHost; - - /** - * XDM Settings id - */ - TInt iSettingsId; - - /** - * PrFW request id - */ - TXIMPRequestId iPrFwId; - - /** - * PrFW request id for own requests - */ - TXIMPRequestId iPrFwIdOwn; - - /** - * Simple Engine request id - */ - TInt iSimpleId; - - /** - * Current operation - */ - TPluginAuthOperation iOperation; - - /** - * Current presentity in progress - * Own. - */ - HBufC16* iPresIdentity; - - /** - * Whether XDM utility is initialized - */ - TBool iXdmOk; - - /** - * XDM Utils - * Not own. - */ - CSimplePluginXdmUtils* iXdmUtils; - - /** - * Current default rule - */ - TPluginAuthDefRule iDefRule; - - /** - * Active WINFO subscription - */ - TBool iWinfoSubs; - - - }; - -#endif // CSimplePluginAuthorization_H