--- a/telephonyserverplugins/ctsydispatchlayer/src/csimdispatcher.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/ctsydispatchlayer/src/csimdispatcher.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,1750 +1,1750 @@
-// Copyright (c) 2008-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:
-//
-
-#include "csimdispatcher.h"
-
-#include <ctsy/ltsy/mltsydispatchsiminterface.h>
-#include <ctsy/pluginapi/mmmessagemanagercallback.h>
-#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
-
-#include <ctsy/rmmcustomapi.h>
-#include <ctsy/ltsy/ltsylogger.h>
-#include "ctsydispatcherpanic.h"
-#include "tdispatcherholder.h"
-
-static const TInt KApduInfoLength = 3;
-
-CSimDispatcher::CSimDispatcher(
- MLtsyDispatchFactoryV1& aLtsyFactory,
- MmMessageManagerCallback& aMessageManagerCallback,
- CRequestQueueOneShot& aRequestAsyncOneShot)
- : iLtsyFactoryV1(aLtsyFactory),
- iMessageManagerCallback(aMessageManagerCallback),
- iRequestAsyncOneShot(aRequestAsyncOneShot)
- {
- } // CSimDispatcher::CSimDispatcher
-
-
-CSimDispatcher::~CSimDispatcher()
- {
- } // CSimDispatcher::~CSimDispatcher
-
-
-CSimDispatcher* CSimDispatcher::NewLC(
- MLtsyDispatchFactoryV1& aLtsyFactory,
- MmMessageManagerCallback& aMessageManagerCallback,
- CRequestQueueOneShot& aRequestAsyncOneShot)
- {
- TSYLOGENTRYEXIT;
- CSimDispatcher* self =
- new (ELeave) CSimDispatcher(aLtsyFactory, aMessageManagerCallback, aRequestAsyncOneShot);
- CleanupStack::PushL(self);
- self->ConstructL();
- return self;
- } // CSimDispatcher::NewLC
-
-
-CSimDispatcher* CSimDispatcher::NewL(
- MLtsyDispatchFactoryV1& aLtsyFactory,
- MmMessageManagerCallback& aMessageManagerCallback,
- CRequestQueueOneShot& aRequestAsyncOneShot)
- {
- TSYLOGENTRYEXIT;
- CSimDispatcher* self =
- CSimDispatcher::NewLC(aLtsyFactory, aMessageManagerCallback, aRequestAsyncOneShot);
- CleanupStack::Pop (self);
- return self;
- } // CSimDispatcher::NewL
-
-
-void CSimDispatcher::ConstructL()
-/**
- * Second phase constructor.
- */
- {
- TSYLOGENTRYEXIT;
-
- // Get the Licensee LTSY interfaces related to Sim functionality
- // from the factory
-
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetApnControlListServiceStatus::KLtsyDispatchSimGetApnControlListServiceStatusApiId))
- {
- TAny* getApnControlListServiceStatusInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimGetApnControlListServiceStatus::KLtsyDispatchSimGetApnControlListServiceStatusApiId,
- getApnControlListServiceStatusInterface);
- iLtsyDispatchSimGetApnControlListServiceStatus =
- static_cast<MLtsyDispatchSimGetApnControlListServiceStatus*>(getApnControlListServiceStatusInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimGetApnControlListServiceStatus, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimDeleteApnName::KLtsyDispatchSimDeleteApnNameApiId))
- {
- TAny* deleteApnNameInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimDeleteApnName::KLtsyDispatchSimDeleteApnNameApiId,
- deleteApnNameInterface);
- iLtsyDispatchSimDeleteApnName =
- static_cast<MLtsyDispatchSimDeleteApnName*>(deleteApnNameInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimDeleteApnName, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimEnumerateApnEntries::KLtsyDispatchSimEnumerateApnEntriesApiId))
- {
- TAny* enumerateApnEntriesInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimEnumerateApnEntries::KLtsyDispatchSimEnumerateApnEntriesApiId,
- enumerateApnEntriesInterface);
- iLtsyDispatchSimEnumerateApnEntries =
- static_cast<MLtsyDispatchSimEnumerateApnEntries*>(enumerateApnEntriesInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimEnumerateApnEntries, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimChangeSecurityCode::KLtsyDispatchSimChangeSecurityCodeApiId))
- {
- TAny* changeSecurityCodeInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimChangeSecurityCode::KLtsyDispatchSimChangeSecurityCodeApiId,
- changeSecurityCodeInterface);
- iLtsyDispatchSimChangeSecurityCode =
- static_cast<MLtsyDispatchSimChangeSecurityCode*>(changeSecurityCodeInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimChangeSecurityCode, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetFdnSetting::KLtsyDispatchSimSetFdnSettingApiId))
- {
- TAny* setFdnSettingInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimSetFdnSetting::KLtsyDispatchSimSetFdnSettingApiId,
- setFdnSettingInterface);
- iLtsyDispatchSimSetFdnSetting =
- static_cast<MLtsyDispatchSimSetFdnSetting*>(setFdnSettingInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimSetFdnSetting, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetCustomerServiceProfile::KLtsyDispatchSimGetCustomerServiceProfileApiId))
- {
- TAny* getCustomerServiceProfileInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimGetCustomerServiceProfile::KLtsyDispatchSimGetCustomerServiceProfileApiId,
- getCustomerServiceProfileInterface);
- iLtsyDispatchSimGetCustomerServiceProfile =
- static_cast<MLtsyDispatchSimGetCustomerServiceProfile*>(getCustomerServiceProfileInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimGetCustomerServiceProfile, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSubscriberId::KLtsyDispatchSimGetSubscriberIdApiId))
- {
- TAny* getSubscriberIdInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimGetSubscriberId::KLtsyDispatchSimGetSubscriberIdApiId,
- getSubscriberIdInterface);
- iLtsyDispatchSimGetSubscriberId =
- static_cast<MLtsyDispatchSimGetSubscriberId*>(getSubscriberIdInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimGetSubscriberId, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimAppendApnName::KLtsyDispatchSimAppendApnNameApiId))
- {
- TAny* appendApnNameInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimAppendApnName::KLtsyDispatchSimAppendApnNameApiId,
- appendApnNameInterface);
- iLtsyDispatchSimAppendApnName =
- static_cast<MLtsyDispatchSimAppendApnName*>(appendApnNameInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimAppendApnName, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetActiveIccApplicationType::KLtsyDispatchSimGetActiveIccApplicationTypeApiId))
- {
- TAny* getIccTypeInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimGetActiveIccApplicationType::KLtsyDispatchSimGetActiveIccApplicationTypeApiId,
- getIccTypeInterface);
- iLtsyDispatchSimGetIccType =
- static_cast<MLtsyDispatchSimGetActiveIccApplicationType*>(getIccTypeInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimGetIccType, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetIccMessageWaitingIndicators::KLtsyDispatchSimSetIccMessageWaitingIndicatorsApiId))
- {
- TAny* setIccMessageWaitingIndicatorsInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimSetIccMessageWaitingIndicators::KLtsyDispatchSimSetIccMessageWaitingIndicatorsApiId,
- setIccMessageWaitingIndicatorsInterface);
- iLtsyDispatchSimSetIccMessageWaitingIndicators =
- static_cast<MLtsyDispatchSimSetIccMessageWaitingIndicators*>(setIccMessageWaitingIndicatorsInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimSetIccMessageWaitingIndicators, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetApnControlListServiceStatus::KLtsyDispatchSimSetApnControlListServiceStatusApiId))
- {
- TAny* setApnControlListServiceStatusInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimSetApnControlListServiceStatus::KLtsyDispatchSimSetApnControlListServiceStatusApiId,
- setApnControlListServiceStatusInterface);
- iLtsyDispatchSimSetApnControlListServiceStatus =
- static_cast<MLtsyDispatchSimSetApnControlListServiceStatus*>(setApnControlListServiceStatusInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimSetApnControlListServiceStatus, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetApnName::KLtsyDispatchSimGetApnNameApiId))
- {
- TAny* getApnNameInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimGetApnName::KLtsyDispatchSimGetApnNameApiId,
- getApnNameInterface);
- iLtsyDispatchSimGetApnName =
- static_cast<MLtsyDispatchSimGetApnName*>(getApnNameInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimGetApnName, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimRefreshDone::KLtsyDispatchSimSimRefreshDoneApiId))
- {
- TAny* simRefreshDoneInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimSimRefreshDone::KLtsyDispatchSimSimRefreshDoneApiId,
- simRefreshDoneInterface);
- iLtsyDispatchSimSimRefreshDone =
- static_cast<MLtsyDispatchSimSimRefreshDone*>(simRefreshDoneInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimSimRefreshDone, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetServiceTable::KLtsyDispatchSimGetServiceTableApiId))
- {
- TAny* getServiceTableInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimGetServiceTable::KLtsyDispatchSimGetServiceTableApiId,
- getServiceTableInterface);
- iLtsyDispatchSimGetServiceTable =
- static_cast<MLtsyDispatchSimGetServiceTable*>(getServiceTableInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimGetServiceTable, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetIccMessageWaitingIndicators::KLtsyDispatchSimGetIccMessageWaitingIndicatorsApiId))
- {
- TAny* getIccMessageWaitingIndicatorsInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimGetIccMessageWaitingIndicators::KLtsyDispatchSimGetIccMessageWaitingIndicatorsApiId,
- getIccMessageWaitingIndicatorsInterface);
- iLtsyDispatchSimGetIccMessageWaitingIndicators =
- static_cast<MLtsyDispatchSimGetIccMessageWaitingIndicators*>(getIccMessageWaitingIndicatorsInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimGetIccMessageWaitingIndicators, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimLockActivate::KLtsyDispatchSimSimLockActivateApiId))
- {
- TAny* simLockActivateInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimSimLockActivate::KLtsyDispatchSimSimLockActivateApiId,
- simLockActivateInterface);
- iLtsyDispatchSimSimLockActivate =
- static_cast<MLtsyDispatchSimSimLockActivate*>(simLockActivateInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimSimLockActivate, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimLockDeActivate::KLtsyDispatchSimSimLockDeActivateApiId))
- {
- TAny* simLockDeActivateInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimSimLockDeActivate::KLtsyDispatchSimSimLockDeActivateApiId,
- simLockDeActivateInterface);
- iLtsyDispatchSimSimLockDeActivate =
- static_cast<MLtsyDispatchSimSimLockDeActivate*>(simLockDeActivateInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimSimLockDeActivate, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetAnswerToReset::KLtsyDispatchSimGetAnswerToResetApiId))
- {
- TAny* getAnswerToResetInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimGetAnswerToReset::KLtsyDispatchSimGetAnswerToResetApiId,
- getAnswerToResetInterface);
- iLtsyDispatchSimGetAnswerToReset =
- static_cast<MLtsyDispatchSimGetAnswerToReset*>(getAnswerToResetInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimGetAnswerToReset, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSimCardReaderStatus::KLtsyDispatchSimGetSimCardReaderStatusApiId))
- {
- TAny* getSimCardReaderStatusInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimGetSimCardReaderStatus::KLtsyDispatchSimGetSimCardReaderStatusApiId,
- getSimCardReaderStatusInterface);
- iLtsyDispatchSimGetSimCardReaderStatus =
- static_cast<MLtsyDispatchSimGetSimCardReaderStatus*>(getSimCardReaderStatusInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimGetSimCardReaderStatus, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSimAuthenticationEapSimData::KLtsyDispatchSimGetSimAuthenticationEapSimDataApiId))
- {
- TAny* getSimAuthenticationEapSimDataInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimGetSimAuthenticationEapSimData::KLtsyDispatchSimGetSimAuthenticationEapSimDataApiId,
- getSimAuthenticationEapSimDataInterface);
- iLtsyDispatchSimGetSimAuthenticationEapSimData =
- static_cast<MLtsyDispatchSimGetSimAuthenticationEapSimData*>(getSimAuthenticationEapSimDataInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimGetSimAuthenticationEapSimData, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSimAuthenticationEapAkaData::KLtsyDispatchSimGetSimAuthenticationEapAkaDataApiId))
- {
- TAny* getSimAuthenticationEapAkaDataInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimGetSimAuthenticationEapAkaData::KLtsyDispatchSimGetSimAuthenticationEapAkaDataApiId,
- getSimAuthenticationEapAkaDataInterface);
- iLtsyDispatchSimGetSimAuthenticationEapAkaData =
- static_cast<MLtsyDispatchSimGetSimAuthenticationEapAkaData*>(getSimAuthenticationEapAkaDataInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimGetSimAuthenticationEapAkaData, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimPowerSimOff::KLtsyDispatchSimPowerSimOffApiId))
- {
- TAny* powerSimOffInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimPowerSimOff::KLtsyDispatchSimPowerSimOffApiId,
- powerSimOffInterface);
- iLtsyDispatchSimPowerSimOff =
- static_cast<MLtsyDispatchSimPowerSimOff*>(powerSimOffInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimPowerSimOff, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimPowerSimOn::KLtsyDispatchSimPowerSimOnApiId))
- {
- TAny* powerSimOnInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimPowerSimOn::KLtsyDispatchSimPowerSimOnApiId,
- powerSimOnInterface);
- iLtsyDispatchSimPowerSimOn =
- static_cast<MLtsyDispatchSimPowerSimOn*>(powerSimOnInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimPowerSimOn, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimReadSimFile::KLtsyDispatchSimReadSimFileApiId))
- {
- TAny* readSimFileInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimReadSimFile::KLtsyDispatchSimReadSimFileApiId,
- readSimFileInterface);
- iLtsyDispatchSimReadSimFile =
- static_cast<MLtsyDispatchSimReadSimFile*>(readSimFileInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimReadSimFile, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSendApduRequest::KLtsyDispatchSimSendApduRequestApiId))
- {
- TAny* sendApduRequestInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimSendApduRequest::KLtsyDispatchSimSendApduRequestApiId,
- sendApduRequestInterface);
- iLtsyDispatchSimSendApduRequest =
- static_cast<MLtsyDispatchSimSendApduRequest*>(sendApduRequestInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimSendApduRequest, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSendApduRequestV2::KLtsyDispatchSimSendApduRequestV2ApiId))
- {
- TAny* sendApduRequestV2Interface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimSendApduRequestV2::KLtsyDispatchSimSendApduRequestV2ApiId,
- sendApduRequestV2Interface);
- iLtsyDispatchSimSendApduRequestV2 =
- static_cast<MLtsyDispatchSimSendApduRequestV2*>(sendApduRequestV2Interface);
- __ASSERT_DEBUG(iLtsyDispatchSimSendApduRequestV2, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimWarmReset::KLtsyDispatchSimSimWarmResetApiId))
- {
- TAny* simWarmResetInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimSimWarmReset::KLtsyDispatchSimSimWarmResetApiId,
- simWarmResetInterface);
- iLtsyDispatchSimSimWarmReset =
- static_cast<MLtsyDispatchSimSimWarmReset*>(simWarmResetInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimSimWarmReset, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetSimMessageStatusRead::KLtsyDispatchSimSetSimMessageStatusReadApiId))
- {
- TAny* setSimMessageStatusReadInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSimSetSimMessageStatusRead::KLtsyDispatchSimSetSimMessageStatusReadApiId,
- setSimMessageStatusReadInterface);
- iLtsyDispatchSimSetSimMessageStatusRead =
- static_cast<MLtsyDispatchSimSetSimMessageStatusRead*>(setSimMessageStatusReadInterface);
- __ASSERT_DEBUG(iLtsyDispatchSimSetSimMessageStatusRead, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- } // CSimDispatcher::ConstructL
-
-void CSimDispatcher::SetDispatcherHolder(TDispatcherHolder& aDispatcherHolder)
-/**
- * Set the dispatcher holder.
- *
- * @param aDispatcherHolder Reference to dispatcher holder.
- */
- {
- TSYLOGENTRYEXIT;
-
- iDispatcherHolder = &aDispatcherHolder;
- } // CSimDispatcher::SetDispatcherHolder
-
-TInt CSimDispatcher::DispatchGetApnControlListServiceStatusL()
-/**
- * Unpack data related to EMobilePhoneGetAPNControlListServiceStatus
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- // Call Handle... method in Licensee LTSY
- if (iLtsyDispatchSimGetApnControlListServiceStatus)
- {
- ret = iLtsyDispatchSimGetApnControlListServiceStatus->HandleGetApnControlListServiceStatusReqL();
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchGetApnControlListServiceStatusL
-
-TInt CSimDispatcher::DispatchDeleteApnNameL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMobilePhoneDeleteAPNName
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Call HandleDeleteApnNameReqL method in Licensee LTSY
- if (iLtsyDispatchSimDeleteApnName)
- {
- TUint32 index;
- aDataPackage->UnPackData(index);
- ret = iLtsyDispatchSimDeleteApnName->HandleDeleteApnNameReqL(index);
- }
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchDeleteApnNameL
-
-TInt CSimDispatcher::DispatchEnumerateApnEntriesL()
-/**
- * Unpack data related to EMobilePhoneEnumerateAPNEntries
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- // Call Handle... method in Licensee LTSY
- if (iLtsyDispatchSimEnumerateApnEntries)
- {
- ret = iLtsyDispatchSimEnumerateApnEntries->HandleEnumerateApnEntriesReqL();
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchEnumerateApnEntriesL
-
-TInt CSimDispatcher::DispatchChangeSecurityCodeL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMobilePhoneChangeSecurityCode
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Call Handle... method in Licensee LTSY
- if(iLtsyDispatchSimChangeSecurityCode)
- {
- RMobilePhone::TMobilePhoneSecurityCode* secCode = NULL;
- RMobilePhone::TMobilePhonePasswordChangeV1* passwds = NULL;
- aDataPackage->UnPackData(&secCode, &passwds);
-
- __ASSERT_DEBUG(secCode, CtsyDispatcherPanic(EInvalidNullPtr));
- __ASSERT_DEBUG(passwds, CtsyDispatcherPanic(EInvalidNullPtr));
-
- ret = iLtsyDispatchSimChangeSecurityCode->HandleChangeSecurityCodeReqL(*secCode, *passwds);
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchChangeSecurityCodeL
-
-TInt CSimDispatcher::DispatchSetFdnSettingL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMobilePhoneSetFdnSetting
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Call Handle... method in Licensee LTSY
- if (iLtsyDispatchSimSetFdnSetting)
- {
- RMobilePhone::TMobilePhoneFdnSetting fdnSetting;
- aDataPackage->UnPackData(fdnSetting);
- ret = iLtsyDispatchSimSetFdnSetting->HandleSetFdnSettingReqL(fdnSetting);
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchSetFdnSettingL
-
-TInt CSimDispatcher::DispatchGetCustomerServiceProfileL()
-/**
- * Unpack data related to EMobilePhoneGetCustomerServiceProfile
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- // Call Handle... method in Licensee LTSY
- if (iLtsyDispatchSimGetCustomerServiceProfile)
- {
- ret = iLtsyDispatchSimGetCustomerServiceProfile->HandleGetCustomerServiceProfileReqL();
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchGetCustomerServiceProfileL
-
-TInt CSimDispatcher::DispatchGetSubscriberIdL()
-/**
- * Unpack data related to EMobilePhoneGetSubscriberId
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- // Call Handle... method in Licensee LTSY
- if (iLtsyDispatchSimGetSubscriberId)
- {
- ret = iLtsyDispatchSimGetSubscriberId->HandleGetSubscriberIdReqL();
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchGetSubscriberIdL
-
-TInt CSimDispatcher::DispatchAppendApnNameL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMobilePhoneAppendAPNName
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Call HandleAppendApnNameReqL method in Licensee LTSY
- if (iLtsyDispatchSimAppendApnName)
- {
- RMobilePhone::TAPNEntryV3* entry = NULL;
- aDataPackage->UnPackData(&entry);
-
- __ASSERT_DEBUG(entry, CtsyDispatcherPanic(EInvalidNullPtr));
-
- ret = iLtsyDispatchSimAppendApnName->HandleAppendApnNameReqL(*entry);
- }
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchAppendApnNameL
-
-TInt CSimDispatcher::DispatchGetIccTypeL()
-/**
- * Unpack data related to EMmTsySimGetICCType
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- // Call Handle... method in Licensee LTSY
- if (iLtsyDispatchSimGetIccType)
- {
- ret = iLtsyDispatchSimGetIccType->HandleGetActiveIccApplicationTypeReqL();
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchGetIccTypeL
-
-TInt CSimDispatcher::DispatchSetIccMessageWaitingIndicatorsL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMobilePhoneSetIccMessageWaitingIndicators
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Call HandleSetIccMessageWaitingIndicatorsReqL method in Licensee LTSY
- if (iLtsyDispatchSimSetIccMessageWaitingIndicators)
- {
- RMobilePhone::TMobilePhoneMessageWaitingV1* indicators = NULL;
- aDataPackage->UnPackData(&indicators);
-
- __ASSERT_DEBUG(indicators, CtsyDispatcherPanic(EInvalidNullPtr));
-
- ret = iLtsyDispatchSimSetIccMessageWaitingIndicators->HandleSetIccMessageWaitingIndicatorsReqL(*indicators);
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchSetIccMessageWaitingIndicatorsL
-
-TInt CSimDispatcher::DispatchSetApnControlListServiceStatusL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMobilePhoneSetAPNControlListServiceStatus
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Call HandleSetApnControlListServiceStatusReqL method in Licensee LTSY
- if (iLtsyDispatchSimSetApnControlListServiceStatus)
- {
- RMobilePhone::TAPNControlListServiceStatus status;
- aDataPackage->UnPackData(status);
- ret = iLtsyDispatchSimSetApnControlListServiceStatus->HandleSetApnControlListServiceStatusReqL(status);
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchSetApnControlListServiceStatusL
-
-TInt CSimDispatcher::DispatchGetApnNameL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMobilePhoneGetAPNname
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Call HandleGetApnNameReqL method in Licensee LTSY
- if (iLtsyDispatchSimGetApnName)
- {
- TUint32 index;
- aDataPackage->UnPackData(index);
- ret = iLtsyDispatchSimGetApnName->HandleGetApnNameReqL(index);
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchGetApnNameL
-
-TInt CSimDispatcher::DispatchSimRefreshDoneL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMmTsySimRefreshDoneIPC
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Call Handle... method in Licensee LTSY
- if (iLtsyDispatchSimSimRefreshDone)
- {
- //packed as a TBool in the CTSY really a TInt containing KErrXXX
- TBool error;
- aDataPackage->UnPackData(error);
-
- ret = iLtsyDispatchSimSimRefreshDone->HandleSimRefreshDoneReqL(static_cast<TInt>(error));
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchSimRefreshDoneL
-
-TInt CSimDispatcher::DispatchGetServiceTableL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to RMobilePhone::GetServiceTable
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Call Handle... method in Licensee LTSY
- if (iLtsyDispatchSimGetServiceTable)
- {
- RMobilePhone::TMobilePhoneServiceTable serviceTable;
- aDataPackage->UnPackData(serviceTable);
- ret = iLtsyDispatchSimGetServiceTable->HandleGetServiceTableReqL(serviceTable);
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchGetServiceTableL
-
-TInt CSimDispatcher::DispatchGetIccMessageWaitingIndicatorsL()
-/**
- * Unpack data related to EMobilePhoneGetIccMessageWaitingIndicators
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- // Call Handle... method in Licensee LTSY
- if (iLtsyDispatchSimGetIccMessageWaitingIndicators)
- {
- ret = iLtsyDispatchSimGetIccMessageWaitingIndicators->HandleGetIccMessageWaitingIndicatorsReqL();
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchGetIccMessageWaitingIndicatorsL
-
-TInt CSimDispatcher::DispatchSimLockActivateL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to ECustomSimLockActivateIPC
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Can Handle... method in Licensee LTSY
- if (iLtsyDispatchSimSimLockActivate)
- {
- RMmCustomAPI::TSimLockPassword* password = NULL;
- RMmCustomAPI::TLockNumber* lockNumber = NULL;
- aDataPackage->UnPackData(&password, &lockNumber);
- __ASSERT_DEBUG(password, CtsyDispatcherPanic(EInvalidNullPtr));
- __ASSERT_DEBUG(lockNumber, CtsyDispatcherPanic(EInvalidNullPtr));
-
- ret = iLtsyDispatchSimSimLockActivate->HandleSimLockActivateReqL(*password, *lockNumber);
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchSimLockActivateL
-
-TInt CSimDispatcher::DispatchSimLockDeActivateL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to ECustomSimLockDeActivateIPC
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Can Handle... method in Licensee LTSY
- if (iLtsyDispatchSimSimLockDeActivate)
- {
- RMmCustomAPI::TSimLockPassword* password = NULL;
- RMmCustomAPI::TLockNumber* lockNumber = NULL;
- aDataPackage->UnPackData(&password, &lockNumber);
- __ASSERT_DEBUG(password, CtsyDispatcherPanic(EInvalidNullPtr));
- __ASSERT_DEBUG(lockNumber, CtsyDispatcherPanic(EInvalidNullPtr));
-
- ret = iLtsyDispatchSimSimLockDeActivate->HandleSimLockDeActivateReqL(*password, *lockNumber);
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchSimLockDeActivateL
-
-TInt CSimDispatcher::DispatchGetAnswerToResetL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to ECustomGetATRIPC
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- if (iLtsyDispatchSimGetAnswerToReset)
- {
- TDes8* answerToReset = NULL;
- aDataPackage->UnPackData(answerToReset);
- __ASSERT_DEBUG(answerToReset, CtsyDispatcherPanic(EInvalidNullPtr));
-
- ret = iLtsyDispatchSimGetAnswerToReset->HandleGetAnswerToResetReqL(*answerToReset);
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchGetAnswerToResetL
-
-TInt CSimDispatcher::DispatchGetSimCardReaderStatusL()
-/**
- * Pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- if (iLtsyDispatchSimGetSimCardReaderStatus)
- {
- ret = iLtsyDispatchSimGetSimCardReaderStatus->HandleGetSimCardReaderStatusReqL();
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchGetSimCardReaderStatusL
-
-TInt CSimDispatcher::DispatchGetSimAuthenticationDataL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to ECustomGetSimAuthenticationDataIPC
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- RMmCustomAPI::TSimAuthenticationBase* basePtr = NULL;
- TInt* rfStateInfo = 0;
- aDataPackage->UnPackData(&basePtr, &rfStateInfo);
- __ASSERT_DEBUG(basePtr, CtsyDispatcherPanic(EInvalidNullPtr));
-
- if(basePtr->ExtensionId() == RMmCustomAPI::TSimAuthenticationBase::EEapSim)
- {
- RMmCustomAPI::TSimAuthenticationEapSim* eapSim = static_cast<RMmCustomAPI::TSimAuthenticationEapSim*> (basePtr);
-
- if (iLtsyDispatchSimGetSimAuthenticationEapSimData)
- {
- ret = iLtsyDispatchSimGetSimAuthenticationEapSimData->HandleGetSimAuthenticationEapSimDataReqL(eapSim->iRandomParameters,
- *rfStateInfo);
- }
- }
- else
- if(basePtr->ExtensionId() == RMmCustomAPI::TSimAuthenticationBase::EEapAka)
- {
- RMmCustomAPI::TSimAuthenticationEapAka* eapAka = static_cast<RMmCustomAPI::TSimAuthenticationEapAka*>(basePtr);
-
- if (iLtsyDispatchSimGetSimAuthenticationEapAkaData)
- {
- ret = iLtsyDispatchSimGetSimAuthenticationEapAkaData->HandleGetSimAuthenticationEapAkaDataReqL(eapAka->iRandomParameters,
- eapAka->iAUTN,
- *rfStateInfo);
- }
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchGetSimAuthenticationDataL
-
-TInt CSimDispatcher::DispatchPowerSimOffL()
-/**
- * Pass ECustomPowerSimOffIPC request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- // Can Handle... method in Licensee LTSY
- if (iLtsyDispatchSimPowerSimOff)
- {
- ret = iLtsyDispatchSimPowerSimOff->HandlePowerSimOffReqL();
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchPowerSimOffL
-
-TInt CSimDispatcher::DispatchPowerSimOnL()
-/**
- * Pass ECustomPowerSimOnIPC request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- // Can Handle... method in Licensee LTSY
- if (iLtsyDispatchSimPowerSimOn)
- {
- ret = iLtsyDispatchSimPowerSimOn->HandlePowerSimOnReqL();
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchPowerSimOnL
-
-TInt CSimDispatcher::DispatchReadSimFileL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to ECustomReadSimFileIPC
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Can Handle... method in Licensee LTSY
- if (iLtsyDispatchSimReadSimFile)
- {
-
- RMmCustomAPI::TSimFileInfo* simFileInfo = NULL;
- aDataPackage->UnPackData(&simFileInfo);
- __ASSERT_DEBUG(simFileInfo, CtsyDispatcherPanic(EInvalidNullPtr));
-
- ret = iLtsyDispatchSimReadSimFile->HandleReadSimFileReqL(simFileInfo->iPath,simFileInfo->iOffSet,simFileInfo->iSize);
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchReadSimFileL
-
-TInt CSimDispatcher::DispatchSendApduRequestL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to ECustomSendAPDUReqIPC
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Can Handle... method in Licensee LTSY
- if (iLtsyDispatchSimSendApduRequest)
- {
- RMmCustomAPI::TApdu* apduReq = NULL;
- aDataPackage->UnPackData(&apduReq);
-
- __ASSERT_DEBUG(apduReq, CtsyDispatcherPanic(EInvalidNullPtr));
- //will cause a ETel panic 1 if either iInfo or iData is missing
- __ASSERT_DEBUG(apduReq->iInfo, CtsyDispatcherPanic(EInvalidNullPtr));
- __ASSERT_DEBUG(apduReq->iData, CtsyDispatcherPanic(EInvalidNullPtr));
- __ASSERT_DEBUG(apduReq->iInfo->Length() >= KApduInfoLength, CtsyDispatcherPanic(EBadLength));
-
- const TDesC8& info = *(apduReq->iInfo);
-
- ret = iLtsyDispatchSimSendApduRequest->HandleSimSendApduRequestReqL(info[0],info[1],info[2],*(apduReq->iData));
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchSendApduRequestL
-
-TInt CSimDispatcher::DispatchSendApduRequestV2L(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to ECustomSendAPDUReqV2IPC
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Can Handle... method in Licensee LTSY
- if (iLtsyDispatchSimSendApduRequestV2)
- {
-
- RMmCustomAPI::TApduParameters* apduParameters = NULL;
- aDataPackage->UnPackData(apduParameters);
- __ASSERT_DEBUG(apduParameters, CtsyDispatcherPanic(EInvalidNullPtr));
-
- ret = iLtsyDispatchSimSendApduRequestV2->HandleSimSendApduRequestV2ReqL(apduParameters->iCardReaderId,apduParameters->iCmdData);
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchSendApduRequestV2L
-
-TInt CSimDispatcher::DispatchSimWarmResetL()
-/**
- * Pass ECustomSimWarmResetIPC request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- // Can Handle... method in Licensee LTSY
- if (iLtsyDispatchSimSimWarmReset)
- {
- ret = iLtsyDispatchSimSimWarmReset->HandleSimWarmResetReqL();
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchSimWarmResetL
-
-TInt CSimDispatcher::DispatchSetSimMessageStatusReadL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to ECustomSetSimMessageStatusReadIPC
- * and pass request on to Licensee LTSY.
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- TInt ret = KErrNotSupported;
-
- __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Unpack data for this request here if required.
- TTime* timestamp = NULL;
- TInt* timezone = NULL;
- aDataPackage->UnPackData(×tamp, &timezone);
-
- if (!timestamp || !timezone)
- {
- ret = KErrCorrupt;
- }
- // Can Handle... method in Licensee LTSY
- else if (iLtsyDispatchSimSetSimMessageStatusRead)
- {
- ret = iLtsyDispatchSimSetSimMessageStatusRead->HandleSetSimMessageStatusReadReqL(*timestamp,*timezone);
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSimDispatcher::DispatchSetSimMessageStatusReadL
-
-//
-// Callback handlers follow
-//
-
-
-
-void CSimDispatcher::CallbackRefreshSimFiles(TInt aError, TUint16 aRefreshFileList)
-/**
- * Callback function to be used by the request to complete.
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param @param aRefreshFileList Bitmask containing list of files to refresh. The list of possible files is specified in TCacheFileTypes.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d, aRefreshFileList=%d"), aError, aRefreshFileList);
-
- CMmDataPackage dataPackage;
- dataPackage.PackData(&aRefreshFileList);
-
- iMessageManagerCallback.Complete(EMmTsySimRefreshNowIPC, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackRefreshSimFiles
-
-void CSimDispatcher::CallbackNotifyIccMessageWaitingIndicatorsChange(TInt aError,
- const RMobilePhone::TMobilePhoneMessageWaitingV1& aIndicators)
-/**
- * Callback function to be used by the request to complete.
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aIndicators The ICC message waiting indicators to return.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- // Pack the data to return to the Common TSY
- CMmDataPackage dataPackage;
- dataPackage.PackData(const_cast<RMobilePhone::TMobilePhoneMessageWaitingV1*>(&aIndicators));
-
- iMessageManagerCallback.Complete(EMobilePhoneNotifyIccMessageWaitingIndicatorsChange, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackNotifyIccMessageWaitingIndicatorsChange
-
-void CSimDispatcher::CallbackNotifyApnListChange(TInt aError)
-/**
- * Callback function to be used by the request to complete.
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(EMobilePhoneNotifyAPNListChanged, aError);
-
- } // CSimDispatcher::CallbackNotifyApnListChange
-
-void CSimDispatcher::CallbackNotifyApnControlListServiceStatusChange(TInt aError,
- RMobilePhone::TAPNControlListServiceStatus aStatus)
-/**
- * Callback function to be used by the request to complete.
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aStatus The new service status to return.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- // Pack the data to return to the Common TSY
- CMmDataPackage dataPackage;
- dataPackage.PackData(&aStatus);
-
- iMessageManagerCallback.Complete(EMobilePhoneNotifyAPNControlListServiceStatusChange, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackNotifyApnControlListServiceStatusChange
-
-void CSimDispatcher::CallbackGetApnControlListServiceStatus(TInt aError,
- RMobilePhone::TAPNControlListServiceStatus aStatus)
-/**
- * Callback function to be used by the request to complete.
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aStatus The APN Control List Service status stored on the USIM.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- // Pack the data to return to the Common TSY
- CMmDataPackage dataPackage;
- dataPackage.PackData(&aStatus);
-
- iMessageManagerCallback.Complete(EMobilePhoneGetAPNControlListServiceStatus, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackGetApnControlListServiceStatus
-
-void CSimDispatcher::CallbackDeleteApnName(TInt aError)
-/**
- * Callback function to be used by the request to complete.
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(EMobilePhoneDeleteAPNName, aError);
-
- } // CSimDispatcher::CallbackDeleteApnName
-
-void CSimDispatcher::CallbackEnumerateApnEntries(TInt aError,
- TUint32 aNumEntries)
-/**
- * Callback function to be used by the request to complete.
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aNumEntries The total number of available entries.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d, aNumEntries=%d"), aError, aNumEntries);
-
- // Pack the data to return to the Common TSY
-
- CMmDataPackage dataPackage;
- dataPackage.PackData(&aNumEntries);
-
- iMessageManagerCallback.Complete(EMobilePhoneEnumerateAPNEntries, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackEnumerateApnEntries
-
-void CSimDispatcher::CallbackChangeSecurityCode(TInt aError)
-/**
- * Callback function to be used by the request to complete the EMobilePhoneChangeSecurityCode
- * request back to the Common TSY.
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- // Pack the data to return to the Common TSY
-
- iMessageManagerCallback.Complete(EMobilePhoneChangeSecurityCode, aError);
- } // CSimDispatcher::CallbackChangeSecurityCode
-
-void CSimDispatcher::CallbackSetFdnSetting(TInt aError)
-/**
- * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimSetFdnSettingComp().
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(EMobilePhoneSetFdnSetting, aError);
-
- } // CSimDispatcher::CallbackSetFdnSetting
-
-void CSimDispatcher::CallbackGetCustomerServiceProfile(TInt aError,
- const RMobilePhone::TMobilePhoneCspFileV1& aCsp)
-/**
- * Callback function to be used by the request to complete.
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aCsp The Customer Service Profile file that is stored on the SIM.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- // Pack the data to return to the Common TSY
- CMmDataPackage dataPackage;
- dataPackage.PackData(const_cast<RMobilePhone::TMobilePhoneCspFileV1*>(&aCsp));
-
- iMessageManagerCallback.Complete(EMobilePhoneGetCustomerServiceProfile, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackGetCustomerServiceProfile
-
-void CSimDispatcher::CallbackGetSubscriberId(TInt aError,
- const TDesC8& aId)
-/**
- * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimGetSubscriberIdComp().
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aId The subscriber id to be returned.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
- __ASSERT_DEBUG(aId.Length() <= RMobilePhone::KIMSISize, CtsyDispatcherPanic(EBadLength));
-
- //the CTSY unpack ad does a TDesC copy to a TBuf8 of size KGsmUssdDataSize
- TPtrC8 imsi = aId.Left(RMobilePhone::KIMSISize);
-
- // Pack the data to return to the Common TSY
- CMmDataPackage dataPackage;
- dataPackage.PackData(&imsi);
-
- iMessageManagerCallback.Complete(EMobilePhoneGetSubscriberId, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackGetSubscriberId
-
-void CSimDispatcher::CallbackAppendApnName(TInt aError)
-/**
- * Callback function to be used by the request to complete.
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(EMobilePhoneAppendAPNName, aError);
-
- } // CSimDispatcher::CallbackAppendApnName
-
-void CSimDispatcher::CallbackGetActiveIccApplicationType(TInt aError, MLtsyDispatchSimGetActiveIccApplicationType::TIccType aIccType)
-/**
- * Callback function to be used by the request to complete.
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aIccType active application type
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d, aIccType=%d"), aError, aIccType);
-
- // Pack the data to return to the Common TSY
- CMmDataPackage dataPackage;
-
- //effectively a static cast from MLtsyDispatchSimGetActiveIccApplicationType::TIccType to
- //a CMmPhoneGsmWcdmaExt::TICCType when the data is unpacked.
- //This is only correct if the two enums match, unfortunately CMmPhoneGsmWcdmaExt::TICCType is
- //not an exported header file.
- dataPackage.PackData(&aIccType);
-
- iMessageManagerCallback.Complete(EMmTsySimGetICCType, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackGetIccType
-
-void CSimDispatcher::CallbackSetIccMessageWaitingIndicators(TInt aError)
-/**
- * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimSetIccMessageWaitingIndicatorsComp().
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(EMobilePhoneSetIccMessageWaitingIndicators, aError);
-
- } // CSimDispatcher::CallbackSetIccMessageWaitingIndicators
-
-void CSimDispatcher::CallbackSetApnControlListServiceStatus(TInt aError)
-/**
- * Callback function to be used by the request to complete.
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(EMobilePhoneSetAPNControlListServiceStatus, aError);
-
- } // CSimDispatcher::CallbackSetApnControlListServiceStatus
-
-void CSimDispatcher::CallbackGetApnName(TInt aError,
- const RMobilePhone::TAPNEntryV3& aEntry)
-/**
- * Callback function to be used by the request to complete.
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aEntry The Access Point Name (APN) entry.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- // Pack the data to return to the Common TSY
- CMmDataPackage dataPackage;
- dataPackage.PackData(const_cast<RMobilePhone::TAPNEntryV3*>(&aEntry));
-
- iMessageManagerCallback.Complete(EMobilePhoneGetAPNname, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackGetApnName
-
-void CSimDispatcher::CallbackGetServiceTable(
- TInt aError,
- const RMobilePhone::TMobilePhoneServiceTableV1& aServiceTable)
-/**
- * Packages the data returned by the Licensee LTSY and completes the
- * RMobilePhone::GetServiceTable back to the Common TSY.
- *
- * @param aServiceTable The service table data to return back to Common TSY.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- // Package up data to return to Common TSY
- CMmDataPackage dataPackage;
- dataPackage.PackData(
- const_cast<RMobilePhone::TMobilePhoneServiceTableV1*>(&aServiceTable));
-
- // Now complete the actual get request
- iMessageManagerCallback.Complete(EMobilePhoneGetServiceTable, &dataPackage, aError);
- } // CSimDispatcher::CallbackGetServiceTable
-
-void CSimDispatcher::CallbackGetIccMessageWaitingIndicators(
- TInt aError, const RMobilePhone::TMobilePhoneMessageWaitingV1& aMessageWaitingIndicator)
-/**
- * Packages the data returned by the Licensee LTSY and completes the
- * RMobilePhone::GetIccMessageWaitingIndicators back to the Common TSY.
- *
- * @param aError The error code to complete back.
- * @param aMessageWaitingIndicator The message waiting indicators to return.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- // Package up data to return to Common TSY
- CMmDataPackage dataPackage;
- dataPackage.PackData(
- const_cast<RMobilePhone::TMobilePhoneMessageWaitingV1*>
- (&aMessageWaitingIndicator));
-
- // Now complete the actual get request
- iMessageManagerCallback.Complete(
- EMobilePhoneGetIccMessageWaitingIndicators, &dataPackage, aError);
-
- } // CPhoneDispatcher::CallbackGetIccMessageWaitingIndicators
-
-void CSimDispatcher::CallbackNotifySimCardStatus(TInt aError,
- RMmCustomAPI::TSIMCardStatus aSimCardStatus)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSimNotifySimCardStatusInd().
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aSimCardStatus whether the sim card is enabled/disabled etc.
- * @see RMmCustomAPI::NotifySimCardStatus()
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- // Pack the data to return to the Common TSY
- CMmDataPackage dataPackage;
- dataPackage.PackData(&aSimCardStatus);
-
- iMessageManagerCallback.Complete(ECustomNotifySimCardStatusIPC, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackNotifySimCardStatus
-
-void CSimDispatcher::CallbackSimLockActivate(TInt aError)
-/**
- * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimSimLockActivateComp().
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
- iMessageManagerCallback.Complete(ECustomSimLockActivateIPC, aError);
-
- } // CSimDispatcher::CallbackSimLockActivate
-
-void CSimDispatcher::CallbackSimLockDeActivate(TInt aError)
-/**
- * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimSimLockDeActivateComp().
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
- iMessageManagerCallback.Complete(ECustomSimLockDeActivateIPC, aError);
-
- } // CSimDispatcher::CallbackSimLockDeActivate
-
-void CSimDispatcher::CallbackGetAnswerToReset(TInt aError, const TDesC8& aAnswerToReset)
-/**
- * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimGetAnswerToResetComp().
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aAnswerToReset The answer to reset.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d, aAnswerToReset=%S"), aError, &aAnswerToReset);
-
- CMmDataPackage dataPackage;
- dataPackage.PackData(&const_cast<TDesC8&>(aAnswerToReset));
-
- iMessageManagerCallback.Complete(ECustomGetATRIPC, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackGetAnswerToReset
-
-void CSimDispatcher::CallbackGetSimCardReaderStatus(TInt aError, TUint8 aSimCardReaderStatus)
-/**
- * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimGetSimCardReaderStatusComp().
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aSimCardReaderStatus The sim card reader's status.
- * Bits:
- * 1-3 Identity of card reader,
- * 4 0=Card reader is not removable,
- * 1=Card reader is removable,
- * 5 0=Card reader is not present,
- * 1=Card reader is present,
- * 6 0=Card reader present is not ID-1 size,
- * 1=Card reader present is ID-1 size,
- * 7 0=No card present,
- * 1=Card is present in reader,
- * 8 0=No card powered,
- * 1=Card in reader is powered.
- *
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d, aSimCardReaderStatus=%d"), aError, aSimCardReaderStatus);
-
- TBuf8<1> status;
- status.Append(aSimCardReaderStatus);
-
- CMmDataPackage dataPackage;
- dataPackage.PackData(&status);
-
- iMessageManagerCallback.Complete(ECustomGetSimCardReaderStatusIPC, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackGetSimCardReaderStatus
-
-void CSimDispatcher::CallbackGetSimAuthenticationData(
- TInt aError, const TDesC8& aSignedResponse, const TDesC8& aCipheringKey)
-/**
- * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimGetSimAuthenticationDataComp().
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aSignedResponse The signed response. The length should not be greater than RMmCustomAPI::KMaxParametersLength.
- * @param aCipheringKey The ciphering key. The length should not be greater than RMmCustomAPI::KMaxParametersLength.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d, aSignedResponse=%S, aCipheringKey=%S"), aError, &aSignedResponse, &aCipheringKey);
-
- RMmCustomAPI::TSimAuthenticationEapSim authenticationEapSim;
- TInt error = aError;
- if ( error == KErrNone)
- {
- if (RMmCustomAPI::KMaxParametersLength < aSignedResponse.Length()
- || RMmCustomAPI::KMaxParametersLength < aCipheringKey.Length())
- {
- error = KErrCorrupt;
- }
- else
- {
- authenticationEapSim.iSRES.Copy(aSignedResponse);
- authenticationEapSim.iKC.Copy(aCipheringKey);
- }
- }
-
- CMmDataPackage dataPackage;
- dataPackage.PackData(&authenticationEapSim);
-
- iMessageManagerCallback.Complete(ECustomGetSimAuthenticationDataIPC, &dataPackage, error);
-
- } // CSimDispatcher::CallbackGetSimAuthenticationData
-
-void CSimDispatcher::CallbackGetSimAuthenticationData(
- TInt aError, const TDesC8& aResponse, const TDesC8& aCipheringKey, const TDesC8& aIntegrityKey, const TDesC8& aAUTS)
-/**
- * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimGetSimAuthenticationDataComp().
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aResponse The response. The length should not be greater than RMmCustomAPI::KMaxParametersLength.
- * @param aCipheringKey The ciphering key. The length should not be greater than RMmCustomAPI::KMaxParametersLength.
- * @param aIntegrityKey The integrity key. The length should not be greater than RMmCustomAPI::KMaxParametersLength.
- * @param aAUTS The AUTS value. A value generated by the peer upon experiencing a synchronization failure, 112 bits.
- * This is needed only in error case. The length should not be greater than RMmCustomAPI::KMaxParametersLength.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d, aResponse=%S, aCipheringKey=%S, aIntegrityKey=%S, aAUTS=%S"), aError, &aResponse, &aCipheringKey, &aIntegrityKey, &aAUTS);
-
- RMmCustomAPI::TSimAuthenticationEapAka authenticationEapAka;
- TInt error = aError;
-
- if ( error == KErrNone)
- {
- if (RMmCustomAPI::KMaxParametersLength < aResponse.Length()
- || RMmCustomAPI::KMaxParametersLength < aCipheringKey.Length()
- || RMmCustomAPI::KMaxParametersLength < aIntegrityKey.Length())
- {
- error = KErrCorrupt;
- }
- else
- {
- authenticationEapAka.iRES.Copy(aResponse);
- authenticationEapAka.iCK.Copy(aCipheringKey);
- authenticationEapAka.iIK.Copy(aIntegrityKey);
- }
- }
- else
- {
- if (RMmCustomAPI::KMaxParametersLength < aAUTS.Length())
- {
- error = KErrCorrupt;
- }
- else
- {
- authenticationEapAka.iAUTS.Copy(aAUTS);
- }
- }
-
- CMmDataPackage dataPackage;
- dataPackage.PackData(&authenticationEapAka);
-
- iMessageManagerCallback.Complete(ECustomGetSimAuthenticationDataIPC, &dataPackage, error);
-
- } // CSimDispatcher::CallbackGetSimAuthenticationData
-
-void CSimDispatcher::CallbackPowerSimOff(TInt aError)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSimPowerSimOffComp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(ECustomPowerSimOffIPC, aError);
-
- } // CSimDispatcher::CallbackPowerSimOff
-
-void CSimDispatcher::CallbackPowerSimOn(TInt aError)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSimPowerSimOnComp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(ECustomPowerSimOnIPC, aError);
-
- } // CSimDispatcher::CallbackPowerSimOn
-
-void CSimDispatcher::CallbackReadSimFile(TInt aError, const TDesC8& aResponseBytes)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSimReadSimFileComp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aResponseBytes The bytes read from the SIM.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- //local need so will compile for ARM
- TDesC8* responseBytesPtr = &const_cast<TDesC8&>(aResponseBytes);
-
- CMmDataPackage dataPackage;
- dataPackage.PackData(&responseBytesPtr);
-
- iMessageManagerCallback.Complete(ECustomReadSimFileIPC, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackReadSimFile
-
-void CSimDispatcher::CallbackSendApduRequest(
- TInt aError, TUint8 aServiceType, TUint8 aCardReaderNumber, TUint8 aApplicationType, const TDesC8& aResponseData)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSimSendApduRequestComp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aServiceType The value for the service type of the request to be returned to the client.
- * @param aCardReaderNumber The value for the card reader number of the request to be returned to the client.
- * @param aApplicationType The value for the application type of the request to be returned to the client.
- * @param aResponseData The transparent response data conveyed from the baseband to be returned to the client.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d,aServiceType=%d,aCardReaderNumber=%d,aApplicationType=%d"), aError, aServiceType, aCardReaderNumber, aApplicationType);
-
- TBuf8<KApduInfoLength> info;
- info.Append(aServiceType);
- info.Append(aCardReaderNumber);
- info.Append(aApplicationType);
-
- TPtrC8 infoPtr(info);
- TPtrC8 responsePtr(aResponseData);
-
- CMmDataPackage dataPackage;
- dataPackage.PackData(&infoPtr,&responsePtr);
-
- iMessageManagerCallback.Complete(ECustomSendAPDUReqIPC, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackSendApduRequest
-
-void CSimDispatcher::CallbackSendApduRequestV2(TInt aError, const TDesC8& aResponseData)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSimSendApduRequestV2Comp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aResponseData The transparent response data conveyed from the baseband to be returned to the client.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- CMmDataPackage dataPackage;
- dataPackage.PackData(&const_cast<TDesC8&>(aResponseData));
-
- iMessageManagerCallback.Complete(ECustomSendAPDUReqV2IPC, &dataPackage, aError);
-
- } // CSimDispatcher::CallbackSendApduRequestV2
-
-void CSimDispatcher::CallbackSimWarmReset(TInt aError)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSimSimWarmResetComp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(ECustomSimWarmResetIPC, aError);
-
- } // CSimDispatcher::CallbackSimWarmReset
-
-void CSimDispatcher::CallbackSetSimMessageStatusRead(TInt aError)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSimSetMessageStatusReadComp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(ECustomSetSimMessageStatusReadIPC, aError);
-
- } // CSimDispatcher::CallbackSetSimMessageStatusRead
-
-void CSimDispatcher::CallbackSync(CRequestQueueOneShot::TIpcDataPackage& aIpcDataPackage)
-/**
- * Part of the MDispatcherCallback interface. Used to complete requests handled
- * synchronously by the Licensee LTSY asynchronously back to the Common TSY.
- *
- * @param aIpcDataPackage Package encapsulating the request.
- *
- * @see MDispatcherCallback::CallbackSync()
- */
- {
- TSYLOGENTRYEXIT;
-
- switch (aIpcDataPackage.iIpc)
- {
-
- default:
- LOG(_L8("WARNING: CSimDispatcher::CallbackSync unhandled IPC=%d"), aIpcDataPackage.iIpc);
- __ASSERT_DEBUG(NULL, CtsyDispatcherPanic(EUnhandledCtsyIpc));
- break;
- } // switch (aIpcDataPackage.iIpc)
-
- } // CSimDispatcher::CallbackSync
-
-
-
+// Copyright (c) 2008-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:
+//
+
+#include "csimdispatcher.h"
+
+#include <ctsy/ltsy/mltsydispatchsiminterface.h>
+#include <ctsy/pluginapi/mmmessagemanagercallback.h>
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+
+#include <ctsy/rmmcustomapi.h>
+#include <ctsy/ltsy/ltsylogger.h>
+#include "ctsydispatcherpanic.h"
+#include "tdispatcherholder.h"
+
+static const TInt KApduInfoLength = 3;
+
+CSimDispatcher::CSimDispatcher(
+ MLtsyDispatchFactoryV1& aLtsyFactory,
+ MmMessageManagerCallback& aMessageManagerCallback,
+ CRequestQueueOneShot& aRequestAsyncOneShot)
+ : iLtsyFactoryV1(aLtsyFactory),
+ iMessageManagerCallback(aMessageManagerCallback),
+ iRequestAsyncOneShot(aRequestAsyncOneShot)
+ {
+ } // CSimDispatcher::CSimDispatcher
+
+
+CSimDispatcher::~CSimDispatcher()
+ {
+ } // CSimDispatcher::~CSimDispatcher
+
+
+CSimDispatcher* CSimDispatcher::NewLC(
+ MLtsyDispatchFactoryV1& aLtsyFactory,
+ MmMessageManagerCallback& aMessageManagerCallback,
+ CRequestQueueOneShot& aRequestAsyncOneShot)
+ {
+ TSYLOGENTRYEXIT;
+ CSimDispatcher* self =
+ new (ELeave) CSimDispatcher(aLtsyFactory, aMessageManagerCallback, aRequestAsyncOneShot);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ } // CSimDispatcher::NewLC
+
+
+CSimDispatcher* CSimDispatcher::NewL(
+ MLtsyDispatchFactoryV1& aLtsyFactory,
+ MmMessageManagerCallback& aMessageManagerCallback,
+ CRequestQueueOneShot& aRequestAsyncOneShot)
+ {
+ TSYLOGENTRYEXIT;
+ CSimDispatcher* self =
+ CSimDispatcher::NewLC(aLtsyFactory, aMessageManagerCallback, aRequestAsyncOneShot);
+ CleanupStack::Pop (self);
+ return self;
+ } // CSimDispatcher::NewL
+
+
+void CSimDispatcher::ConstructL()
+/**
+ * Second phase constructor.
+ */
+ {
+ TSYLOGENTRYEXIT;
+
+ // Get the Licensee LTSY interfaces related to Sim functionality
+ // from the factory
+
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetApnControlListServiceStatus::KLtsyDispatchSimGetApnControlListServiceStatusApiId))
+ {
+ TAny* getApnControlListServiceStatusInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimGetApnControlListServiceStatus::KLtsyDispatchSimGetApnControlListServiceStatusApiId,
+ getApnControlListServiceStatusInterface);
+ iLtsyDispatchSimGetApnControlListServiceStatus =
+ static_cast<MLtsyDispatchSimGetApnControlListServiceStatus*>(getApnControlListServiceStatusInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimGetApnControlListServiceStatus, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimDeleteApnName::KLtsyDispatchSimDeleteApnNameApiId))
+ {
+ TAny* deleteApnNameInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimDeleteApnName::KLtsyDispatchSimDeleteApnNameApiId,
+ deleteApnNameInterface);
+ iLtsyDispatchSimDeleteApnName =
+ static_cast<MLtsyDispatchSimDeleteApnName*>(deleteApnNameInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimDeleteApnName, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimEnumerateApnEntries::KLtsyDispatchSimEnumerateApnEntriesApiId))
+ {
+ TAny* enumerateApnEntriesInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimEnumerateApnEntries::KLtsyDispatchSimEnumerateApnEntriesApiId,
+ enumerateApnEntriesInterface);
+ iLtsyDispatchSimEnumerateApnEntries =
+ static_cast<MLtsyDispatchSimEnumerateApnEntries*>(enumerateApnEntriesInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimEnumerateApnEntries, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimChangeSecurityCode::KLtsyDispatchSimChangeSecurityCodeApiId))
+ {
+ TAny* changeSecurityCodeInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimChangeSecurityCode::KLtsyDispatchSimChangeSecurityCodeApiId,
+ changeSecurityCodeInterface);
+ iLtsyDispatchSimChangeSecurityCode =
+ static_cast<MLtsyDispatchSimChangeSecurityCode*>(changeSecurityCodeInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimChangeSecurityCode, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetFdnSetting::KLtsyDispatchSimSetFdnSettingApiId))
+ {
+ TAny* setFdnSettingInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimSetFdnSetting::KLtsyDispatchSimSetFdnSettingApiId,
+ setFdnSettingInterface);
+ iLtsyDispatchSimSetFdnSetting =
+ static_cast<MLtsyDispatchSimSetFdnSetting*>(setFdnSettingInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimSetFdnSetting, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetCustomerServiceProfile::KLtsyDispatchSimGetCustomerServiceProfileApiId))
+ {
+ TAny* getCustomerServiceProfileInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimGetCustomerServiceProfile::KLtsyDispatchSimGetCustomerServiceProfileApiId,
+ getCustomerServiceProfileInterface);
+ iLtsyDispatchSimGetCustomerServiceProfile =
+ static_cast<MLtsyDispatchSimGetCustomerServiceProfile*>(getCustomerServiceProfileInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimGetCustomerServiceProfile, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSubscriberId::KLtsyDispatchSimGetSubscriberIdApiId))
+ {
+ TAny* getSubscriberIdInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimGetSubscriberId::KLtsyDispatchSimGetSubscriberIdApiId,
+ getSubscriberIdInterface);
+ iLtsyDispatchSimGetSubscriberId =
+ static_cast<MLtsyDispatchSimGetSubscriberId*>(getSubscriberIdInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimGetSubscriberId, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimAppendApnName::KLtsyDispatchSimAppendApnNameApiId))
+ {
+ TAny* appendApnNameInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimAppendApnName::KLtsyDispatchSimAppendApnNameApiId,
+ appendApnNameInterface);
+ iLtsyDispatchSimAppendApnName =
+ static_cast<MLtsyDispatchSimAppendApnName*>(appendApnNameInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimAppendApnName, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetActiveIccApplicationType::KLtsyDispatchSimGetActiveIccApplicationTypeApiId))
+ {
+ TAny* getIccTypeInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimGetActiveIccApplicationType::KLtsyDispatchSimGetActiveIccApplicationTypeApiId,
+ getIccTypeInterface);
+ iLtsyDispatchSimGetIccType =
+ static_cast<MLtsyDispatchSimGetActiveIccApplicationType*>(getIccTypeInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimGetIccType, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetIccMessageWaitingIndicators::KLtsyDispatchSimSetIccMessageWaitingIndicatorsApiId))
+ {
+ TAny* setIccMessageWaitingIndicatorsInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimSetIccMessageWaitingIndicators::KLtsyDispatchSimSetIccMessageWaitingIndicatorsApiId,
+ setIccMessageWaitingIndicatorsInterface);
+ iLtsyDispatchSimSetIccMessageWaitingIndicators =
+ static_cast<MLtsyDispatchSimSetIccMessageWaitingIndicators*>(setIccMessageWaitingIndicatorsInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimSetIccMessageWaitingIndicators, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetApnControlListServiceStatus::KLtsyDispatchSimSetApnControlListServiceStatusApiId))
+ {
+ TAny* setApnControlListServiceStatusInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimSetApnControlListServiceStatus::KLtsyDispatchSimSetApnControlListServiceStatusApiId,
+ setApnControlListServiceStatusInterface);
+ iLtsyDispatchSimSetApnControlListServiceStatus =
+ static_cast<MLtsyDispatchSimSetApnControlListServiceStatus*>(setApnControlListServiceStatusInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimSetApnControlListServiceStatus, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetApnName::KLtsyDispatchSimGetApnNameApiId))
+ {
+ TAny* getApnNameInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimGetApnName::KLtsyDispatchSimGetApnNameApiId,
+ getApnNameInterface);
+ iLtsyDispatchSimGetApnName =
+ static_cast<MLtsyDispatchSimGetApnName*>(getApnNameInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimGetApnName, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimRefreshDone::KLtsyDispatchSimSimRefreshDoneApiId))
+ {
+ TAny* simRefreshDoneInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimSimRefreshDone::KLtsyDispatchSimSimRefreshDoneApiId,
+ simRefreshDoneInterface);
+ iLtsyDispatchSimSimRefreshDone =
+ static_cast<MLtsyDispatchSimSimRefreshDone*>(simRefreshDoneInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimSimRefreshDone, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetServiceTable::KLtsyDispatchSimGetServiceTableApiId))
+ {
+ TAny* getServiceTableInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimGetServiceTable::KLtsyDispatchSimGetServiceTableApiId,
+ getServiceTableInterface);
+ iLtsyDispatchSimGetServiceTable =
+ static_cast<MLtsyDispatchSimGetServiceTable*>(getServiceTableInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimGetServiceTable, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetIccMessageWaitingIndicators::KLtsyDispatchSimGetIccMessageWaitingIndicatorsApiId))
+ {
+ TAny* getIccMessageWaitingIndicatorsInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimGetIccMessageWaitingIndicators::KLtsyDispatchSimGetIccMessageWaitingIndicatorsApiId,
+ getIccMessageWaitingIndicatorsInterface);
+ iLtsyDispatchSimGetIccMessageWaitingIndicators =
+ static_cast<MLtsyDispatchSimGetIccMessageWaitingIndicators*>(getIccMessageWaitingIndicatorsInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimGetIccMessageWaitingIndicators, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimLockActivate::KLtsyDispatchSimSimLockActivateApiId))
+ {
+ TAny* simLockActivateInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimSimLockActivate::KLtsyDispatchSimSimLockActivateApiId,
+ simLockActivateInterface);
+ iLtsyDispatchSimSimLockActivate =
+ static_cast<MLtsyDispatchSimSimLockActivate*>(simLockActivateInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimSimLockActivate, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimLockDeActivate::KLtsyDispatchSimSimLockDeActivateApiId))
+ {
+ TAny* simLockDeActivateInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimSimLockDeActivate::KLtsyDispatchSimSimLockDeActivateApiId,
+ simLockDeActivateInterface);
+ iLtsyDispatchSimSimLockDeActivate =
+ static_cast<MLtsyDispatchSimSimLockDeActivate*>(simLockDeActivateInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimSimLockDeActivate, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetAnswerToReset::KLtsyDispatchSimGetAnswerToResetApiId))
+ {
+ TAny* getAnswerToResetInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimGetAnswerToReset::KLtsyDispatchSimGetAnswerToResetApiId,
+ getAnswerToResetInterface);
+ iLtsyDispatchSimGetAnswerToReset =
+ static_cast<MLtsyDispatchSimGetAnswerToReset*>(getAnswerToResetInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimGetAnswerToReset, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSimCardReaderStatus::KLtsyDispatchSimGetSimCardReaderStatusApiId))
+ {
+ TAny* getSimCardReaderStatusInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimGetSimCardReaderStatus::KLtsyDispatchSimGetSimCardReaderStatusApiId,
+ getSimCardReaderStatusInterface);
+ iLtsyDispatchSimGetSimCardReaderStatus =
+ static_cast<MLtsyDispatchSimGetSimCardReaderStatus*>(getSimCardReaderStatusInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimGetSimCardReaderStatus, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSimAuthenticationEapSimData::KLtsyDispatchSimGetSimAuthenticationEapSimDataApiId))
+ {
+ TAny* getSimAuthenticationEapSimDataInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimGetSimAuthenticationEapSimData::KLtsyDispatchSimGetSimAuthenticationEapSimDataApiId,
+ getSimAuthenticationEapSimDataInterface);
+ iLtsyDispatchSimGetSimAuthenticationEapSimData =
+ static_cast<MLtsyDispatchSimGetSimAuthenticationEapSimData*>(getSimAuthenticationEapSimDataInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimGetSimAuthenticationEapSimData, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSimAuthenticationEapAkaData::KLtsyDispatchSimGetSimAuthenticationEapAkaDataApiId))
+ {
+ TAny* getSimAuthenticationEapAkaDataInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimGetSimAuthenticationEapAkaData::KLtsyDispatchSimGetSimAuthenticationEapAkaDataApiId,
+ getSimAuthenticationEapAkaDataInterface);
+ iLtsyDispatchSimGetSimAuthenticationEapAkaData =
+ static_cast<MLtsyDispatchSimGetSimAuthenticationEapAkaData*>(getSimAuthenticationEapAkaDataInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimGetSimAuthenticationEapAkaData, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimPowerSimOff::KLtsyDispatchSimPowerSimOffApiId))
+ {
+ TAny* powerSimOffInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimPowerSimOff::KLtsyDispatchSimPowerSimOffApiId,
+ powerSimOffInterface);
+ iLtsyDispatchSimPowerSimOff =
+ static_cast<MLtsyDispatchSimPowerSimOff*>(powerSimOffInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimPowerSimOff, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimPowerSimOn::KLtsyDispatchSimPowerSimOnApiId))
+ {
+ TAny* powerSimOnInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimPowerSimOn::KLtsyDispatchSimPowerSimOnApiId,
+ powerSimOnInterface);
+ iLtsyDispatchSimPowerSimOn =
+ static_cast<MLtsyDispatchSimPowerSimOn*>(powerSimOnInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimPowerSimOn, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimReadSimFile::KLtsyDispatchSimReadSimFileApiId))
+ {
+ TAny* readSimFileInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimReadSimFile::KLtsyDispatchSimReadSimFileApiId,
+ readSimFileInterface);
+ iLtsyDispatchSimReadSimFile =
+ static_cast<MLtsyDispatchSimReadSimFile*>(readSimFileInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimReadSimFile, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSendApduRequest::KLtsyDispatchSimSendApduRequestApiId))
+ {
+ TAny* sendApduRequestInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimSendApduRequest::KLtsyDispatchSimSendApduRequestApiId,
+ sendApduRequestInterface);
+ iLtsyDispatchSimSendApduRequest =
+ static_cast<MLtsyDispatchSimSendApduRequest*>(sendApduRequestInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimSendApduRequest, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSendApduRequestV2::KLtsyDispatchSimSendApduRequestV2ApiId))
+ {
+ TAny* sendApduRequestV2Interface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimSendApduRequestV2::KLtsyDispatchSimSendApduRequestV2ApiId,
+ sendApduRequestV2Interface);
+ iLtsyDispatchSimSendApduRequestV2 =
+ static_cast<MLtsyDispatchSimSendApduRequestV2*>(sendApduRequestV2Interface);
+ __ASSERT_DEBUG(iLtsyDispatchSimSendApduRequestV2, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimWarmReset::KLtsyDispatchSimSimWarmResetApiId))
+ {
+ TAny* simWarmResetInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimSimWarmReset::KLtsyDispatchSimSimWarmResetApiId,
+ simWarmResetInterface);
+ iLtsyDispatchSimSimWarmReset =
+ static_cast<MLtsyDispatchSimSimWarmReset*>(simWarmResetInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimSimWarmReset, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetSimMessageStatusRead::KLtsyDispatchSimSetSimMessageStatusReadApiId))
+ {
+ TAny* setSimMessageStatusReadInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSimSetSimMessageStatusRead::KLtsyDispatchSimSetSimMessageStatusReadApiId,
+ setSimMessageStatusReadInterface);
+ iLtsyDispatchSimSetSimMessageStatusRead =
+ static_cast<MLtsyDispatchSimSetSimMessageStatusRead*>(setSimMessageStatusReadInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSimSetSimMessageStatusRead, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ } // CSimDispatcher::ConstructL
+
+void CSimDispatcher::SetDispatcherHolder(TDispatcherHolder& aDispatcherHolder)
+/**
+ * Set the dispatcher holder.
+ *
+ * @param aDispatcherHolder Reference to dispatcher holder.
+ */
+ {
+ TSYLOGENTRYEXIT;
+
+ iDispatcherHolder = &aDispatcherHolder;
+ } // CSimDispatcher::SetDispatcherHolder
+
+TInt CSimDispatcher::DispatchGetApnControlListServiceStatusL()
+/**
+ * Unpack data related to EMobilePhoneGetAPNControlListServiceStatus
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ // Call Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimGetApnControlListServiceStatus)
+ {
+ ret = iLtsyDispatchSimGetApnControlListServiceStatus->HandleGetApnControlListServiceStatusReqL();
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchGetApnControlListServiceStatusL
+
+TInt CSimDispatcher::DispatchDeleteApnNameL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMobilePhoneDeleteAPNName
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Call HandleDeleteApnNameReqL method in Licensee LTSY
+ if (iLtsyDispatchSimDeleteApnName)
+ {
+ TUint32 index;
+ aDataPackage->UnPackData(index);
+ ret = iLtsyDispatchSimDeleteApnName->HandleDeleteApnNameReqL(index);
+ }
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchDeleteApnNameL
+
+TInt CSimDispatcher::DispatchEnumerateApnEntriesL()
+/**
+ * Unpack data related to EMobilePhoneEnumerateAPNEntries
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ // Call Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimEnumerateApnEntries)
+ {
+ ret = iLtsyDispatchSimEnumerateApnEntries->HandleEnumerateApnEntriesReqL();
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchEnumerateApnEntriesL
+
+TInt CSimDispatcher::DispatchChangeSecurityCodeL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMobilePhoneChangeSecurityCode
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Call Handle... method in Licensee LTSY
+ if(iLtsyDispatchSimChangeSecurityCode)
+ {
+ RMobilePhone::TMobilePhoneSecurityCode* secCode = NULL;
+ RMobilePhone::TMobilePhonePasswordChangeV1* passwds = NULL;
+ aDataPackage->UnPackData(&secCode, &passwds);
+
+ __ASSERT_DEBUG(secCode, CtsyDispatcherPanic(EInvalidNullPtr));
+ __ASSERT_DEBUG(passwds, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ ret = iLtsyDispatchSimChangeSecurityCode->HandleChangeSecurityCodeReqL(*secCode, *passwds);
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchChangeSecurityCodeL
+
+TInt CSimDispatcher::DispatchSetFdnSettingL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMobilePhoneSetFdnSetting
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Call Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimSetFdnSetting)
+ {
+ RMobilePhone::TMobilePhoneFdnSetting fdnSetting;
+ aDataPackage->UnPackData(fdnSetting);
+ ret = iLtsyDispatchSimSetFdnSetting->HandleSetFdnSettingReqL(fdnSetting);
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchSetFdnSettingL
+
+TInt CSimDispatcher::DispatchGetCustomerServiceProfileL()
+/**
+ * Unpack data related to EMobilePhoneGetCustomerServiceProfile
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ // Call Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimGetCustomerServiceProfile)
+ {
+ ret = iLtsyDispatchSimGetCustomerServiceProfile->HandleGetCustomerServiceProfileReqL();
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchGetCustomerServiceProfileL
+
+TInt CSimDispatcher::DispatchGetSubscriberIdL()
+/**
+ * Unpack data related to EMobilePhoneGetSubscriberId
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ // Call Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimGetSubscriberId)
+ {
+ ret = iLtsyDispatchSimGetSubscriberId->HandleGetSubscriberIdReqL();
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchGetSubscriberIdL
+
+TInt CSimDispatcher::DispatchAppendApnNameL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMobilePhoneAppendAPNName
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Call HandleAppendApnNameReqL method in Licensee LTSY
+ if (iLtsyDispatchSimAppendApnName)
+ {
+ RMobilePhone::TAPNEntryV3* entry = NULL;
+ aDataPackage->UnPackData(&entry);
+
+ __ASSERT_DEBUG(entry, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ ret = iLtsyDispatchSimAppendApnName->HandleAppendApnNameReqL(*entry);
+ }
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchAppendApnNameL
+
+TInt CSimDispatcher::DispatchGetIccTypeL()
+/**
+ * Unpack data related to EMmTsySimGetICCType
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ // Call Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimGetIccType)
+ {
+ ret = iLtsyDispatchSimGetIccType->HandleGetActiveIccApplicationTypeReqL();
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchGetIccTypeL
+
+TInt CSimDispatcher::DispatchSetIccMessageWaitingIndicatorsL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMobilePhoneSetIccMessageWaitingIndicators
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Call HandleSetIccMessageWaitingIndicatorsReqL method in Licensee LTSY
+ if (iLtsyDispatchSimSetIccMessageWaitingIndicators)
+ {
+ RMobilePhone::TMobilePhoneMessageWaitingV1* indicators = NULL;
+ aDataPackage->UnPackData(&indicators);
+
+ __ASSERT_DEBUG(indicators, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ ret = iLtsyDispatchSimSetIccMessageWaitingIndicators->HandleSetIccMessageWaitingIndicatorsReqL(*indicators);
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchSetIccMessageWaitingIndicatorsL
+
+TInt CSimDispatcher::DispatchSetApnControlListServiceStatusL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMobilePhoneSetAPNControlListServiceStatus
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Call HandleSetApnControlListServiceStatusReqL method in Licensee LTSY
+ if (iLtsyDispatchSimSetApnControlListServiceStatus)
+ {
+ RMobilePhone::TAPNControlListServiceStatus status;
+ aDataPackage->UnPackData(status);
+ ret = iLtsyDispatchSimSetApnControlListServiceStatus->HandleSetApnControlListServiceStatusReqL(status);
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchSetApnControlListServiceStatusL
+
+TInt CSimDispatcher::DispatchGetApnNameL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMobilePhoneGetAPNname
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Call HandleGetApnNameReqL method in Licensee LTSY
+ if (iLtsyDispatchSimGetApnName)
+ {
+ TUint32 index;
+ aDataPackage->UnPackData(index);
+ ret = iLtsyDispatchSimGetApnName->HandleGetApnNameReqL(index);
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchGetApnNameL
+
+TInt CSimDispatcher::DispatchSimRefreshDoneL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMmTsySimRefreshDoneIPC
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Call Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimSimRefreshDone)
+ {
+ //packed as a TBool in the CTSY really a TInt containing KErrXXX
+ TBool error;
+ aDataPackage->UnPackData(error);
+
+ ret = iLtsyDispatchSimSimRefreshDone->HandleSimRefreshDoneReqL(static_cast<TInt>(error));
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchSimRefreshDoneL
+
+TInt CSimDispatcher::DispatchGetServiceTableL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to RMobilePhone::GetServiceTable
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Call Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimGetServiceTable)
+ {
+ RMobilePhone::TMobilePhoneServiceTable serviceTable;
+ aDataPackage->UnPackData(serviceTable);
+ ret = iLtsyDispatchSimGetServiceTable->HandleGetServiceTableReqL(serviceTable);
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchGetServiceTableL
+
+TInt CSimDispatcher::DispatchGetIccMessageWaitingIndicatorsL()
+/**
+ * Unpack data related to EMobilePhoneGetIccMessageWaitingIndicators
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ // Call Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimGetIccMessageWaitingIndicators)
+ {
+ ret = iLtsyDispatchSimGetIccMessageWaitingIndicators->HandleGetIccMessageWaitingIndicatorsReqL();
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchGetIccMessageWaitingIndicatorsL
+
+TInt CSimDispatcher::DispatchSimLockActivateL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to ECustomSimLockActivateIPC
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Can Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimSimLockActivate)
+ {
+ RMmCustomAPI::TSimLockPassword* password = NULL;
+ RMmCustomAPI::TLockNumber* lockNumber = NULL;
+ aDataPackage->UnPackData(&password, &lockNumber);
+ __ASSERT_DEBUG(password, CtsyDispatcherPanic(EInvalidNullPtr));
+ __ASSERT_DEBUG(lockNumber, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ ret = iLtsyDispatchSimSimLockActivate->HandleSimLockActivateReqL(*password, *lockNumber);
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchSimLockActivateL
+
+TInt CSimDispatcher::DispatchSimLockDeActivateL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to ECustomSimLockDeActivateIPC
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Can Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimSimLockDeActivate)
+ {
+ RMmCustomAPI::TSimLockPassword* password = NULL;
+ RMmCustomAPI::TLockNumber* lockNumber = NULL;
+ aDataPackage->UnPackData(&password, &lockNumber);
+ __ASSERT_DEBUG(password, CtsyDispatcherPanic(EInvalidNullPtr));
+ __ASSERT_DEBUG(lockNumber, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ ret = iLtsyDispatchSimSimLockDeActivate->HandleSimLockDeActivateReqL(*password, *lockNumber);
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchSimLockDeActivateL
+
+TInt CSimDispatcher::DispatchGetAnswerToResetL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to ECustomGetATRIPC
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ if (iLtsyDispatchSimGetAnswerToReset)
+ {
+ TDes8* answerToReset = NULL;
+ aDataPackage->UnPackData(answerToReset);
+ __ASSERT_DEBUG(answerToReset, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ ret = iLtsyDispatchSimGetAnswerToReset->HandleGetAnswerToResetReqL(*answerToReset);
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchGetAnswerToResetL
+
+TInt CSimDispatcher::DispatchGetSimCardReaderStatusL()
+/**
+ * Pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ if (iLtsyDispatchSimGetSimCardReaderStatus)
+ {
+ ret = iLtsyDispatchSimGetSimCardReaderStatus->HandleGetSimCardReaderStatusReqL();
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchGetSimCardReaderStatusL
+
+TInt CSimDispatcher::DispatchGetSimAuthenticationDataL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to ECustomGetSimAuthenticationDataIPC
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ RMmCustomAPI::TSimAuthenticationBase* basePtr = NULL;
+ TInt* rfStateInfo = 0;
+ aDataPackage->UnPackData(&basePtr, &rfStateInfo);
+ __ASSERT_DEBUG(basePtr, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ if(basePtr->ExtensionId() == RMmCustomAPI::TSimAuthenticationBase::EEapSim)
+ {
+ RMmCustomAPI::TSimAuthenticationEapSim* eapSim = static_cast<RMmCustomAPI::TSimAuthenticationEapSim*> (basePtr);
+
+ if (iLtsyDispatchSimGetSimAuthenticationEapSimData)
+ {
+ ret = iLtsyDispatchSimGetSimAuthenticationEapSimData->HandleGetSimAuthenticationEapSimDataReqL(eapSim->iRandomParameters,
+ *rfStateInfo);
+ }
+ }
+ else
+ if(basePtr->ExtensionId() == RMmCustomAPI::TSimAuthenticationBase::EEapAka)
+ {
+ RMmCustomAPI::TSimAuthenticationEapAka* eapAka = static_cast<RMmCustomAPI::TSimAuthenticationEapAka*>(basePtr);
+
+ if (iLtsyDispatchSimGetSimAuthenticationEapAkaData)
+ {
+ ret = iLtsyDispatchSimGetSimAuthenticationEapAkaData->HandleGetSimAuthenticationEapAkaDataReqL(eapAka->iRandomParameters,
+ eapAka->iAUTN,
+ *rfStateInfo);
+ }
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchGetSimAuthenticationDataL
+
+TInt CSimDispatcher::DispatchPowerSimOffL()
+/**
+ * Pass ECustomPowerSimOffIPC request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ // Can Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimPowerSimOff)
+ {
+ ret = iLtsyDispatchSimPowerSimOff->HandlePowerSimOffReqL();
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchPowerSimOffL
+
+TInt CSimDispatcher::DispatchPowerSimOnL()
+/**
+ * Pass ECustomPowerSimOnIPC request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ // Can Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimPowerSimOn)
+ {
+ ret = iLtsyDispatchSimPowerSimOn->HandlePowerSimOnReqL();
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchPowerSimOnL
+
+TInt CSimDispatcher::DispatchReadSimFileL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to ECustomReadSimFileIPC
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Can Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimReadSimFile)
+ {
+
+ RMmCustomAPI::TSimFileInfo* simFileInfo = NULL;
+ aDataPackage->UnPackData(&simFileInfo);
+ __ASSERT_DEBUG(simFileInfo, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ ret = iLtsyDispatchSimReadSimFile->HandleReadSimFileReqL(simFileInfo->iPath,simFileInfo->iOffSet,simFileInfo->iSize);
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchReadSimFileL
+
+TInt CSimDispatcher::DispatchSendApduRequestL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to ECustomSendAPDUReqIPC
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Can Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimSendApduRequest)
+ {
+ RMmCustomAPI::TApdu* apduReq = NULL;
+ aDataPackage->UnPackData(&apduReq);
+
+ __ASSERT_DEBUG(apduReq, CtsyDispatcherPanic(EInvalidNullPtr));
+ //will cause a ETel panic 1 if either iInfo or iData is missing
+ __ASSERT_DEBUG(apduReq->iInfo, CtsyDispatcherPanic(EInvalidNullPtr));
+ __ASSERT_DEBUG(apduReq->iData, CtsyDispatcherPanic(EInvalidNullPtr));
+ __ASSERT_DEBUG(apduReq->iInfo->Length() >= KApduInfoLength, CtsyDispatcherPanic(EBadLength));
+
+ const TDesC8& info = *(apduReq->iInfo);
+
+ ret = iLtsyDispatchSimSendApduRequest->HandleSimSendApduRequestReqL(info[0],info[1],info[2],*(apduReq->iData));
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchSendApduRequestL
+
+TInt CSimDispatcher::DispatchSendApduRequestV2L(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to ECustomSendAPDUReqV2IPC
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Can Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimSendApduRequestV2)
+ {
+
+ RMmCustomAPI::TApduParameters* apduParameters = NULL;
+ aDataPackage->UnPackData(apduParameters);
+ __ASSERT_DEBUG(apduParameters, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ ret = iLtsyDispatchSimSendApduRequestV2->HandleSimSendApduRequestV2ReqL(apduParameters->iCardReaderId,apduParameters->iCmdData);
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchSendApduRequestV2L
+
+TInt CSimDispatcher::DispatchSimWarmResetL()
+/**
+ * Pass ECustomSimWarmResetIPC request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ // Can Handle... method in Licensee LTSY
+ if (iLtsyDispatchSimSimWarmReset)
+ {
+ ret = iLtsyDispatchSimSimWarmReset->HandleSimWarmResetReqL();
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchSimWarmResetL
+
+TInt CSimDispatcher::DispatchSetSimMessageStatusReadL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to ECustomSetSimMessageStatusReadIPC
+ * and pass request on to Licensee LTSY.
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ TInt ret = KErrNotSupported;
+
+ __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Unpack data for this request here if required.
+ TTime* timestamp = NULL;
+ TInt* timezone = NULL;
+ aDataPackage->UnPackData(×tamp, &timezone);
+
+ if (!timestamp || !timezone)
+ {
+ ret = KErrCorrupt;
+ }
+ // Can Handle... method in Licensee LTSY
+ else if (iLtsyDispatchSimSetSimMessageStatusRead)
+ {
+ ret = iLtsyDispatchSimSetSimMessageStatusRead->HandleSetSimMessageStatusReadReqL(*timestamp,*timezone);
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSimDispatcher::DispatchSetSimMessageStatusReadL
+
+//
+// Callback handlers follow
+//
+
+
+
+void CSimDispatcher::CallbackRefreshSimFiles(TInt aError, TUint16 aRefreshFileList)
+/**
+ * Callback function to be used by the request to complete.
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param @param aRefreshFileList Bitmask containing list of files to refresh. The list of possible files is specified in TCacheFileTypes.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d, aRefreshFileList=%d"), aError, aRefreshFileList);
+
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&aRefreshFileList);
+
+ iMessageManagerCallback.Complete(EMmTsySimRefreshNowIPC, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackRefreshSimFiles
+
+void CSimDispatcher::CallbackNotifyIccMessageWaitingIndicatorsChange(TInt aError,
+ const RMobilePhone::TMobilePhoneMessageWaitingV1& aIndicators)
+/**
+ * Callback function to be used by the request to complete.
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aIndicators The ICC message waiting indicators to return.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ // Pack the data to return to the Common TSY
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(const_cast<RMobilePhone::TMobilePhoneMessageWaitingV1*>(&aIndicators));
+
+ iMessageManagerCallback.Complete(EMobilePhoneNotifyIccMessageWaitingIndicatorsChange, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackNotifyIccMessageWaitingIndicatorsChange
+
+void CSimDispatcher::CallbackNotifyApnListChange(TInt aError)
+/**
+ * Callback function to be used by the request to complete.
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(EMobilePhoneNotifyAPNListChanged, aError);
+
+ } // CSimDispatcher::CallbackNotifyApnListChange
+
+void CSimDispatcher::CallbackNotifyApnControlListServiceStatusChange(TInt aError,
+ RMobilePhone::TAPNControlListServiceStatus aStatus)
+/**
+ * Callback function to be used by the request to complete.
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aStatus The new service status to return.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ // Pack the data to return to the Common TSY
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&aStatus);
+
+ iMessageManagerCallback.Complete(EMobilePhoneNotifyAPNControlListServiceStatusChange, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackNotifyApnControlListServiceStatusChange
+
+void CSimDispatcher::CallbackGetApnControlListServiceStatus(TInt aError,
+ RMobilePhone::TAPNControlListServiceStatus aStatus)
+/**
+ * Callback function to be used by the request to complete.
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aStatus The APN Control List Service status stored on the USIM.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ // Pack the data to return to the Common TSY
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&aStatus);
+
+ iMessageManagerCallback.Complete(EMobilePhoneGetAPNControlListServiceStatus, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackGetApnControlListServiceStatus
+
+void CSimDispatcher::CallbackDeleteApnName(TInt aError)
+/**
+ * Callback function to be used by the request to complete.
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(EMobilePhoneDeleteAPNName, aError);
+
+ } // CSimDispatcher::CallbackDeleteApnName
+
+void CSimDispatcher::CallbackEnumerateApnEntries(TInt aError,
+ TUint32 aNumEntries)
+/**
+ * Callback function to be used by the request to complete.
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aNumEntries The total number of available entries.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d, aNumEntries=%d"), aError, aNumEntries);
+
+ // Pack the data to return to the Common TSY
+
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&aNumEntries);
+
+ iMessageManagerCallback.Complete(EMobilePhoneEnumerateAPNEntries, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackEnumerateApnEntries
+
+void CSimDispatcher::CallbackChangeSecurityCode(TInt aError)
+/**
+ * Callback function to be used by the request to complete the EMobilePhoneChangeSecurityCode
+ * request back to the Common TSY.
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ // Pack the data to return to the Common TSY
+
+ iMessageManagerCallback.Complete(EMobilePhoneChangeSecurityCode, aError);
+ } // CSimDispatcher::CallbackChangeSecurityCode
+
+void CSimDispatcher::CallbackSetFdnSetting(TInt aError)
+/**
+ * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimSetFdnSettingComp().
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(EMobilePhoneSetFdnSetting, aError);
+
+ } // CSimDispatcher::CallbackSetFdnSetting
+
+void CSimDispatcher::CallbackGetCustomerServiceProfile(TInt aError,
+ const RMobilePhone::TMobilePhoneCspFileV1& aCsp)
+/**
+ * Callback function to be used by the request to complete.
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aCsp The Customer Service Profile file that is stored on the SIM.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ // Pack the data to return to the Common TSY
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(const_cast<RMobilePhone::TMobilePhoneCspFileV1*>(&aCsp));
+
+ iMessageManagerCallback.Complete(EMobilePhoneGetCustomerServiceProfile, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackGetCustomerServiceProfile
+
+void CSimDispatcher::CallbackGetSubscriberId(TInt aError,
+ const TDesC8& aId)
+/**
+ * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimGetSubscriberIdComp().
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aId The subscriber id to be returned.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+ __ASSERT_DEBUG(aId.Length() <= RMobilePhone::KIMSISize, CtsyDispatcherPanic(EBadLength));
+
+ //the CTSY unpack ad does a TDesC copy to a TBuf8 of size KGsmUssdDataSize
+ TPtrC8 imsi = aId.Left(RMobilePhone::KIMSISize);
+
+ // Pack the data to return to the Common TSY
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&imsi);
+
+ iMessageManagerCallback.Complete(EMobilePhoneGetSubscriberId, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackGetSubscriberId
+
+void CSimDispatcher::CallbackAppendApnName(TInt aError)
+/**
+ * Callback function to be used by the request to complete.
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(EMobilePhoneAppendAPNName, aError);
+
+ } // CSimDispatcher::CallbackAppendApnName
+
+void CSimDispatcher::CallbackGetActiveIccApplicationType(TInt aError, MLtsyDispatchSimGetActiveIccApplicationType::TIccType aIccType)
+/**
+ * Callback function to be used by the request to complete.
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aIccType active application type
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d, aIccType=%d"), aError, aIccType);
+
+ // Pack the data to return to the Common TSY
+ CMmDataPackage dataPackage;
+
+ //effectively a static cast from MLtsyDispatchSimGetActiveIccApplicationType::TIccType to
+ //a CMmPhoneGsmWcdmaExt::TICCType when the data is unpacked.
+ //This is only correct if the two enums match, unfortunately CMmPhoneGsmWcdmaExt::TICCType is
+ //not an exported header file.
+ dataPackage.PackData(&aIccType);
+
+ iMessageManagerCallback.Complete(EMmTsySimGetICCType, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackGetIccType
+
+void CSimDispatcher::CallbackSetIccMessageWaitingIndicators(TInt aError)
+/**
+ * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimSetIccMessageWaitingIndicatorsComp().
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(EMobilePhoneSetIccMessageWaitingIndicators, aError);
+
+ } // CSimDispatcher::CallbackSetIccMessageWaitingIndicators
+
+void CSimDispatcher::CallbackSetApnControlListServiceStatus(TInt aError)
+/**
+ * Callback function to be used by the request to complete.
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(EMobilePhoneSetAPNControlListServiceStatus, aError);
+
+ } // CSimDispatcher::CallbackSetApnControlListServiceStatus
+
+void CSimDispatcher::CallbackGetApnName(TInt aError,
+ const RMobilePhone::TAPNEntryV3& aEntry)
+/**
+ * Callback function to be used by the request to complete.
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aEntry The Access Point Name (APN) entry.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ // Pack the data to return to the Common TSY
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(const_cast<RMobilePhone::TAPNEntryV3*>(&aEntry));
+
+ iMessageManagerCallback.Complete(EMobilePhoneGetAPNname, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackGetApnName
+
+void CSimDispatcher::CallbackGetServiceTable(
+ TInt aError,
+ const RMobilePhone::TMobilePhoneServiceTableV1& aServiceTable)
+/**
+ * Packages the data returned by the Licensee LTSY and completes the
+ * RMobilePhone::GetServiceTable back to the Common TSY.
+ *
+ * @param aServiceTable The service table data to return back to Common TSY.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ // Package up data to return to Common TSY
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(
+ const_cast<RMobilePhone::TMobilePhoneServiceTableV1*>(&aServiceTable));
+
+ // Now complete the actual get request
+ iMessageManagerCallback.Complete(EMobilePhoneGetServiceTable, &dataPackage, aError);
+ } // CSimDispatcher::CallbackGetServiceTable
+
+void CSimDispatcher::CallbackGetIccMessageWaitingIndicators(
+ TInt aError, const RMobilePhone::TMobilePhoneMessageWaitingV1& aMessageWaitingIndicator)
+/**
+ * Packages the data returned by the Licensee LTSY and completes the
+ * RMobilePhone::GetIccMessageWaitingIndicators back to the Common TSY.
+ *
+ * @param aError The error code to complete back.
+ * @param aMessageWaitingIndicator The message waiting indicators to return.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ // Package up data to return to Common TSY
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(
+ const_cast<RMobilePhone::TMobilePhoneMessageWaitingV1*>
+ (&aMessageWaitingIndicator));
+
+ // Now complete the actual get request
+ iMessageManagerCallback.Complete(
+ EMobilePhoneGetIccMessageWaitingIndicators, &dataPackage, aError);
+
+ } // CPhoneDispatcher::CallbackGetIccMessageWaitingIndicators
+
+void CSimDispatcher::CallbackNotifySimCardStatus(TInt aError,
+ RMmCustomAPI::TSIMCardStatus aSimCardStatus)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSimNotifySimCardStatusInd().
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aSimCardStatus whether the sim card is enabled/disabled etc.
+ * @see RMmCustomAPI::NotifySimCardStatus()
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ // Pack the data to return to the Common TSY
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&aSimCardStatus);
+
+ iMessageManagerCallback.Complete(ECustomNotifySimCardStatusIPC, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackNotifySimCardStatus
+
+void CSimDispatcher::CallbackSimLockActivate(TInt aError)
+/**
+ * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimSimLockActivateComp().
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+ iMessageManagerCallback.Complete(ECustomSimLockActivateIPC, aError);
+
+ } // CSimDispatcher::CallbackSimLockActivate
+
+void CSimDispatcher::CallbackSimLockDeActivate(TInt aError)
+/**
+ * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimSimLockDeActivateComp().
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+ iMessageManagerCallback.Complete(ECustomSimLockDeActivateIPC, aError);
+
+ } // CSimDispatcher::CallbackSimLockDeActivate
+
+void CSimDispatcher::CallbackGetAnswerToReset(TInt aError, const TDesC8& aAnswerToReset)
+/**
+ * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimGetAnswerToResetComp().
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aAnswerToReset The answer to reset.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d, aAnswerToReset=%S"), aError, &aAnswerToReset);
+
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&const_cast<TDesC8&>(aAnswerToReset));
+
+ iMessageManagerCallback.Complete(ECustomGetATRIPC, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackGetAnswerToReset
+
+void CSimDispatcher::CallbackGetSimCardReaderStatus(TInt aError, TUint8 aSimCardReaderStatus)
+/**
+ * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimGetSimCardReaderStatusComp().
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aSimCardReaderStatus The sim card reader's status.
+ * Bits:
+ * 1-3 Identity of card reader,
+ * 4 0=Card reader is not removable,
+ * 1=Card reader is removable,
+ * 5 0=Card reader is not present,
+ * 1=Card reader is present,
+ * 6 0=Card reader present is not ID-1 size,
+ * 1=Card reader present is ID-1 size,
+ * 7 0=No card present,
+ * 1=Card is present in reader,
+ * 8 0=No card powered,
+ * 1=Card in reader is powered.
+ *
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d, aSimCardReaderStatus=%d"), aError, aSimCardReaderStatus);
+
+ TBuf8<1> status;
+ status.Append(aSimCardReaderStatus);
+
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&status);
+
+ iMessageManagerCallback.Complete(ECustomGetSimCardReaderStatusIPC, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackGetSimCardReaderStatus
+
+void CSimDispatcher::CallbackGetSimAuthenticationData(
+ TInt aError, const TDesC8& aSignedResponse, const TDesC8& aCipheringKey)
+/**
+ * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimGetSimAuthenticationDataComp().
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aSignedResponse The signed response. The length should not be greater than RMmCustomAPI::KMaxParametersLength.
+ * @param aCipheringKey The ciphering key. The length should not be greater than RMmCustomAPI::KMaxParametersLength.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d, aSignedResponse=%S, aCipheringKey=%S"), aError, &aSignedResponse, &aCipheringKey);
+
+ RMmCustomAPI::TSimAuthenticationEapSim authenticationEapSim;
+ TInt error = aError;
+ if ( error == KErrNone)
+ {
+ if (RMmCustomAPI::KMaxParametersLength < aSignedResponse.Length()
+ || RMmCustomAPI::KMaxParametersLength < aCipheringKey.Length())
+ {
+ error = KErrCorrupt;
+ }
+ else
+ {
+ authenticationEapSim.iSRES.Copy(aSignedResponse);
+ authenticationEapSim.iKC.Copy(aCipheringKey);
+ }
+ }
+
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&authenticationEapSim);
+
+ iMessageManagerCallback.Complete(ECustomGetSimAuthenticationDataIPC, &dataPackage, error);
+
+ } // CSimDispatcher::CallbackGetSimAuthenticationData
+
+void CSimDispatcher::CallbackGetSimAuthenticationData(
+ TInt aError, const TDesC8& aResponse, const TDesC8& aCipheringKey, const TDesC8& aIntegrityKey, const TDesC8& aAUTS)
+/**
+ * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSimGetSimAuthenticationDataComp().
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aResponse The response. The length should not be greater than RMmCustomAPI::KMaxParametersLength.
+ * @param aCipheringKey The ciphering key. The length should not be greater than RMmCustomAPI::KMaxParametersLength.
+ * @param aIntegrityKey The integrity key. The length should not be greater than RMmCustomAPI::KMaxParametersLength.
+ * @param aAUTS The AUTS value. A value generated by the peer upon experiencing a synchronization failure, 112 bits.
+ * This is needed only in error case. The length should not be greater than RMmCustomAPI::KMaxParametersLength.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d, aResponse=%S, aCipheringKey=%S, aIntegrityKey=%S, aAUTS=%S"), aError, &aResponse, &aCipheringKey, &aIntegrityKey, &aAUTS);
+
+ RMmCustomAPI::TSimAuthenticationEapAka authenticationEapAka;
+ TInt error = aError;
+
+ if ( error == KErrNone)
+ {
+ if (RMmCustomAPI::KMaxParametersLength < aResponse.Length()
+ || RMmCustomAPI::KMaxParametersLength < aCipheringKey.Length()
+ || RMmCustomAPI::KMaxParametersLength < aIntegrityKey.Length())
+ {
+ error = KErrCorrupt;
+ }
+ else
+ {
+ authenticationEapAka.iRES.Copy(aResponse);
+ authenticationEapAka.iCK.Copy(aCipheringKey);
+ authenticationEapAka.iIK.Copy(aIntegrityKey);
+ }
+ }
+ else
+ {
+ if (RMmCustomAPI::KMaxParametersLength < aAUTS.Length())
+ {
+ error = KErrCorrupt;
+ }
+ else
+ {
+ authenticationEapAka.iAUTS.Copy(aAUTS);
+ }
+ }
+
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&authenticationEapAka);
+
+ iMessageManagerCallback.Complete(ECustomGetSimAuthenticationDataIPC, &dataPackage, error);
+
+ } // CSimDispatcher::CallbackGetSimAuthenticationData
+
+void CSimDispatcher::CallbackPowerSimOff(TInt aError)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSimPowerSimOffComp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(ECustomPowerSimOffIPC, aError);
+
+ } // CSimDispatcher::CallbackPowerSimOff
+
+void CSimDispatcher::CallbackPowerSimOn(TInt aError)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSimPowerSimOnComp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(ECustomPowerSimOnIPC, aError);
+
+ } // CSimDispatcher::CallbackPowerSimOn
+
+void CSimDispatcher::CallbackReadSimFile(TInt aError, const TDesC8& aResponseBytes)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSimReadSimFileComp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aResponseBytes The bytes read from the SIM.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ //local need so will compile for ARM
+ TDesC8* responseBytesPtr = &const_cast<TDesC8&>(aResponseBytes);
+
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&responseBytesPtr);
+
+ iMessageManagerCallback.Complete(ECustomReadSimFileIPC, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackReadSimFile
+
+void CSimDispatcher::CallbackSendApduRequest(
+ TInt aError, TUint8 aServiceType, TUint8 aCardReaderNumber, TUint8 aApplicationType, const TDesC8& aResponseData)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSimSendApduRequestComp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aServiceType The value for the service type of the request to be returned to the client.
+ * @param aCardReaderNumber The value for the card reader number of the request to be returned to the client.
+ * @param aApplicationType The value for the application type of the request to be returned to the client.
+ * @param aResponseData The transparent response data conveyed from the baseband to be returned to the client.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d,aServiceType=%d,aCardReaderNumber=%d,aApplicationType=%d"), aError, aServiceType, aCardReaderNumber, aApplicationType);
+
+ TBuf8<KApduInfoLength> info;
+ info.Append(aServiceType);
+ info.Append(aCardReaderNumber);
+ info.Append(aApplicationType);
+
+ TPtrC8 infoPtr(info);
+ TPtrC8 responsePtr(aResponseData);
+
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&infoPtr,&responsePtr);
+
+ iMessageManagerCallback.Complete(ECustomSendAPDUReqIPC, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackSendApduRequest
+
+void CSimDispatcher::CallbackSendApduRequestV2(TInt aError, const TDesC8& aResponseData)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSimSendApduRequestV2Comp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aResponseData The transparent response data conveyed from the baseband to be returned to the client.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&const_cast<TDesC8&>(aResponseData));
+
+ iMessageManagerCallback.Complete(ECustomSendAPDUReqV2IPC, &dataPackage, aError);
+
+ } // CSimDispatcher::CallbackSendApduRequestV2
+
+void CSimDispatcher::CallbackSimWarmReset(TInt aError)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSimSimWarmResetComp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(ECustomSimWarmResetIPC, aError);
+
+ } // CSimDispatcher::CallbackSimWarmReset
+
+void CSimDispatcher::CallbackSetSimMessageStatusRead(TInt aError)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSimSetMessageStatusReadComp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(ECustomSetSimMessageStatusReadIPC, aError);
+
+ } // CSimDispatcher::CallbackSetSimMessageStatusRead
+
+void CSimDispatcher::CallbackSync(CRequestQueueOneShot::TIpcDataPackage& aIpcDataPackage)
+/**
+ * Part of the MDispatcherCallback interface. Used to complete requests handled
+ * synchronously by the Licensee LTSY asynchronously back to the Common TSY.
+ *
+ * @param aIpcDataPackage Package encapsulating the request.
+ *
+ * @see MDispatcherCallback::CallbackSync()
+ */
+ {
+ TSYLOGENTRYEXIT;
+
+ switch (aIpcDataPackage.iIpc)
+ {
+
+ default:
+ LOG(_L8("WARNING: CSimDispatcher::CallbackSync unhandled IPC=%d"), aIpcDataPackage.iIpc);
+ __ASSERT_DEBUG(NULL, CtsyDispatcherPanic(EUnhandledCtsyIpc));
+ break;
+ } // switch (aIpcDataPackage.iIpc)
+
+ } // CSimDispatcher::CallbackSync
+
+
+