/** Copyright (c) 2009 Sony Ericsson Mobile Communications AB* 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:* Sony Ericsson Mobile Communications AB - initial contribution.* Nokia Corporation - additional changes.* * Contributors:* * Description:* TelephonyActNetwork Active Object class, used by CTelephonyFunctions class.**//** @file*/#include <etel.h>#include <etelmm.h>#include "Etel3rdParty.h"class CTelephony;class CTelephonyFunctions; // forward referenceclass CAsyncRequestBaseAct;class CGetNetworkRegistrationStatusAct : public CAsyncRequestBaseAct/**This is an active object responsible for interacting with Multimode ETel*/ {public: static CGetNetworkRegistrationStatusAct* NewL(CTelephonyFunctions* aTelephonyFunctions); ~CGetNetworkRegistrationStatusAct(); void GetNetworkRegistrationStatus(TDes8& aId); static void GetRegistrationStatus(const RMobilePhone::TMobilePhoneRegistrationStatus aMMRegStatus, CTelephony::TRegistrationStatus& aTelRegStatus);protected: void Complete(); TInt RunError(TInt aLeaveCode); void DoCancel();private: CGetNetworkRegistrationStatusAct(CTelephonyFunctions* aTelephonyFunctions); CTelephonyFunctions* iTelephonyFunctions; CTelephony::TNetworkRegistrationV1* iISVNetworkRegistration; RMobilePhone::TMobilePhoneRegistrationStatus iMMNetworkRegistration; };/**This is an active object responsible for interacting with MultimodeETel. CGetCurrentNetworkNameAct is used to request current networkinformation.*/class CGetCurrentNetworkInfoAct : public CAsyncRequestBaseAct {public: static CGetCurrentNetworkInfoAct* NewL(CTelephonyFunctions* aTelephonyFunctions); ~CGetCurrentNetworkInfoAct(); void GetCurrentNetworkInfo(TDes8& aPckg); static void MapNetworkInfo(CTelephony::TEtelISVType* aISVNetworkInfo, RMobilePhone::TMobilePhoneNetworkInfoV2* aMobileNetworkInfo, RMobilePhone::TMobilePhoneLocationAreaV1* aMMArea);protected: void Complete(); TInt RunError(TInt aLeaveCode); void DoCancel();private: CGetCurrentNetworkInfoAct(CTelephonyFunctions* aTelephonyFunctions); CTelephonyFunctions* iTelephonyFunctions; CTelephony::TEtelISVType* iISVNetworkInfo; RMobilePhone::TMobilePhoneLocationAreaV1 iMMArea; TInt iPostedIPC; RMobilePhone::TMobilePhoneNetworkInfoV2 iMMNetworkInfo; RMobilePhone::TMobilePhoneNetworkInfoV2Pckg iMMNetworkInfoPckg; };/**This is an active object responsible for interacting with MultimodeETel. CGetCurrentNetworkNameAct is used to request current networkname.*/class CGetCurrentNetworkNameAct : public CAsyncRequestBaseAct {public: static CGetCurrentNetworkNameAct* NewL(CTelephonyFunctions* aTelephonyFunctions); ~CGetCurrentNetworkNameAct(); void GetCurrentNetworkName(TDes8& aPckg);protected: void Complete(); TInt RunError(TInt aLeaveCode); void DoCancel();private: CGetCurrentNetworkNameAct(CTelephonyFunctions* aTelephonyFunctions); CTelephonyFunctions* iTelephonyFunctions; CTelephony::TEtelISVType* iISVCurrentNetworkName; RMobilePhone::TMobilePhoneNetworkNameV3 iMMNetworkNameV3; RMobilePhone::TMobilePhoneNetworkNameV3Pckg iMMNetworkNameV3Pckg; RMobilePhone::TMobilePhoneOPlmnV3 iLocInfo; RMobilePhone::TMobilePhoneOPlmnV3Pckg iLocInfoPckg; };class CGetOperatorNameAct : public CAsyncRequestBaseAct/**This is an active object responsible for interacting with Multimode ETel*/ {public: static CGetOperatorNameAct* NewL(CTelephonyFunctions* aTelephonyFunctions); ~CGetOperatorNameAct(); void GetOperatorName(TDes8& aId);protected: void Complete(); TInt RunError(TInt aLeaveCode); void DoCancel();private: CGetOperatorNameAct(CTelephonyFunctions* aTelephonyFunctions); CTelephonyFunctions* iTelephonyFunctions; CTelephony::TOperatorNameV1* iISVOperatorName; RMobilePhone::TMobilePhoneServiceProviderNameV2 iMMServiceProviderName; RMobilePhone::TMobilePhoneServiceProviderNameV2Pckg iMMServiceProviderNamePckg; };class CNotifyNetworkRegistrationStatusAct : public CAsyncRequestBaseAct/**This is an active object responsible for interacting with Multimode ETel*/ {public: static CNotifyNetworkRegistrationStatusAct* NewL(CTelephonyFunctions* aTelephonyFunctions); ~CNotifyNetworkRegistrationStatusAct(); void NotifyNetworkRegistrationStatus(TDes8& aId);protected: void Complete(); TInt RunError(TInt aLeaveCode); void DoCancel();private: CNotifyNetworkRegistrationStatusAct(CTelephonyFunctions* aTelephonyFunctions); CTelephonyFunctions* iTelephonyFunctions; CTelephony::TNetworkRegistrationV1* iISVNetworkRegistration; RMobilePhone::TMobilePhoneRegistrationStatus iMMNetworkRegistration; };/**This is an active object responsible for interacting with MultimodeETel. Its use is for posting notification requests on current networkinformation changes.*/class CNotifyCurrentNetworkInfoAct : public CAsyncRequestBaseAct {public: static CNotifyCurrentNetworkInfoAct* NewL(CTelephonyFunctions* aTelephonyFunctions); ~CNotifyCurrentNetworkInfoAct(); void NotifyCurrentNetworkInfo(TDes8& aPckg);protected: void Complete(); TInt RunError(TInt aLeaveCode); void DoCancel();private: CNotifyCurrentNetworkInfoAct(CTelephonyFunctions* aTelephonyFunctions); CTelephonyFunctions* iTelephonyFunctions; CTelephony::TEtelISVType* iISVNetworkInfo; RMobilePhone::TMobilePhoneLocationAreaV1 iMMArea; TInt iPostedIPC; RMobilePhone::TMobilePhoneNetworkInfoV2 iMMNetworkInfo; RMobilePhone::TMobilePhoneNetworkInfoV2Pckg iMMNetworkInfoPckg; };