phoneengine/phonemodel/inc/cpeparsersshandler.h
changeset 37 ba76fc04e6c2
child 46 bc5a64e5bc3c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phonemodel/inc/cpeparsersshandler.h	Fri Jun 04 10:19:18 2010 +0100
@@ -0,0 +1,301 @@
+/*
+* Copyright (c) 2002-2007 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:  This file contains the header file of the CPEParserSSHandler
+*                object
+*
+*/
+
+
+
+#ifndef CPEPARSERSSHANDLER_H
+#define CPEPARSERSSHANDLER_H
+
+//  INCLUDES
+#include <cphonegsmsshandler.h>
+#include <pevirtualengine.h>
+#include <nwdefs.h>
+#include <mpsetrequestobs.h>
+
+// FORWARD DECLARATIONS
+class CPEMessageHandler;
+class CPsetContainer;
+class CPsetCallWaiting;
+class CPsetCallBarring;
+class CPsetCallDiverting;
+class CPsetCli;
+class CPsuiContainer;
+class CPsuiWaitingObs;
+class CPsuiBarringObs;
+class CPsuiDivertObs;
+class CPsuiCliObserver;
+
+// CLASS DECLARATION
+
+/**
+*  Handles phone related messages from the MPEPhoneModelInternal object.
+*
+*  @lib phoneenginegsm
+*  @since Series60 4.0
+*/
+NONSHARABLE_CLASS( CPEParserSSHandler ) : public CPhoneGsmSsHandler, 
+                              public MPsetRequestObserver
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CPEParserSSHandler* NewL
+            (
+            CPEMessageHandler& aOwner,   
+            MPEPhoneModelInternal& aModel 
+            );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CPEParserSSHandler();
+
+     public: // New functions
+
+        /**
+        * Returns RMobilePhone::TMobileService type of basic service code.
+        *
+        * @param aBasicCode It is basic service code.
+        * @return basic service code.
+        */
+        RMobilePhone::TMobileService BasicService( const TDesC& aBasicCode ); 
+
+        /**
+        * changes parameter to basic service code
+        */
+        TBasicServiceGroups ChangeToBsc( const TDesC& aBasicCode );
+
+    public: // Functions from base classes
+
+        /**
+        * Cancel SS string command. Method cancel command from Settings utility
+        * subsytem or security module.
+        *
+        * @return possible error code
+        */
+        TInt Cancel();
+
+        /**
+        * Process barring procedures(derived from CPESsHandler).
+        *
+        * See comments for forwarding, they apply also in here.
+        *
+        * @param aAction It is action.
+        * @param aBarring It contains barring procedure.
+        * @param aPassword It should be barring password, if required.
+        * @param aBasicCode It is basic service code.
+        */
+        void ProcessBarringL( TAction aAction, 
+                              TBarringProcedure aBarring, 
+                              const TDesC& aPassword, 
+                              const TDesC& aBasicCode );
+
+        /**
+        * Process calling line identification presentation status
+        * (derived from CPEGsmSsHandler).
+        */
+        void ProcessClipStatusL();
+
+        /**
+        * Process calling line idnetification restriction status
+        * (derived from CPEGsmSsHandler).
+        */
+        void ProcessClirStatusL();
+
+        /**
+        * Process Calling Name Presentation (CNAP) status check.
+        */
+        void ProcessCnapStatusL();
+
+        /**
+        * Process connected line presentation status(derived from CPEGsmSsHandler).
+        */
+        void ProcessColpStatusL();
+
+        /**
+        * Process connected line restriction status(derived from CPEGsmSsHandler).
+        */
+        void ProcessColrStatusL();
+
+        /**
+        * Process enhanced Multi-Level Precedence and Pre-emption (eMLPP).
+        *
+        * @param aAction It is action.
+        * @param aNumber It is directory number.
+        * @param aServiceCode It is service code.
+        */
+        void ProcessEmlppL( TAction aAction, 
+                            const TDesC& /*aNumber*/,
+                            const TInt aServiceCode );
+
+        /**
+        * Process forwarding procedures(derived from CPEGsmSsHandler).
+        *
+        * If a parameter is not allowed for a procedure,
+        * then it is empty. If a parameter is not explicitly given,
+        * then it is empty. If a parameter is present, then it can
+        * be assumed to contain appropriate values.
+        *
+        * @param aAction It is action.
+        * @param aForwarding It contains forwarding procedure.
+        * @param aNumber It is directory number.
+        * @param aBasicCode It is basic service code.
+        * @param aTimer It is timer(delay time).
+        */
+        void ProcessForwardingL( TAction aAction, 
+                                 TForwardingProcedure aForwarding, 
+                                 const TDesC& aNumber, 
+                                 const TDesC& aBasicCode, 
+                                 const TDesC& aTimer );
+        
+        /**
+        * Process Multiple Subscriber Profile (MSP).
+        *
+        * @param aAction It is action.
+        * @param aNumber It is directory number.
+        * @param aServiceCode It is service code.
+        */
+        void ProcessMspL( TAction aAction, 
+                          const TDesC& aNumber, 
+                          const TInt aServiceCode );
+
+        /**
+        * Process password change(derived from CPEGsmSsHandler).
+        *
+        * @param aPassword It is password procedure.
+        * @param aOldPassword It should be old password.
+        * @param aNewPassword1 It is new password.
+        * @param aNewPassword2 It is new password.
+        */
+        void ProcessPasswordChangeL( TPasswordProcedure aPassword, 
+                                    const TDesC& aOldPassword, 
+                                    const TDesC& aNewPassword1, 
+                                    const TDesC& aNewPassword2 );
+
+        /**
+        * Process Support for Private Numbering Plan (SPNP).
+        *
+        * @param aAction It is action.
+        * @param aServiceCode It is service code.
+        */
+        void ProcessSpnpL( TAction aAction, const TInt aServiceCode );
+
+        /**
+        * Process waiting(derived from CPEGsmSsHandler).
+        *
+        * @param aAction It is action.
+        * @param aBasicCode It is basic service code.
+        */
+        void ProcessWaitingL( TAction aAction, const TDesC& aBasicCode );   
+
+        /**
+        * From MPsetRequestObs, called when request is completed  
+        * so that also ui browsing is ended
+        */
+        void RequestComplete();
+            
+        /**
+        * From MPsetRequestObs, called when request state changes  
+        * @param aNewStatus Request status, when request finishes
+        */
+        void RequestStatusChanged( TInt aNewStatus );
+
+    private: 
+
+        /**
+        * C++ default constructor.
+        */
+        CPEParserSSHandler( CPEMessageHandler& aOwner,  
+                                MPEPhoneModelInternal& aModel); 
+        
+        /**
+        * Connects class to the phonesettings
+        */
+        void ConnectToSsEngineL();
+
+        /**
+        * Create call barring observer
+        */
+        void CPEParserSSHandler::CreateCBObsL();
+    
+        /**
+        * Create call cli observer
+        */
+        void CPEParserSSHandler::CreateCliObsL();          
+        
+        /**
+        * Create call divert observer
+        */
+        void CPEParserSSHandler::CreateCFObsL();
+
+        /**
+        * Create call waiting observer
+        */
+        void CPEParserSSHandler::CreateCWObsL();
+
+        /**
+        * if ConnectSsToEngine leaves, this is called
+        */
+        static void DoClean( TAny* aAny );
+        
+        /**
+        * deletes member variables
+        */
+        void ResetVariables();
+
+        /**
+        * Copies destructor. If does not fit, then leaves with
+        * KErrOverflow error code.
+        */
+        static void CopyL( TDes& aDest, const TDesC& aSource );
+
+    private:
+        // CPEGsmMessageHandler object which owns this requester.
+        CPEMessageHandler& iOwner;
+        //MPEPhoneModelInternal is used to send message to the phone application
+        MPEPhoneModelInternal& iModel;
+        // Contains information of the Suplementary Services command.
+        TPESSCommandInfo iSupplementaryServicesCommandInfo;     
+        // Owned phone settings container.
+        CPsetContainer* iSettings;
+        // Owned phone settings ui container.
+        CPsuiContainer* iObsContainer;
+        // Owned call waiting.
+        CPsetCallWaiting* iWaiting;
+        // Owned waiting observer.
+        CPsuiWaitingObs* iCwObserver;
+        // Owned call barring.
+        CPsetCallBarring* iBarring;
+        // Owned call barring observer.
+        CPsuiBarringObs* iCbObserver;
+        // Owned call diverting.
+        CPsetCallDiverting* iDivert;
+        // Owned call diverting observer.
+        CPsuiDivertObs* iCfObserver;
+        // Owned calling line identity.
+        CPsetCli* iCli;
+        // Owned calling line identity observer.
+        CPsuiCliObserver* iCliObserver;
+
+    };
+
+#endif      // CPEPARSERSSHANDLER_H
+            
+// End of File