phoneengine/servicehandling/inc/cpeservicehandling.h
branchRCL_3
changeset 62 5266b1f337bd
parent 61 41a7f70b3818
--- a/phoneengine/servicehandling/inc/cpeservicehandling.h	Tue Aug 31 15:14:29 2010 +0300
+++ b/phoneengine/servicehandling/inc/cpeservicehandling.h	Wed Sep 01 12:30:10 2010 +0100
@@ -20,6 +20,7 @@
 #define C_PESERVICEHANDLING_H
 
 #include <e32base.h>
+#include <cch.h>
 #include "mpeservicehandling.h"
 
 class  MPEPhoneModelInternal;
@@ -32,28 +33,29 @@
  *  @since S60 v5.0
  */
 NONSHARABLE_CLASS( CPEServiceHandling ): public CBase,
+                                         public MCchServiceStatusObserver,
                                          public MPEServiceHandling
     {
 
-    public: // Constructors and destructor
+	public: // Constructors and destructor
 
-        /**
-         * Two-phased constructor.
-         */
-        IMPORT_C static CPEServiceHandling* NewL( MPEPhoneModelInternal& aModel );
+	    /**
+	     * Two-phased constructor.
+	     */
+	    IMPORT_C static CPEServiceHandling* NewL( MPEPhoneModelInternal& aModel );
 
-        /**
-         * Two-phased constructor.
-         */
-        IMPORT_C static CPEServiceHandling* NewLC( MPEPhoneModelInternal& aModel );
+	    /**
+	     * Two-phased constructor.
+	     */
+	    IMPORT_C static CPEServiceHandling* NewLC( MPEPhoneModelInternal& aModel );
 
-        /**
-         * Destructors.
-         */
-        IMPORT_C virtual ~CPEServiceHandling();
+	    /**
+	     * Destructors.
+	     */
+	    IMPORT_C virtual ~CPEServiceHandling();
 
-    public: // from MPEServiceHandling
-    
+	public: // from MPEServiceHandling
+	
         /**
          * From MPEServiceHandling.
          * Enables service defined by the given identifier.
@@ -63,22 +65,35 @@
          * 
          * @since   S60 5.0
          * @param   aServiceId      Identifier of the service.
-         */                                     
-        void EnableServiceL( TInt aServiceId );
-       
+         */	                                    
+	    void EnableServiceL( TInt aServiceId );
+	   
         /**
          * From MPEServiceHandling.
          * Cancel current service.
          */ 
-        void CancelServiceEnabling() const;
-        
+	    void CancelServiceEnabling() const;
+	    
         /**
          * From MPEServiceHandling.
          * Disable service.
          */ 
         void DisableService() const;
     
-    private: // Constructors
+    public: // from MCchServiceStatusObserver
+        
+        /**
+         * From MCchServiceStatusObserver.
+         * Signaled when service status or error changes.
+         *
+         * @param   aServiceId      Identifier of the service.
+         * @param   aType           Service type.
+         * @param   aServiceStatus  Service status.
+         */
+        void ServiceStatusChanged( TInt aServiceId, 
+                                   const TCCHSubserviceType aType,
+                                   const TCchServiceStatus& aServiceStatus );
+	private: // Constructors
 
         /**
          * C++ default constructor.
@@ -89,19 +104,44 @@
          * By default Symbian 2nd phase constructor is private.
          */
         void ConstructL();
-               
-    private: // data
-        
+	    
+    private: // functions
+    
         /**
-         * PhoneModel.
-         * Not own.
+         * Enable service, if not already enabled.
+         *
+         * @param  aState       Service state.
+         * @param  aService     Service.
+         * @return Error code.
          */
-        MPEPhoneModelInternal& iModel;
-        
+        TInt EnableServiceIfNeeded( const TCCHSubserviceState& aState, 
+                                    CCchService& aService );
         /**
-         * Current service identifier.
-         */
-        TInt iCurrentServiceId;
+        * Sends ServiceHandlingError message to PhoneEngine and saves 
+        * errorcode to member variable.
+        * 
+        * @param  aErrorCode, Cch errorcode.
+        */	    
+        void SendErrorMessage( TInt aErrorCode );
+       
+	private: // data
+	    
+	    /**
+	     * CCH client.
+	     * Own.
+	     */
+	    CCch* iCchClient;
+
+	    /**
+	     * PhoneModel.
+	     * Not own.
+	     */
+	    MPEPhoneModelInternal& iModel;
+	    
+	    /**
+	     * Current service identifier.
+	     */
+	    TInt iCurrentServiceId;
     };
 
 #endif // C_PESERVICEHANDLING_H