--- /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 <e32base.h>
+
+//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
+
+