uiservicetab/vimpstengine/inc/cvimpstenginevoipsubservice.h
changeset 0 5e5d6b214f4f
equal deleted inserted replaced
-1:000000000000 0:5e5d6b214f4f
       
     1 /*
       
     2 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Class that capsulates the API's for a VOIP SubService
       
    15 *
       
    16 */
       
    17 
       
    18 #ifndef __CVIMPSTENGINEVOIPSUBSERVICE_H
       
    19 #define __CVIMPSTENGINEVOIPSUBSERVICE_H
       
    20 
       
    21 //  INCLUDES
       
    22 #include <e32base.h>
       
    23 
       
    24 //base
       
    25 #include "mvimpstenginesubservice.h"
       
    26 #include "mvimpstenginecchhandlerobserver.h"
       
    27 
       
    28 //FORWARD DELARATION
       
    29 class CVIMPSTEngineCchHandler;
       
    30 class CVIMPSTEngineServiceTableFetcher;
       
    31 class MVIMPSTEngineServiceConnectionEventObserver;
       
    32 
       
    33 // CLASS DECLARATION
       
    34 
       
    35 /**
       
    36  * class handling voip subservice.
       
    37  * @lib vimpstengine.lib
       
    38  * @since S60 5.0 
       
    39  */
       
    40 NONSHARABLE_CLASS( CVIMPSTEngineVOIPSubService) : 
       
    41 						public CBase, 
       
    42 						public MVIMPSTEngineSubService,
       
    43                         public MVIMPSTEngineCchHandlerObserver
       
    44 
       
    45 	{
       
    46 	// for testcases.
       
    47     friend class T_VimpstEngineVoipSubService;
       
    48 
       
    49 	public:  // Two-phased constructors and destructor
       
    50 
       
    51 		/**
       
    52 		* NewLC two phase constructor.
       
    53 		* @param aServiceId - Service Id
       
    54 		* @param aCchHandler - reference to cchhandler
       
    55 		* @param aTableFetcher - Handler to SPSettings
       
    56 		* @param aServiceStateListener - Handler to the ServiceStateListener		 
       
    57 		* return @ptr to CVIMPSTVoipSUbService
       
    58 		*/
       
    59 		static CVIMPSTEngineVOIPSubService* NewLC(TUint32 aServiceId,
       
    60 							CVIMPSTEngineCchHandler& aCchHandler,
       
    61 							CVIMPSTEngineServiceTableFetcher& aTableFetcher,
       
    62 							MVIMPSTEngineServiceConnectionEventObserver& aObserver);
       
    63 					
       
    64 
       
    65 
       
    66 		/**
       
    67 		* NewL two phase constructor.
       
    68 		* @param aServiceId - Service Id
       
    69 		* @param aCchHandler - reference to cchhandler
       
    70 		* @param aTableFetcher - Handler to SPSettings
       
    71 		* @param aServiceStateListener - Handler to the ServiceStateListener		 
       
    72 		* return @ptr to CVIMPSTVoipSUbService
       
    73 		*/
       
    74 		static CVIMPSTEngineVOIPSubService* NewL(TUint32 aServiceId,
       
    75 							CVIMPSTEngineCchHandler& aCchHandler,
       
    76 							CVIMPSTEngineServiceTableFetcher& aTableFetcher,
       
    77 							MVIMPSTEngineServiceConnectionEventObserver& aObserver);
       
    78 					
       
    79 		/**
       
    80 		* C++  destructor
       
    81 		*/
       
    82 		virtual ~CVIMPSTEngineVOIPSubService();
       
    83 
       
    84 	public: //From MVIMPSTEngineSubService
       
    85        
       
    86 	  	/**
       
    87 		* @see MVIMPSTEngineSubService
       
    88 		*/
       
    89 		TVIMPSTEnums::TVIMPSTRegistrationState SubServiceState() const;
       
    90 		
       
    91 		
       
    92 		/**
       
    93 		* @see MVIMPSTEngineSubService
       
    94 		*/
       
    95 		TVIMPSTEnums::SubServiceType Type() const;
       
    96 		
       
    97 		
       
    98     private: // From MVIMPSTEngineCchHandlerObserver
       
    99         
       
   100         /**
       
   101          * From MVIMPSTEngineCchHandlerObserver 
       
   102          * Observer callback for CCH event
       
   103          *
       
   104          * @param aServiceId, service id
       
   105          * @param aState, service state
       
   106          * @param aServiceError, error
       
   107          * @since S60 5.0
       
   108          */
       
   109         void CchEventOccuredL( 
       
   110             TUint aServiceId, 
       
   111             TCCHSubserviceState aState, 
       
   112             TInt aServiceError );
       
   113             
       
   114 
       
   115 	private:		
       
   116 	   	
       
   117 		/**
       
   118 		* Symbian second pahse constructor
       
   119 		* dont call delete call close 
       
   120 		*/		
       
   121 		void ConstructL();
       
   122 
       
   123 		/**
       
   124 		 * C++ default constructor.
       
   125 		 * @param aServiceId - Service Id
       
   126          * @param aCchHandler - reference to cchhandler
       
   127          * @param aTableFetcher - Handler to SPSettings
       
   128          * @param aServiceStateListener - Handler to the ServiceStateListener
       
   129 		 */
       
   130 		CVIMPSTEngineVOIPSubService( TUint32 aServiceId,
       
   131 								CVIMPSTEngineCchHandler& aCchHandler,
       
   132 								CVIMPSTEngineServiceTableFetcher& aTableFetcher,
       
   133 								MVIMPSTEngineServiceConnectionEventObserver& aObserver );
       
   134 					
       
   135 	private:
       
   136 		
       
   137 		/**
       
   138 		* Handler for the CCH Errors
       
   139 		* @param aServiceError
       
   140 		*/
       
   141 		void DoHandleCchErrorL( TInt aServiceError ) ;
       
   142 
       
   143 
       
   144 		/**
       
   145 		* Resolves the CCH service state to Service Tab understandable state
       
   146 		* @param aServiceId - Service Id
       
   147 		* @param aCchErr - returns the last CCH Error
       
   148 		* @return TVIMPSTRegistrationState  the Registration State		
       
   149 		*/
       
   150 		TVIMPSTEnums::TVIMPSTRegistrationState ResolveServiceState(
       
   151 									TCCHSubserviceState aState, 
       
   152             							TInt aServiceError) ;
       
   153 		
       
   154 	private :
       
   155 		
       
   156 		//Service Id
       
   157 		TUint32 iServiceId;
       
   158 		
       
   159 		//Doesnt Own - Handler for CCH Activities
       
   160 		CVIMPSTEngineCchHandler& iCchHandler;		
       
   161 		
       
   162 		//doesnt own - Handler to SPSettings Table
       
   163 		CVIMPSTEngineServiceTableFetcher& iTableFetcher;
       
   164         
       
   165 		// Stores voip sub services current state
       
   166         TVIMPSTEnums::TVIMPSTRegistrationState  iServiceState;        
       
   167 	  
       
   168 		//SubService Type    
       
   169 	    TVIMPSTEnums::SubServiceType iType;
       
   170 	    
       
   171 	    //Doesnt Own - Handler to the Service State Listener 
       
   172 	    MVIMPSTEngineServiceConnectionEventObserver& iObserver;
       
   173 
       
   174 	};
       
   175 
       
   176 #endif      //__CVIMPSTENGINEVOIPSUBSERVICE_H
       
   177 
       
   178 //  End of File
       
   179 
       
   180