uiservicetab/vimpstengine/inc/cvimpstenginevoipsubservice.h
changeset 0 5e5d6b214f4f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetab/vimpstengine/inc/cvimpstenginevoipsubservice.h	Tue Feb 02 10:12:18 2010 +0200
@@ -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
+
+