adaptationlayer/tsy/nokiatsy_dll/inc/cmmnetmesshandler.h
changeset 0 63b37f68c1ce
child 5 8ccc39f9d787
equal deleted inserted replaced
-1:000000000000 0:63b37f68c1ce
       
     1 /*
       
     2 * Copyright (c) 2007-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 the License "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: 
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef CMMNETMESSHANDLER_H
       
    21 #define CMMNETMESSHANDLER_H
       
    22 
       
    23 // INCLUDES
       
    24 #include <e32base.h> // Symbian base types
       
    25 #include <etelmm.h> // Symbian Etel related types
       
    26 
       
    27 #include "mmmmesshandlerbase.h"
       
    28 #include "cmmphonetreceiver.h"
       
    29 #include "muiccoperationbase.h"
       
    30 #include "nokiatsy_internal_variation.h"
       
    31 
       
    32 // CONSTANTS
       
    33 
       
    34 // 2.8 AVKON LAF UI specification states that signal strength is
       
    35 // indicated by 0 to 7 bars
       
    36 const TInt8 KMaxSignalStrengthBars = 7;
       
    37 // GpdsRadioActivityInd / GPDS_RADIO_OFF completion delay (2000000us = 2 seconds)
       
    38 const TInt KGPDSRAICompleteDelay = 2000000;
       
    39 
       
    40 // MACROS
       
    41     //None
       
    42 
       
    43 // DATA TYPES
       
    44 typedef TBuf<4> TOperatorCode; // Code data size is 4
       
    45 typedef TBuf<3> TCountryCode; // Code data size is 3
       
    46 
       
    47 // FUNCTION PROTOTYPES
       
    48     //None
       
    49 
       
    50 // FORWARD DECLARATIONS
       
    51 class CMmPhoNetSender;
       
    52 class CMmDataPackage;
       
    53 class CMmNetOperatorNameHandler;
       
    54 class CMmMessageRouter;
       
    55 class TIsiReceiveC;
       
    56 class TIsiSubBlock;
       
    57 class CDelayTimer;
       
    58 class CMmUiccMessHandler;
       
    59 
       
    60 // CLASS DECLARATION
       
    61 
       
    62 /**
       
    63 * Used for creating and sending NET server's ISI messages to
       
    64 * PhoNet via PhoNetSender. It also receives NET server's
       
    65 * ISI messages from PhoNetReceiver.
       
    66 */
       
    67 class CMmNetMessHandler
       
    68         : public CBase, public MMmMessHandlerBase, public MMmMessageReceiver,
       
    69         public MUiccOperationBase
       
    70     {
       
    71     public: // Constructors and destructor
       
    72 
       
    73         /**
       
    74         * Two-phased constructor.
       
    75         * @param aPhoNetSender: pointer to the Phonet sender.
       
    76         * @param aPhoNetReceiver: pointer to the Phonet receiver.
       
    77         * @param aMessageRouter: Pointer to the message router.
       
    78         * @return created message handler object.
       
    79         */
       
    80         static CMmNetMessHandler* NewL(
       
    81             CMmPhoNetSender* aPhoNetSender,
       
    82             CMmPhoNetReceiver* aPhoNetReceiver,
       
    83             CMmMessageRouter* aMessageRouter,
       
    84             CMmUiccMessHandler* aUiccMessHandler );
       
    85 
       
    86         /**
       
    87         * Destructor.
       
    88         */
       
    89         ~CMmNetMessHandler();
       
    90 
       
    91     public: // Functions
       
    92 
       
    93         /**
       
    94         * Handle UICC response messages
       
    95         * @param aTraId Transaction ID
       
    96         * @param aFileData Descriptor for file data
       
    97         * @return KErrNone or error code
       
    98         */
       
    99         TInt ProcessUiccMsg( TInt aTraId, TInt aStatus, const TDesC8& aFileData );
       
   100 
       
   101         /**
       
   102         * Entry point for request from the message manager
       
   103         * @param aIpc
       
   104         * @param CMmDataPackage
       
   105         * @return TInt ret: KErrNone or error code
       
   106         */
       
   107         TInt ExtFuncL( TInt aIpc, const CMmDataPackage* aDataPackage );
       
   108 
       
   109         /**
       
   110         * Handles a received message by calling the specific
       
   111         * message handling method.
       
   112         * @param TIsiReceiveC, reference to the received message.
       
   113         */
       
   114         void ReceiveMessageL( const TIsiReceiveC& aIsiMessage );
       
   115 
       
   116         /**
       
   117         * Handles errors coming from PhoNetReceiver RunError
       
   118         * @param const TIsiReceiveC& aIsiMessage: The received ISI message
       
   119         * @param TInt aError: Error code
       
   120         */
       
   121         void HandleError( const TIsiReceiveC& aIsiMessage, TInt aError );
       
   122 
       
   123         /**
       
   124         * Returns boolean of IMS PIN verify status
       
   125         * @return TBool: EFalse or ETrue
       
   126         */
       
   127         TBool GetImsPinVerifyStatus();
       
   128 
       
   129         /**
       
   130         * Maps the isa operator code to Symbian values
       
   131         * @param TDesC8 aIsaOperatorAndCountryCode: Operator and country code
       
   132         * @param TMobilePhoneNetworkIdentity aOperatorCode: Network identity
       
   133         * @param TMobilePhoneNetworkCountryCode aCountryCode: Country code
       
   134         * @param TInt aMNCLength: Mnc default lenght is three
       
   135         * @return TBool networkCodeMapped: EFalse or ETrue
       
   136         */
       
   137         static TBool MapOperatorAndCountryCode(
       
   138             const TDesC8& aIsaOperatorAndCountryCode,
       
   139             RMobilePhone::TMobilePhoneNetworkIdentity& aOperatorCode,
       
   140             RMobilePhone::TMobilePhoneNetworkCountryCode& aCountryCode,
       
   141             TInt aMNCLength = 3 );
       
   142 
       
   143         /**
       
   144         * Maps the isa network status to symbian values.
       
   145         * @param TUint8 aISANetworkStatus: Network status value.
       
   146         * @param TMobilePhoneNetworkStatus aNWStatus: Network status value.
       
   147         * @return None
       
   148         */
       
   149         static void MapNwStatus(
       
   150             TUint8 aISANetworkStatus,
       
   151             RMobilePhone::TMobilePhoneNetworkStatus& aNWStatus );
       
   152 
       
   153         /**
       
   154         * Saves GPDS radio activity information and completes
       
   155         * NotifyCurrentNetworkChange if state changed.
       
   156         * @param aNewPacketTrancferStatus: New radio activity state
       
   157         */
       
   158         void CompleteGpdsRadioActivityInd( TBool aNewPacketTrancferStatus );
       
   159 
       
   160         /**
       
   161         * Completes IPC EMobilePhoneNotifyCurrentNetworkChange and
       
   162         * EMobilePhoneGetNetworkRegistrationStatus.
       
   163         * @param aLocationAreaData includes Location Area data
       
   164         * @param aNetworkInfoData includes Network data
       
   165         */
       
   166         void CompleteMobilePhoneNotifyCurrentNetworkChange(
       
   167             const RMobilePhone::TMobilePhoneLocationAreaV1& aLocationAreaData,
       
   168             const RMobilePhone::TMobilePhoneNetworkInfoV5& aNetworkInfoData );
       
   169 
       
   170         /**
       
   171         * Continue handling of queued messages if available.
       
   172         * @return None
       
   173         */
       
   174         void ContinueHandlingNetModemRegStatusMessages();
       
   175 
       
   176         /**
       
   177         * Starts reading Operator Name String and Operator PLMN List rules
       
   178         * when SIM is ready.
       
   179         * @return None
       
   180         */
       
   181         void InitializeOnsAndOplReading();
       
   182 
       
   183         /**
       
   184         * Gets pointer to CMmMessageRouter class.
       
   185         * @return Pointer to CMmMessageRouter object.
       
   186         */
       
   187         CMmMessageRouter* GetMessageRouter();
       
   188 
       
   189         /**
       
   190         * Gets pointer to CMmPhoNetSender class.
       
   191         * @return Pointer to CMmPhoNetSender object.
       
   192         */
       
   193         CMmPhoNetSender* GetPhoNetSender();
       
   194 
       
   195         /**
       
   196         * Gets pointer to CMmNetOperatorNameHandler class.
       
   197         * @return Pointer to CMmNetOperatorNameHandler object.
       
   198         */
       
   199         CMmNetOperatorNameHandler* GetNetOperatorNameHandler();
       
   200 
       
   201         /**
       
   202         * Extracts network registration status from NET_MODEM_REG_STATUS_IND,
       
   203         * NET_SET_RESP or NET_MODEM_REG_STATUS_GET_RESP
       
   204         * @param aIsiMessage ISI-message to extract data from
       
   205         * @param aRegistrationStatus resulting registration status
       
   206         * @return TInt KErrNone, KErrNotFound if subblock not found
       
   207         * or system-wide error
       
   208         */
       
   209         TInt ExtractNetworkRegistrationStatus(
       
   210             const TIsiReceiveC& aIsiMessage,
       
   211             TUint8& aRegistrationStatus
       
   212             ) const;
       
   213 
       
   214     private: // Constructors and destructor
       
   215 
       
   216         /**
       
   217         * 2nd phase constructor
       
   218         */
       
   219         void ConstructL();
       
   220 
       
   221     private: // Functions
       
   222 
       
   223         /**
       
   224         * Breaks a NET_MODEM_REG_STATUS_IND ISI-message.
       
   225         * @param TIsiReceiveC& aIsiMessage: Received ISI message
       
   226         * @return None
       
   227         */
       
   228         void NetModemRegStatusInd( const TIsiReceiveC& aIsiMessage );
       
   229 
       
   230         /**
       
   231         * Sends a NET_MODEM_REG_STATUS_GET_REQ ISI-message.
       
   232         * @param TUint8 aTransactionId: Transaction id
       
   233         * @return TInt, success/failure value
       
   234         */
       
   235         TInt NetModemRegStatusGetReq( TUint8 aTransactionId ) const;
       
   236 
       
   237         /**
       
   238         * Net modem available get request.
       
   239         * @param TUint8 aTransactionId: Transaction id
       
   240         * @return TInt, success/failure value
       
   241         */
       
   242         TInt NetModemAvailableGetReq( TUint8 aTransactionId ) const;
       
   243 
       
   244         /**
       
   245         * GSM specific part of NET_MODEM_AVAILABLE_GET_RESP ISI-message.
       
   246         * @param TIsiReceiveC& aIsiMessage: Received ISI message
       
   247         * @return None
       
   248         */
       
   249         void NetModemAvailableGetRespL( const TIsiReceiveC& aIsiMessage ) const;
       
   250 
       
   251         /**
       
   252         * Net available cancel request.
       
   253         * @param TUint8 aTransactionId: Transaction id
       
   254         * @return TInt, success/failure value
       
   255         */
       
   256         TInt NetAvailableCancelReq( TUint8 aTransactionId );
       
   257 
       
   258         /**
       
   259         * Net available cancel response.
       
   260         * @param TIsiReceiveC& aIsiMessage: Received ISI message
       
   261         * @return None
       
   262         */
       
   263         void NetAvailableCancelResp( const TIsiReceiveC& aIsiMessage );
       
   264 
       
   265         /**
       
   266         * Net set request.
       
   267         * @param TUint8 aTransactionId: Transaction id
       
   268         * @param TBool aIsManual: Mode of the Selection
       
   269         * @param TOperatorCode aMnc: Pointer to MNC code
       
   270         * @param TCountryCode aMcc: Pointer to MCC code
       
   271         * @return TInt, success/failure value
       
   272         */
       
   273         TInt NetSetReq(
       
   274             TUint8 aTransactionId,
       
   275             TBool aIsManual,
       
   276             const TOperatorCode& aMnc,
       
   277             const TCountryCode& aMcc ) const;
       
   278 
       
   279         /**
       
   280         * Net set cancel request.
       
   281         * @param TUint8 aTransactionId: Transaction id
       
   282         * @return TInt, success/failure value
       
   283         */
       
   284         TInt NetSetCancelReq( TUint8 aTransactionId );
       
   285 
       
   286         /**
       
   287         * Net set cancel response
       
   288         * @param TIsiReceiveC& aIsiMessage: Received ISI message
       
   289         * @retrun None
       
   290         */
       
   291         void NetSetCancelResp( const TIsiReceiveC& aIsiMessage );
       
   292 
       
   293         /**
       
   294         * Request the current Radio access technology
       
   295         * @param TUint8 aTransactionId: Transaction id
       
   296         * @return TInt: Error code
       
   297         */
       
   298         TInt NetRatReq( TUint8 aTransactionId ) const;
       
   299 
       
   300         /**
       
   301         * Breaks a NET_RAT_RESP ISI message
       
   302         * @param TIsiReceiveC& aIsiMessage: Received ISI message
       
   303         * @return None
       
   304         */
       
   305         void NetRatResp( const TIsiReceiveC& aIsiMessage );
       
   306 
       
   307         /**
       
   308         * Net network select mode set req.
       
   309         * @param TUint8 aTransactionId: Transaction id
       
   310         * @param RMobilePhone::TMobilePhoneNetworkSelectionV1& aNetworkSelection:
       
   311         * Network selection
       
   312         * @return TInt, success/failure value
       
   313         */
       
   314         TInt NetNetworkSelectModeSetReq(
       
   315             TUint8 aTransactionId,
       
   316             const RMobilePhone::TMobilePhoneNetworkSelectionV1& aNetworkSelection ) const;
       
   317 
       
   318         /**
       
   319         * Net network select mode set response
       
   320         * @param TIsiReceiveC& aIsiMessage: Received ISI message
       
   321         * @return None
       
   322         */
       
   323         void NetNetworkSelectModeSetResp( const TIsiReceiveC& aIsiMessage ) const;
       
   324 
       
   325         /**
       
   326         * Network Get RSSI request.
       
   327         * @param None
       
   328         * @return TInt, success/failure value
       
   329         */
       
   330         TInt NetRssiGetReq() const;
       
   331 
       
   332         /**
       
   333         * Network Get RSSI response.
       
   334         * @param TIsiReceiveC& aIsiMessage: Received ISI message
       
   335         * @return None
       
   336         */
       
   337         void NetRssiGetResp( const TIsiReceiveC& aIsiMessage );
       
   338 
       
   339         /**
       
   340         * Network RSSI indication.
       
   341         * @param TIsiReceiveC& aIsiMessage: Received ISI message
       
   342         * @return None
       
   343         */
       
   344         void NetRssiInd( const TIsiReceiveC& aIsiMessage );
       
   345 
       
   346         /**
       
   347         * Handle RSSI and complete to CommonTSY.
       
   348         * @param TUint8 aBarsIsi: bar percentage (ISI value)
       
   349         * @return TUint8 aRSSIIsi: RSSI in dBm with inverse sign (ISI value)
       
   350         */
       
   351         void HandleRssi(
       
   352             TUint8 aBarsIsi,
       
   353             TUint8 aRSSIIsi ) const;
       
   354 
       
   355         /**
       
   356         * Network time indication.
       
   357         * @param TIsiReceiveC& aIsiMessage: Received ISI message
       
   358         * @return None
       
   359         */
       
   360         void NetTimeInd( const TIsiReceiveC& aIsiMessage ) const;
       
   361 
       
   362         /**
       
   363         * Network ciphering indication.
       
   364         * @param TIsiReceiveC& aIsiMessage: Received ISI message
       
   365         * @return None
       
   366         */
       
   367         void NetCipheringInd( const TIsiReceiveC& aIsiMessage ) const;
       
   368 
       
   369         /**
       
   370         * Ciphering indicator read request
       
   371         * @return Error code
       
   372         */
       
   373         TInt UiccReadCiReq();
       
   374 
       
   375         /**
       
   376         * Ciphering indicator read response
       
   377         * @param aStatus Status
       
   378         * @param aFileData File data
       
   379         * @return None
       
   380         */
       
   381         void UiccReadCiResp( TInt aStatus, const TDesC8& aFileData );
       
   382 
       
   383         /**
       
   384         * Network radio information indication.
       
   385         * @param const TIsiReceiveC& aIsiMessage: Received ISI message
       
   386         * @return None
       
   387         */
       
   388         void NetRadioInfoInd( const TIsiReceiveC& aIsiMessage );
       
   389 
       
   390         /**
       
   391         * Read home network
       
   392         * @return Error code
       
   393         */
       
   394         TInt UiccCsReadReq();
       
   395 
       
   396         /**
       
   397         * Response to read EHPLMN
       
   398         * @param aStatus Status
       
   399         * @param aFileData File data containig EHPLMN
       
   400         * @return None
       
   401         */
       
   402         void UiccCsReadEhpmlnResp( TInt aStatus, const TDesC8& aFileData );
       
   403 
       
   404         /**
       
   405         * Response to read HPLMN
       
   406         * @param aStatus Status
       
   407         * @param aFileData File data containig HPLMN
       
   408         */
       
   409         void UiccCsReadHpmlnResp( TInt aStatus, const TDesC8& aFileData );
       
   410 
       
   411         /**
       
   412         * Set network info
       
   413         * @param None
       
   414         * @return None
       
   415         */
       
   416         void SetSimNetworkInfo();
       
   417 
       
   418         /**
       
   419         * GPDS radio activity indication.
       
   420         * @param const TIsiReceiveC& aIsiMessage: Received ISI message
       
   421         * @return None
       
   422         */
       
   423         void GpdsRadioActivityInd( const TIsiReceiveC& aIsiMessage );
       
   424 
       
   425         /**
       
   426         * GPDS Context Deactivate indication.
       
   427         * @param const TIsiReceiveC& aIsiMessage: Received ISI message
       
   428         * @return None
       
   429         */
       
   430         void GpdsContextDeactivateInd( const TIsiReceiveC& aIsiMessage );
       
   431 
       
   432         /**
       
   433         * Completes IPC EMobilePhoneGetHomeNetwork.
       
   434         */
       
   435         void CompleteMobilePhoneGetHomeNetwork();
       
   436 
       
   437         /**
       
   438         * Queue functionality for NET_MODEM_REG_STATUS_IND,
       
   439         * NET_MODEM_REG_STATUS_GET_RESP and NET_SET_RESP ISI-messages.
       
   440         * @param TIsiReceiveC& aIsiMessage: Received ISI message
       
   441         * @return None
       
   442         */
       
   443         void QueueNetModemRegStatusMessagesL( const TIsiReceiveC& aIsiMessage );
       
   444 
       
   445         /**
       
   446         * Start handling queued messages.
       
   447         * @return None
       
   448         */
       
   449         void StartHandlingNetModemRegStatusMessages();
       
   450 
       
   451         /**
       
   452         * Finds offset to NET_GSM_REG_INFO or NET_CURRENT_CELL_INFO
       
   453         * in NET_REG_STATUS_IND, NET_SET_RESP or NET_REG_STATUS_GET_RESP
       
   454         * @param aIsiMessage ISI-message to process
       
   455         * @param aSbOffset resulting offset to the subblock
       
   456         * @return TInt KErrNone or system-wide error
       
   457         */
       
   458         TInt FindOperatorInfoSubBlock(
       
   459             const TIsiReceiveC& aIsiMessage,
       
   460             TUint& aSbOffset
       
   461             ) const;
       
   462 
       
   463         /**
       
   464         * Extracts network registration status from NET_REG_INFO_COMMON
       
   465         * subblock of NET_REG_STATUS_IND, NET_SET_RESP or
       
   466         * NET_REG_STATUS_GET_RESP.
       
   467         * @param aIsiMessage ISI-message to process
       
   468         * @param aOperatorCode BCD-string containing operator code
       
   469         * @param aRegistrationStatus resulting registration status
       
   470         * @param aSbStartOffset NET_REG_INFO_COMMON subblock offset
       
   471         * @return TInt KErrNone or system-wide error
       
   472         */
       
   473         TInt ExtractNetworkRegistrationStatus(
       
   474             const TIsiReceiveC& aIsiMessage,
       
   475             const TDesC8& aOperatorCode,
       
   476             TUint8& aRegistrationStatus,
       
   477             TUint& aSbStartOffset
       
   478             ) const;
       
   479 
       
   480     protected: // Constructors and destructor
       
   481 
       
   482         /**
       
   483         * C++ default constructor.
       
   484         */
       
   485         CMmNetMessHandler();
       
   486 
       
   487     protected: // Functions
       
   488 
       
   489         /**
       
   490         * Breaks a NET_RAT_IND ISI-message.
       
   491         * @param const TIsiReceiveC& aIsiMessage: Received ISI message
       
   492         * @return None
       
   493         */
       
   494         void NetRatInd( const TIsiReceiveC& aIsiMessage );
       
   495 
       
   496         // NETWORK UTILITY FUNCTIONS
       
   497         /**
       
   498         * Maps the isa network registration status to Symbian values.
       
   499         * @param TUint8 aISARegistrationStatus: Network registration status.
       
   500         * @param TMobilePhoneRegistrationStatus aRegStatus: Phone registration
       
   501         * status.
       
   502         * @param TMobilePhoneNetworkStatus aNWStatus: Phone network status.
       
   503         * @return None
       
   504         */
       
   505         static void MapNWAndRegStatus(
       
   506             TUint8 aISARegistrationStatus,
       
   507             RMobilePhone::TMobilePhoneRegistrationStatus& aRegStatus,
       
   508             RMobilePhone::TMobilePhoneNetworkStatus& aNWStatus );
       
   509 
       
   510         /**
       
   511         * Maps the isa network selection mode to Symbian values.
       
   512         * @param TUInt8 aISASelectionMode: Network selection mode.
       
   513         * @param TMobilePhoneNetworkSelectionV1 aSelectionMode:
       
   514         * Network selection mode.
       
   515         * @return None
       
   516         */
       
   517         static void MapNWSelectionMode(
       
   518             TUint8 aISASelectionMode,
       
   519             RMobilePhone::TMobilePhoneNetworkSelectionV1& aSelectionMode );
       
   520 
       
   521     private: // Data
       
   522 
       
   523         // Pointer to the NetOperatorNameHandler.
       
   524         CMmNetOperatorNameHandler* iNetOperatorNameHandler;
       
   525 
       
   526         // Pointer to the Message Router
       
   527         CMmMessageRouter* iMessageRouter;
       
   528 
       
   529         // Cached network selection method
       
   530         TUint8 iSelectionMethod;
       
   531 
       
   532         // Wether the network selection cancel has been issued or not
       
   533         TBool iSelectNetworkCancelIssued;
       
   534 
       
   535         // Wether the network search cancel has been issued or not
       
   536         TBool iSearchNetworkCancelIssued;
       
   537 
       
   538         // Network mode: ENetworkModeGsm, ENetworkModeWcdma or
       
   539         // ENetworkModeUnknown
       
   540         RMobilePhone::TMobilePhoneNetworkMode iNetworkMode;
       
   541 
       
   542         // If PIN code needs to be verified before IMSI can be used.
       
   543         TBool iImsPinVerifyRequired;
       
   544 
       
   545         // If ISIM application is used
       
   546         TBool iIsimUsed;
       
   547 
       
   548         // MNC lenght
       
   549         TUint8 iMNClength;
       
   550 
       
   551         // Home PLMN
       
   552         TBuf8<4> iHplmn;
       
   553 
       
   554         // Network access technology
       
   555         RMobilePhone::TMobilePhoneNetworkAccess iNetworkAccess;
       
   556 
       
   557         // Radio Resource Control (RRC) is in Cell_DCH state (there is
       
   558         // no cell/location info available while in this state)
       
   559         TBool iCell_DCH;
       
   560 
       
   561         // Packet transfer state (there is
       
   562         // no cell/location info available while in this state)
       
   563         TBool iPacketTransfer;
       
   564 
       
   565         // Delay timer for completion of Packet transfer state
       
   566         CDelayTimer* iDelayTimer;
       
   567 
       
   568         // Network and location information have to be saved while RRC is
       
   569         // (temporarily) in Cell_DCH state
       
   570         RMobilePhone::TMobilePhoneNetworkInfoV5 iLastNWInfo;
       
   571         RMobilePhone::TMobilePhoneLocationAreaV1 iLastLocInfo;
       
   572 
       
   573         // Home network information have to be saved while operator name
       
   574         // is requested from the NET Server.
       
   575         RMobilePhone::TMobilePhoneNetworkInfoV5 iHomeInfo;
       
   576 
       
   577         // Is NET_MODEM_REG_STATUS_IND, NET_MODEM_REG_STATUS_GET_RESP or
       
   578         // NET_SET_RESP message handling ongoing.
       
   579         TBool iNetMessageHandlingOngoing;
       
   580 
       
   581         // Array for queueing NET_MODEM_REG_STATUS_IND,
       
   582         // NET_MODEM_REG_STATUS_GET_RESP and NET_SET_RESP messages.
       
   583         RPointerArray<HBufC8> iNetMessageQueue;
       
   584 
       
   585     protected: // Data
       
   586 
       
   587         // Pointer to the PhonetSender
       
   588         CMmPhoNetSender* iPhoNetSender;
       
   589 
       
   590         // Pointer to UICC message handler
       
   591         CMmUiccMessHandler* iMmUiccMessHandler;
       
   592     };
       
   593 
       
   594 /**
       
   595 * CDelayTimer: Used for delaying for completion of Packet transfer state
       
   596 * from GPDS_RADIO_AVTIVITY_IND.
       
   597 */
       
   598 class CDelayTimer : public CTimer
       
   599     {
       
   600 
       
   601     public: // Constructors and destructors
       
   602 
       
   603         /**
       
   604         * Two-phased constructor.
       
   605         * @param aNetMessHandler: Pointer to the net message handler
       
   606         * @return CDelayTimer object
       
   607         */
       
   608         static CDelayTimer* NewL( CMmNetMessHandler* aNetMessHandler );
       
   609 
       
   610         /**
       
   611         * ~CDelayTimer.
       
   612         * Destructor.
       
   613         */
       
   614         ~CDelayTimer();
       
   615 
       
   616     private: // Constructors and destructors
       
   617 
       
   618         /**
       
   619         * C++ default constructor.
       
   620         */
       
   621         CDelayTimer();
       
   622 
       
   623         /**
       
   624         * 2nd phase constructor.
       
   625         */
       
   626         void ConstructL();
       
   627 
       
   628     private: // Functions from base classes
       
   629 
       
   630         /**
       
   631         * From CActive.
       
   632         * Called when operation completes.
       
   633         */
       
   634         void RunL();
       
   635 
       
   636         /**
       
   637         * From CActive.
       
   638         * Called when operation is cancelled.
       
   639         */
       
   640         void DoCancel();
       
   641 
       
   642     public: // New functions
       
   643 
       
   644         /**
       
   645         * Start delay timer.
       
   646         * @param aNewPacketTransferState: New packet transfer state
       
   647         * @param aTimeOut: Time out in ms
       
   648         */
       
   649         void StartDelayTimer(
       
   650             TBool aNewPacketTransferState,
       
   651             TInt aTimeOut );
       
   652 
       
   653     private: // Data
       
   654 
       
   655         /**
       
   656         * pointer to the net message handler
       
   657         */
       
   658         CMmNetMessHandler* iNetMessHandler;
       
   659 
       
   660         /**
       
   661         * new packet transfer state
       
   662         */
       
   663         TBool iNewPacketTransferState;
       
   664 
       
   665     };
       
   666 
       
   667 #endif // CMMNETMESSHANDLER_H
       
   668 
       
   669 // End of File