--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/simtsy/inc/CSimNetworkStatus.h Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,200 @@
+// Copyright (c) 2001-2009 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:
+// Contains definitions for classes that implement network orientated functionality.
+//
+//
+
+/**
+ @file
+ @internalAll
+*/
+
+#ifndef CSIMNETWORKSTATUS_H__
+#define CSIMNETWORKSTATUS_H__
+
+#include <etelmm.h>
+#include <et_phone.h>
+#include "csimtimer.h"
+#include "CSimPubSubChange.h"
+
+class CSimPhone;
+class CTestConfigSection;
+
+/**
+ * Implements the RMobilePhone based functions that constitute the network orientated
+ * functionality provided by the SIM TSY.
+ */
+class CSimNetworkStatus : public CBase, MTimerCallBack, MPubSubChangeCallback
+ {
+public:
+ static CSimNetworkStatus* NewL(CSimPhone* aPhone);
+ CSimNetworkStatus(CSimPhone* aPhone);
+ ~CSimNetworkStatus();
+ TInt GetNetworkCaps(TTsyReqHandle aReqHandle,TDes8* aPckg1);
+ TInt GetHomeNetwork(TTsyReqHandle aReqHandle,TDes8* aPckg1);
+ TInt GetCurrentNetwork(TTsyReqHandle aReqHandle,TDes8* aPckg1, TDes8* aPckg2);
+ TInt GetCurrentNetworkNoLocation(TTsyReqHandle aReqHandle,TDes8* aPckg1);
+ TInt GetNetworkRegistrationStatus(TTsyReqHandle aReqHandle,TDes8* aPckg);
+ TInt NotifyNetworkRegistrationStatusChange(TTsyReqHandle aReqHandle,TDes8* aPckg);
+ void NotifyNetworkRegistrationStatusChangeCancel();
+ TInt NotifyCurrentNetworkChange(TTsyReqHandle aReqHandle,TDes8* aPckg1,TDes8* aPckg2);
+ void NotifyCurrentNetworkChangeCancel(const TTsyReqHandle aTsyReqHandle);
+ TInt NotifyCurrentNetworkNoLocationChange(TTsyReqHandle aReqHandle,TDes8* aPckg1);
+ void NotifyCurrentNetworkNoLocationChangeCancel(const TTsyReqHandle aTsyReqHandle);
+
+ TInt GetNITZInfo(TTsyReqHandle aReqHandle,TDes8* aPckg1);
+ TInt NotifyNITZInfoChange(TTsyReqHandle aReqHandle,TDes8* aPckg);
+ void NotifyNITZInfoChangeCancel();
+ TInt GetCurrentServiceProvider(TTsyReqHandle aReqHandle,TDes8* aPckg);
+ TInt GetCurrentNetworkName(TTsyReqHandle aReqHandle,TDes8* aNetworkName, TDes8* aLocInfo);
+
+ TInt GetCellInfo(TTsyReqHandle aReqHandle,TDes8* aPckg);
+ TInt NotifyCellInfoChange(TTsyReqHandle aReqHandle,TDes8* aPckg);
+ void NotifyCellInfoChangeCancel(TTsyReqHandle aTsyReqHandle);
+
+ const CTestConfigSection* CfgFile();
+ RMobilePhone::TMobilePhoneNetworkStatus NetWorkStatus();
+ inline RMobilePhone::TMobilePhoneRegistrationStatus RegistrationStatus() { return static_cast<RMobilePhone::TMobilePhoneRegistrationStatus>(iCurrentRegStatus);};
+
+private:
+ void ConstructL();
+ void TimerCallBack(TInt aId);
+ void TimerCallBackRegStat();
+ void PubSubCallback(TInt aRegStat);
+ void TimerCallBackNitz();
+ void TimerCallBackCellInfo();
+ void TimerCallBackRadioModeL();
+ void PopulateNetworkInfoV1(TInt aIndex,RMobilePhone::TMobilePhoneNetworkInfoV1& aNetInfo);
+ void PopulateEtel3rdPartyNetworkInfoV1(TInt aIndex,RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1& aNetInfo);
+ void PopulateNitzNetworkNames(RMobilePhone::TMobilePhoneNITZ& aNitz);
+
+private:
+ CSimPhone* iPhone; // < Pointer to the parent phone class.
+ CSimTimer* iRegStatTimer; // < Pointer to the owned Registration Status timer class.
+ CSimPubSubChange* iRegStatChange; // < Object for checking registration status change variable
+ CSimPubSubChange* iPSRegStatChange; // < Object for checking registration status change variable using new P&S uids
+ CSimTimer* iNitzTimer; // < Pointer to the owned NITZ timer class.
+ CSimTimer* iRadioModeTimer; // < Pointer to the owned RadioMode timer class.
+ CSimTimer* iCellInfoTimer; // < Pointer to the owned cell info timer class.
+
+ struct TRegStatus
+ {
+ TInt iDuration; // < Duration of Registration Status
+ RMobilePhone::TMobilePhoneRegistrationStatus iRegStatus; // < Registration Status that will be maintained through period iDuration
+ TInt iNetworkInfoIndex; // < Network index (into iNetworkInfo) that will be maintained through period iDuration (optional)
+ };
+
+ CArrayFixFlat<TRegStatus>* iRegStatusInfo; // < List of network registration changes.
+ TInt iRegStatIndex; // < Current index from the iRegStatInfo array
+ TInt iCurrentRegStatus; // < Current Registration Status.
+ CArrayFixFlat<RMobilePhone::TMobilePhoneNetworkInfoV2>* iNetworkInfo; // < List of network information.
+ CArrayFixFlat<RMobilePhone::TMobilePhoneNetworkInfoV8>* iNetworkInfoV8; // < List of network information for V8 class.
+ CArrayFixFlat<RMobilePhone::TMobilePhoneLocationAreaV1>* iLocationArea; // < List of location area.
+ TInt iCurrentNetworkIndex; // < Current index from the iNetworkInfo array
+ struct TNitzInfoAndDuration
+ {
+ TInt iDuration; // < Duration when this NITZ information is valid.
+ RMobilePhone::TMobilePhoneNITZ iNitz; // < NITZ information valid for above period.
+ };
+ CArrayFixFlat<TNitzInfoAndDuration>* iNitzInfo; // < List of NITZ information.
+ TInt iNitzIndex; // < Current index from the iNitzInfo array
+ RMobilePhone::TMobilePhoneNITZ iCurrentNitzInfo;
+
+ TBool iRegStatChangeNotificationPending; // < Registration Status notification request outstanding
+ TTsyReqHandle iRegStatChangeNotificationReqHandle; // < Registration Status notification outstanding request handle
+ RMobilePhone::TMobilePhoneRegistrationStatus* iRegStatChangeNotificationRegStatus; // < Registration Status notification pointer
+
+ TBool iCurrNetChangeV1NotificationPending; // < Current network notification request outstanding for V1 paramater class
+ TTsyReqHandle iCurrNetChangeV1NotificationReqHandle; // < Current network notification outstanding request handle for V1 paramater class
+ RMobilePhone::TMobilePhoneNetworkInfoV1* iCurrNetChangeV1NotificationNetInfo; // < Current network notification data pointer for V1 paramater class
+
+ TBool iCurrNetChangeV2NotificationPending; // < Current network notification request outstanding for V2 paramater class
+ TTsyReqHandle iCurrNetChangeV2NotificationReqHandle; // < Current network notification outstanding request handle for V2 paramater class
+ RMobilePhone::TMobilePhoneNetworkInfoV2* iCurrNetChangeV2NotificationNetInfo; // < Current network notification data pointer for V2 paramater class
+
+ TBool iCurrNetChangeV5NotificationPending; // < Current network notification request outstanding for V5 paramater class
+ TTsyReqHandle iCurrNetChangeV5NotificationReqHandle; // < Current network notification outstanding request handle for V5 paramater class
+ RMobilePhone::TMobilePhoneNetworkInfoV5* iCurrNetChangeV5NotificationNetInfo; // < Current network notification data pointer for V5 paramater class
+
+ TBool iCurrNetChangeV8NotificationPending; // < Current network notification request outstanding for V8 paramater class
+ TTsyReqHandle iCurrNetChangeV8NotificationReqHandle; // < Current network notification outstanding request handle for V8 paramater class
+ RMobilePhone::TMobilePhoneNetworkInfoV8* iCurrNetChangeV8NotificationNetInfo; // < Current network notification data pointer for V8 paramater class
+
+ TBool iCurrNetChangeNoLocV1NotificationPending; // < Current network notification request outstanding for V1 paramater class
+ TTsyReqHandle iCurrNetChangeNoLocV1NotificationReqHandle; // < Current network notification outstanding request handle for V1 paramater class
+ RMobilePhone::TMobilePhoneNetworkInfoV1* iCurrNetChangeNoLocV1NotificationNetInfo; // < Current network notification data pointer for V1 paramater class
+
+ TBool iCurrNetChangeNoLocV2NotificationPending; // < Current network notification request outstanding for V2 paramater class
+ TTsyReqHandle iCurrNetChangeNoLocV2NotificationReqHandle; // < Current network notification outstanding request handle for V2 paramater class
+ RMobilePhone::TMobilePhoneNetworkInfoV2* iCurrNetChangeNoLocV2NotificationNetInfo; // < Current network notification data pointer for V2 paramater class
+
+ TBool iCurrNetChangeNoLocV5NotificationPending; // < Current network notification request outstanding for V5 paramater class
+ TTsyReqHandle iCurrNetChangeNoLocV5NotificationReqHandle; // < Current network notification outstanding request handle for V5 paramater class
+ RMobilePhone::TMobilePhoneNetworkInfoV5* iCurrNetChangeNoLocV5NotificationNetInfo; // < Current network notification data pointer for V5 paramater class
+
+ TBool iCurrNetChangeNoLocV8NotificationPending; // < Current network notification request outstanding for V8 paramater class
+ TTsyReqHandle iCurrNetChangeNoLocV8NotificationReqHandle; // < Current network notification outstanding request handle for V8 paramater class
+ RMobilePhone::TMobilePhoneNetworkInfoV8* iCurrNetChangeNoLocV8NotificationNetInfo; // < Current network notification data pointer for V8 paramater class
+
+ TBool iCurrNetChangeEtelIsvNotificationPending; // < Current network notification request outstanding for V2 paramater class
+ TTsyReqHandle iCurrNetChangeEtelIsvNotificationReqHandle; // < Current network notification outstanding request handle for V2 paramater class
+ RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1* iCurrNetChangeEtelIsvNotificationNetInfo; // < Current network notification data pointer for V2 paramater class
+
+ TBool iCurrentNetworkChangeLocationAreaNotificationPending; // < Current network notification request outstanding for location area class
+ RMobilePhone::TMobilePhoneLocationAreaV1* iCurrentNetworkChangeLocationArea; // < Current network notification data pointer for location area class
+
+ TBool iNitzChangeNotificationPending; // < NITZ notification request outstanding
+ TTsyReqHandle iNitzChangeNotificationReqHandle; // < NITZ notification outstanding request handle
+ RMobilePhone::TMobilePhoneNITZ* iNitzChangeNotificationInfo; // < NITZ notification data pointer
+ RMobilePhone::TMobilePhoneServiceProviderNameV2 iServiceProvider; // < Service provider details
+ struct TRadioMode
+ {
+ TInt iDuration; // < Duration of Registration Status
+ TBool iRadioOn; // < Radio (RF) On or Off
+ };
+ TRadioMode iRadioMode;
+ CArrayFixFlat<TRadioMode>* iRadioModeInfo;
+ TInt iRadioModeIndex; // < Current index from the radioMode array
+
+ struct TCellInfoAndDuration
+ {
+ TInt iDuration; // < Duration when this cell information is valid.
+ RMobilePhone::TMobilePhoneCellInfoV9 iInfo; // < cell information valid for above period.
+ };
+ CArrayFixFlat<TCellInfoAndDuration>* iCellInfo; // < List of Cell information.
+ TInt iCellInfoIndex; // < Current index from the iNitzInfo array
+ RMobilePhone::TMobilePhoneCellInfoV9 iCurrentCellInfo;
+ TBool iCellInfoChangeNotificationPending; // < Cell info notification request outstanding
+ TTsyReqHandle iCellInfoChangeNotificationReqHandle; // < Cell info notification outstanding request handle
+ RMobilePhone::TMobilePhoneCellInfoV9* iCellInfoChangeNotificationInfo; // < cell Info notification data pointer
+
+private:
+ void SetNetworkMode();
+
+ CSimTimer* iRoamStatTimer; // < Pointer to the owned Roaming Status timer class.
+ void FindRoamStatSettings();
+
+ class TRoamStatClient
+ {
+ public:
+ TTsyReqHandle iReqHandle;
+ TUint8* iRoamingStatus;
+ };
+
+ TInt iRoamStatGetTimeout;
+ CArrayFixFlat<TRoamStatClient>* iRoamStatGetClients;
+ CArrayFixFlat<TRoamStatClient>* iRoamStatNotifyClients;
+ };
+
+#endif