diff -r 3104fc151679 -r 9a48e301e94b uiservicetab/vimpstengine/inc/cvimpstenginevoipsubservice.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiservicetab/vimpstengine/inc/cvimpstenginevoipsubservice.h Wed Sep 01 12:33:36 2010 +0100 @@ -0,0 +1,180 @@ +/* +* Copyright (c) 2008 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: Class that capsulates the API's for a VOIP SubService +* +*/ + +#ifndef __CVIMPSTENGINEVOIPSUBSERVICE_H +#define __CVIMPSTENGINEVOIPSUBSERVICE_H + +// INCLUDES +#include + +//base +#include "mvimpstenginesubservice.h" +#include "mvimpstenginecchhandlerobserver.h" + +//FORWARD DELARATION +class CVIMPSTEngineCchHandler; +class CVIMPSTEngineServiceTableFetcher; +class MVIMPSTEngineServiceConnectionEventObserver; + +// CLASS DECLARATION + +/** + * class handling voip subservice. + * @lib vimpstengine.lib + * @since S60 5.0 + */ +NONSHARABLE_CLASS( CVIMPSTEngineVOIPSubService) : + public CBase, + public MVIMPSTEngineSubService, + public MVIMPSTEngineCchHandlerObserver + + { + // for testcases. + friend class T_VimpstEngineVoipSubService; + + public: // Two-phased constructors and destructor + + /** + * NewLC two phase constructor. + * @param aServiceId - Service Id + * @param aCchHandler - reference to cchhandler + * @param aTableFetcher - Handler to SPSettings + * @param aServiceStateListener - Handler to the ServiceStateListener + * return @ptr to CVIMPSTVoipSUbService + */ + static CVIMPSTEngineVOIPSubService* NewLC(TUint32 aServiceId, + CVIMPSTEngineCchHandler& aCchHandler, + CVIMPSTEngineServiceTableFetcher& aTableFetcher, + MVIMPSTEngineServiceConnectionEventObserver& aObserver); + + + + /** + * NewL two phase constructor. + * @param aServiceId - Service Id + * @param aCchHandler - reference to cchhandler + * @param aTableFetcher - Handler to SPSettings + * @param aServiceStateListener - Handler to the ServiceStateListener + * return @ptr to CVIMPSTVoipSUbService + */ + static CVIMPSTEngineVOIPSubService* NewL(TUint32 aServiceId, + CVIMPSTEngineCchHandler& aCchHandler, + CVIMPSTEngineServiceTableFetcher& aTableFetcher, + MVIMPSTEngineServiceConnectionEventObserver& aObserver); + + /** + * C++ destructor + */ + virtual ~CVIMPSTEngineVOIPSubService(); + + public: //From MVIMPSTEngineSubService + + /** + * @see MVIMPSTEngineSubService + */ + TVIMPSTEnums::TVIMPSTRegistrationState SubServiceState() const; + + + /** + * @see MVIMPSTEngineSubService + */ + TVIMPSTEnums::SubServiceType Type() const; + + + private: // From MVIMPSTEngineCchHandlerObserver + + /** + * From MVIMPSTEngineCchHandlerObserver + * Observer callback for CCH event + * + * @param aServiceId, service id + * @param aState, service state + * @param aServiceError, error + * @since S60 5.0 + */ + void CchEventOccuredL( + TUint aServiceId, + TCCHSubserviceState aState, + TInt aServiceError ); + + + private: + + /** + * Symbian second pahse constructor + * dont call delete call close + */ + void ConstructL(); + + /** + * C++ default constructor. + * @param aServiceId - Service Id + * @param aCchHandler - reference to cchhandler + * @param aTableFetcher - Handler to SPSettings + * @param aServiceStateListener - Handler to the ServiceStateListener + */ + CVIMPSTEngineVOIPSubService( TUint32 aServiceId, + CVIMPSTEngineCchHandler& aCchHandler, + CVIMPSTEngineServiceTableFetcher& aTableFetcher, + MVIMPSTEngineServiceConnectionEventObserver& aObserver ); + + private: + + /** + * Handler for the CCH Errors + * @param aServiceError + */ + void DoHandleCchErrorL( TInt aServiceError ) ; + + + /** + * Resolves the CCH service state to Service Tab understandable state + * @param aServiceId - Service Id + * @param aCchErr - returns the last CCH Error + * @return TVIMPSTRegistrationState the Registration State + */ + TVIMPSTEnums::TVIMPSTRegistrationState ResolveServiceState( + TCCHSubserviceState aState, + TInt aServiceError) ; + + private : + + //Service Id + TUint32 iServiceId; + + //Doesnt Own - Handler for CCH Activities + CVIMPSTEngineCchHandler& iCchHandler; + + //doesnt own - Handler to SPSettings Table + CVIMPSTEngineServiceTableFetcher& iTableFetcher; + + // Stores voip sub services current state + TVIMPSTEnums::TVIMPSTRegistrationState iServiceState; + + //SubService Type + TVIMPSTEnums::SubServiceType iType; + + //Doesnt Own - Handler to the Service State Listener + MVIMPSTEngineServiceConnectionEventObserver& iObserver; + + }; + +#endif //__CVIMPSTENGINEVOIPSUBSERVICE_H + +// End of File + +