diff -r 65a3ef1d5bd0 -r f742655b05bf voipplugins/sipconnectionprovider/inc/scpsubservice.h --- a/voipplugins/sipconnectionprovider/inc/scpsubservice.h Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,369 +0,0 @@ -/* -* Copyright (c) 2007-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: -* -*/ - - -#ifndef T_SCPSUBSERVICE_H -#define T_SCPSUBSERVICE_H - -#include -#include - -#include "scpdefs.h" -#include "scpsipconnectionobserver.h" - -class MCchServiceObserver; -class MScpSubServiceObserver; -class CScpServiceHandlerBase; -class TScpSubServiceState; -class CScpServiceStorage; -class CScpProfileHandler; -class CScpService; - -/** - * SCP sub service. - * @lib sipconnectionprovider.dll - */ -class CScpSubService : public CBase, - public MScpConnectionObserver - { -public: - - enum TEnableState - { - EScpNoRequest, - EScpEnabled, - EScpDisabled, - EScpRefreshed - }; - - static CScpSubService* NewL( TInt aId, - TInt aSubServiceId, - TCCHSubserviceType aSubServiceType, - CScpService& aService ); - - - /** - * Destructor - */ - ~CScpSubService(); - - /** - * Enables this sub service - */ - void EnableL(); - - /** - * Disables this sub service - * @return Symbian error codes - */ - TInt Disable(); - - /** - * Returns internal id of this subservice - * @return Internal id - */ - TInt Id() const; - - /** - * Returns service id of this subservice - * @return Sub service id - */ - TInt SubServiceId() const; - - /** - * Return state of the subservice - * @return State - */ - TCCHSubserviceState State() const; - - /** - * Returns sub service type of the subservice - * @return Sub service type - */ - TCCHSubserviceType SubServiceType() const; - - /** - * Returns service storage - * @return Service storage - */ - CScpServiceStorage& ServiceStorage() const; - - /** - * Returns profile handler - * @return Service storage - */ - CScpProfileHandler& ProfileHandler() const; - - /** - * Sets sip profile id for the subservice - * @param aSipProfileId Sip profile id - */ - void SetSipProfileId( TInt aSipProfileId ); - - /** - * Returns sip profile id of the subservice - * @return sip profile id - */ - TInt SipProfileId() const; - - /** - * Sets enable requested state - * @param aEnableRequestedState State - */ - void SetEnableRequestedState( TEnableState aEnableRequestedState ); - - /** - * Return info about if enable or disable is requested - * @return Enable requested state - */ - TEnableState EnableRequestedState() const; - - /** - * Raises the flag that sub service is succesfully disconnected - * its service (e.g. unsubscribed message received from network). - * When disconnected it's ok for this sub service to disable SIP - * profile - * @param aSubServiceDisconnected Sub service disconnected - */ - void SetSubServiceDisconnected( TBool aSubServiceDisconnected ); - - /** - * Return Sub service disconnceted flag - * @return Sub service disconnected - */ - TBool SubServiceDisconnected() const; - - /** - * Sets access point for the sub service - * @param aApId Access point - */ - void SetApId( TUint32 aApId ); - - /** - * Returns access point id of the subservice - * @return Access point id - */ - TUint32 ApId() const; - - /** - * Sets snap id or the subservice - * @param aSnapId Snap id - */ - void SetSnapId( TUint32 aSnapId ); - - /** - * Returns the iap type the subservice is using - * @return Iap type - */ - TScpIapType GetIapType() const; - - /** - * Returns snap id id of the subservice - * @return Snap id - */ - TUint32 SnapId() const; - - /** - * Returns service handler - */ - CScpServiceHandlerBase& ServiceHandler() const; - - /** - * Handle connection event. Based on event a corresponging - * method from current state is called. - * @param aEvent Connection event - */ - void HandleConnectionEvent( TScpConnectionEvent aEvent ); - - /** - * Returns last reported error from a state change - * @return Last error - */ - TInt LastReportedError() const; - - /** - * Last reported error setter - * @param aError error which to be set - */ - void SetLastReportedError( const TInt aError ); - - /** - * Sets the sub service as reserved - * @param aReserved Reserved - */ - void SetReserved( TBool aReserved ); - - /** - * Returns reserved info of the sub service - * @return ETrue if reserved - */ - TBool IsReserved() const; - - /** - * Returns roaming info of the sub service - * @return ETrue if roaming - */ - TBool IsRoaming() const; - - /** - * Set subservice observer - */ - void SetSubServiceObserver( MScpSubServiceObserver* aSubServiceObserver ); - - /** - * Enable counter getter. - */ - TInt EnableCounter(); - - /** - * Reset enable counter. - */ - void ResetEnableCounter(); - -private: - - /** - * Constructor - */ - CScpSubService( TInt aId, - TInt aSubServiceId, - TCCHSubserviceType aType, - CScpService& aService ); - - /** - * 2nd phase constructor - */ - void ConstructL(); - - /** - * TScpStates use this function to change the state - * of the subservice. - * @param aState New state - * @param aError CCH errors - */ - void ChangeState( TCCHSubserviceState aState, TInt aError ); - - /** - * Adds presencehandler to voip's subserviceobserver if - * presencesubservice exists. - */ - void SetPresenceToObserveVoIP(); - - /** - * Enable occured. - */ - void EnableOccured(); - -private: - - /** - * Internal id. - */ - TInt iId; - - /** - * Service id. - */ - TInt iSubServiceId; - - /** - * Subservice type. - */ - TCCHSubserviceType iSubServiceType; - - /** - * Service that contains this sub service - */ - CScpService& iService; - - /** - * Service handler. Owned. - */ - CScpServiceHandlerBase* iServiceHandler; - - /** - * Protocol profile id. - */ - TInt iSipProfileId; - - /** - * Enable requested state - */ - TEnableState iEnableRequestedState; - - /** - * Sub service disconnected - */ - TBool iSubServiceDisconnected; - - /** - * IAP id. - */ - TUint32 iApId; - - /** - * Snap id. - */ - TUint32 iSnapId; - - /** - * Last reported error - */ - TInt iLastReportedError; - - /** - * Reserved - */ - TBool iReserved; - - /** - * Indicates is roaming ongoing - */ - TBool iRoaming; - - /** - * Points to current sub service state. - */ - TScpSubServiceState* iSubServiceState; - - /** - * Sub service observer - */ - MScpSubServiceObserver* iSubServiceObserver; - - /** - * Counting enable requests, max count is sub service specific - */ - TInt iEnableCounter; - -private: - - // Needs access to call the private ChangeState - friend class TScpSubServiceState; - -#ifdef _DEBUG - friend class T_CScpService; - friend class T_CScpServiceStorage; - friend class T_CScpServiceManager; - friend class T_CScpVmbxHandler; - friend class T_CScpVoipHandler; - friend class T_CScpPresenceHandler; - friend class T_CScpImHandler; -#endif - }; - -#endif // T_SCPDEFS_H