diff -r 6b1d113cdff3 -r 6638e7f4bd8f telephonyserverplugins/ctsydispatchlayer/src/csimdispatcher.cpp --- 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 -#include -#include - -#include -#include -#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(getApnControlListServiceStatusInterface); - __ASSERT_DEBUG(iLtsyDispatchSimGetApnControlListServiceStatus, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimDeleteApnName::KLtsyDispatchSimDeleteApnNameApiId)) - { - TAny* deleteApnNameInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimDeleteApnName::KLtsyDispatchSimDeleteApnNameApiId, - deleteApnNameInterface); - iLtsyDispatchSimDeleteApnName = - static_cast(deleteApnNameInterface); - __ASSERT_DEBUG(iLtsyDispatchSimDeleteApnName, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimEnumerateApnEntries::KLtsyDispatchSimEnumerateApnEntriesApiId)) - { - TAny* enumerateApnEntriesInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimEnumerateApnEntries::KLtsyDispatchSimEnumerateApnEntriesApiId, - enumerateApnEntriesInterface); - iLtsyDispatchSimEnumerateApnEntries = - static_cast(enumerateApnEntriesInterface); - __ASSERT_DEBUG(iLtsyDispatchSimEnumerateApnEntries, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimChangeSecurityCode::KLtsyDispatchSimChangeSecurityCodeApiId)) - { - TAny* changeSecurityCodeInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimChangeSecurityCode::KLtsyDispatchSimChangeSecurityCodeApiId, - changeSecurityCodeInterface); - iLtsyDispatchSimChangeSecurityCode = - static_cast(changeSecurityCodeInterface); - __ASSERT_DEBUG(iLtsyDispatchSimChangeSecurityCode, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetFdnSetting::KLtsyDispatchSimSetFdnSettingApiId)) - { - TAny* setFdnSettingInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimSetFdnSetting::KLtsyDispatchSimSetFdnSettingApiId, - setFdnSettingInterface); - iLtsyDispatchSimSetFdnSetting = - static_cast(setFdnSettingInterface); - __ASSERT_DEBUG(iLtsyDispatchSimSetFdnSetting, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetCustomerServiceProfile::KLtsyDispatchSimGetCustomerServiceProfileApiId)) - { - TAny* getCustomerServiceProfileInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimGetCustomerServiceProfile::KLtsyDispatchSimGetCustomerServiceProfileApiId, - getCustomerServiceProfileInterface); - iLtsyDispatchSimGetCustomerServiceProfile = - static_cast(getCustomerServiceProfileInterface); - __ASSERT_DEBUG(iLtsyDispatchSimGetCustomerServiceProfile, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSubscriberId::KLtsyDispatchSimGetSubscriberIdApiId)) - { - TAny* getSubscriberIdInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimGetSubscriberId::KLtsyDispatchSimGetSubscriberIdApiId, - getSubscriberIdInterface); - iLtsyDispatchSimGetSubscriberId = - static_cast(getSubscriberIdInterface); - __ASSERT_DEBUG(iLtsyDispatchSimGetSubscriberId, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimAppendApnName::KLtsyDispatchSimAppendApnNameApiId)) - { - TAny* appendApnNameInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimAppendApnName::KLtsyDispatchSimAppendApnNameApiId, - appendApnNameInterface); - iLtsyDispatchSimAppendApnName = - static_cast(appendApnNameInterface); - __ASSERT_DEBUG(iLtsyDispatchSimAppendApnName, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetActiveIccApplicationType::KLtsyDispatchSimGetActiveIccApplicationTypeApiId)) - { - TAny* getIccTypeInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimGetActiveIccApplicationType::KLtsyDispatchSimGetActiveIccApplicationTypeApiId, - getIccTypeInterface); - iLtsyDispatchSimGetIccType = - static_cast(getIccTypeInterface); - __ASSERT_DEBUG(iLtsyDispatchSimGetIccType, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetIccMessageWaitingIndicators::KLtsyDispatchSimSetIccMessageWaitingIndicatorsApiId)) - { - TAny* setIccMessageWaitingIndicatorsInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimSetIccMessageWaitingIndicators::KLtsyDispatchSimSetIccMessageWaitingIndicatorsApiId, - setIccMessageWaitingIndicatorsInterface); - iLtsyDispatchSimSetIccMessageWaitingIndicators = - static_cast(setIccMessageWaitingIndicatorsInterface); - __ASSERT_DEBUG(iLtsyDispatchSimSetIccMessageWaitingIndicators, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetApnControlListServiceStatus::KLtsyDispatchSimSetApnControlListServiceStatusApiId)) - { - TAny* setApnControlListServiceStatusInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimSetApnControlListServiceStatus::KLtsyDispatchSimSetApnControlListServiceStatusApiId, - setApnControlListServiceStatusInterface); - iLtsyDispatchSimSetApnControlListServiceStatus = - static_cast(setApnControlListServiceStatusInterface); - __ASSERT_DEBUG(iLtsyDispatchSimSetApnControlListServiceStatus, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetApnName::KLtsyDispatchSimGetApnNameApiId)) - { - TAny* getApnNameInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimGetApnName::KLtsyDispatchSimGetApnNameApiId, - getApnNameInterface); - iLtsyDispatchSimGetApnName = - static_cast(getApnNameInterface); - __ASSERT_DEBUG(iLtsyDispatchSimGetApnName, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimRefreshDone::KLtsyDispatchSimSimRefreshDoneApiId)) - { - TAny* simRefreshDoneInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimSimRefreshDone::KLtsyDispatchSimSimRefreshDoneApiId, - simRefreshDoneInterface); - iLtsyDispatchSimSimRefreshDone = - static_cast(simRefreshDoneInterface); - __ASSERT_DEBUG(iLtsyDispatchSimSimRefreshDone, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetServiceTable::KLtsyDispatchSimGetServiceTableApiId)) - { - TAny* getServiceTableInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimGetServiceTable::KLtsyDispatchSimGetServiceTableApiId, - getServiceTableInterface); - iLtsyDispatchSimGetServiceTable = - static_cast(getServiceTableInterface); - __ASSERT_DEBUG(iLtsyDispatchSimGetServiceTable, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetIccMessageWaitingIndicators::KLtsyDispatchSimGetIccMessageWaitingIndicatorsApiId)) - { - TAny* getIccMessageWaitingIndicatorsInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimGetIccMessageWaitingIndicators::KLtsyDispatchSimGetIccMessageWaitingIndicatorsApiId, - getIccMessageWaitingIndicatorsInterface); - iLtsyDispatchSimGetIccMessageWaitingIndicators = - static_cast(getIccMessageWaitingIndicatorsInterface); - __ASSERT_DEBUG(iLtsyDispatchSimGetIccMessageWaitingIndicators, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimLockActivate::KLtsyDispatchSimSimLockActivateApiId)) - { - TAny* simLockActivateInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimSimLockActivate::KLtsyDispatchSimSimLockActivateApiId, - simLockActivateInterface); - iLtsyDispatchSimSimLockActivate = - static_cast(simLockActivateInterface); - __ASSERT_DEBUG(iLtsyDispatchSimSimLockActivate, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimLockDeActivate::KLtsyDispatchSimSimLockDeActivateApiId)) - { - TAny* simLockDeActivateInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimSimLockDeActivate::KLtsyDispatchSimSimLockDeActivateApiId, - simLockDeActivateInterface); - iLtsyDispatchSimSimLockDeActivate = - static_cast(simLockDeActivateInterface); - __ASSERT_DEBUG(iLtsyDispatchSimSimLockDeActivate, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetAnswerToReset::KLtsyDispatchSimGetAnswerToResetApiId)) - { - TAny* getAnswerToResetInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimGetAnswerToReset::KLtsyDispatchSimGetAnswerToResetApiId, - getAnswerToResetInterface); - iLtsyDispatchSimGetAnswerToReset = - static_cast(getAnswerToResetInterface); - __ASSERT_DEBUG(iLtsyDispatchSimGetAnswerToReset, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSimCardReaderStatus::KLtsyDispatchSimGetSimCardReaderStatusApiId)) - { - TAny* getSimCardReaderStatusInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimGetSimCardReaderStatus::KLtsyDispatchSimGetSimCardReaderStatusApiId, - getSimCardReaderStatusInterface); - iLtsyDispatchSimGetSimCardReaderStatus = - static_cast(getSimCardReaderStatusInterface); - __ASSERT_DEBUG(iLtsyDispatchSimGetSimCardReaderStatus, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSimAuthenticationEapSimData::KLtsyDispatchSimGetSimAuthenticationEapSimDataApiId)) - { - TAny* getSimAuthenticationEapSimDataInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimGetSimAuthenticationEapSimData::KLtsyDispatchSimGetSimAuthenticationEapSimDataApiId, - getSimAuthenticationEapSimDataInterface); - iLtsyDispatchSimGetSimAuthenticationEapSimData = - static_cast(getSimAuthenticationEapSimDataInterface); - __ASSERT_DEBUG(iLtsyDispatchSimGetSimAuthenticationEapSimData, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSimAuthenticationEapAkaData::KLtsyDispatchSimGetSimAuthenticationEapAkaDataApiId)) - { - TAny* getSimAuthenticationEapAkaDataInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimGetSimAuthenticationEapAkaData::KLtsyDispatchSimGetSimAuthenticationEapAkaDataApiId, - getSimAuthenticationEapAkaDataInterface); - iLtsyDispatchSimGetSimAuthenticationEapAkaData = - static_cast(getSimAuthenticationEapAkaDataInterface); - __ASSERT_DEBUG(iLtsyDispatchSimGetSimAuthenticationEapAkaData, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimPowerSimOff::KLtsyDispatchSimPowerSimOffApiId)) - { - TAny* powerSimOffInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimPowerSimOff::KLtsyDispatchSimPowerSimOffApiId, - powerSimOffInterface); - iLtsyDispatchSimPowerSimOff = - static_cast(powerSimOffInterface); - __ASSERT_DEBUG(iLtsyDispatchSimPowerSimOff, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimPowerSimOn::KLtsyDispatchSimPowerSimOnApiId)) - { - TAny* powerSimOnInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimPowerSimOn::KLtsyDispatchSimPowerSimOnApiId, - powerSimOnInterface); - iLtsyDispatchSimPowerSimOn = - static_cast(powerSimOnInterface); - __ASSERT_DEBUG(iLtsyDispatchSimPowerSimOn, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimReadSimFile::KLtsyDispatchSimReadSimFileApiId)) - { - TAny* readSimFileInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimReadSimFile::KLtsyDispatchSimReadSimFileApiId, - readSimFileInterface); - iLtsyDispatchSimReadSimFile = - static_cast(readSimFileInterface); - __ASSERT_DEBUG(iLtsyDispatchSimReadSimFile, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSendApduRequest::KLtsyDispatchSimSendApduRequestApiId)) - { - TAny* sendApduRequestInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimSendApduRequest::KLtsyDispatchSimSendApduRequestApiId, - sendApduRequestInterface); - iLtsyDispatchSimSendApduRequest = - static_cast(sendApduRequestInterface); - __ASSERT_DEBUG(iLtsyDispatchSimSendApduRequest, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSendApduRequestV2::KLtsyDispatchSimSendApduRequestV2ApiId)) - { - TAny* sendApduRequestV2Interface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimSendApduRequestV2::KLtsyDispatchSimSendApduRequestV2ApiId, - sendApduRequestV2Interface); - iLtsyDispatchSimSendApduRequestV2 = - static_cast(sendApduRequestV2Interface); - __ASSERT_DEBUG(iLtsyDispatchSimSendApduRequestV2, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimWarmReset::KLtsyDispatchSimSimWarmResetApiId)) - { - TAny* simWarmResetInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimSimWarmReset::KLtsyDispatchSimSimWarmResetApiId, - simWarmResetInterface); - iLtsyDispatchSimSimWarmReset = - static_cast(simWarmResetInterface); - __ASSERT_DEBUG(iLtsyDispatchSimSimWarmReset, CtsyDispatcherPanic(EInvalidNullPtr)); - } - - if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetSimMessageStatusRead::KLtsyDispatchSimSetSimMessageStatusReadApiId)) - { - TAny* setSimMessageStatusReadInterface = NULL; - iLtsyFactoryV1.GetDispatchHandler( - MLtsyDispatchSimSetSimMessageStatusRead::KLtsyDispatchSimSetSimMessageStatusReadApiId, - setSimMessageStatusReadInterface); - iLtsyDispatchSimSetSimMessageStatusRead = - static_cast(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(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 (basePtr); - - if (iLtsyDispatchSimGetSimAuthenticationEapSimData) - { - ret = iLtsyDispatchSimGetSimAuthenticationEapSimData->HandleGetSimAuthenticationEapSimDataReqL(eapSim->iRandomParameters, - *rfStateInfo); - } - } - else - if(basePtr->ExtensionId() == RMmCustomAPI::TSimAuthenticationBase::EEapAka) - { - RMmCustomAPI::TSimAuthenticationEapAka* eapAka = static_cast(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(&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(&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(&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(&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 - (&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(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(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 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(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 +#include +#include + +#include +#include +#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(getApnControlListServiceStatusInterface); + __ASSERT_DEBUG(iLtsyDispatchSimGetApnControlListServiceStatus, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimDeleteApnName::KLtsyDispatchSimDeleteApnNameApiId)) + { + TAny* deleteApnNameInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimDeleteApnName::KLtsyDispatchSimDeleteApnNameApiId, + deleteApnNameInterface); + iLtsyDispatchSimDeleteApnName = + static_cast(deleteApnNameInterface); + __ASSERT_DEBUG(iLtsyDispatchSimDeleteApnName, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimEnumerateApnEntries::KLtsyDispatchSimEnumerateApnEntriesApiId)) + { + TAny* enumerateApnEntriesInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimEnumerateApnEntries::KLtsyDispatchSimEnumerateApnEntriesApiId, + enumerateApnEntriesInterface); + iLtsyDispatchSimEnumerateApnEntries = + static_cast(enumerateApnEntriesInterface); + __ASSERT_DEBUG(iLtsyDispatchSimEnumerateApnEntries, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimChangeSecurityCode::KLtsyDispatchSimChangeSecurityCodeApiId)) + { + TAny* changeSecurityCodeInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimChangeSecurityCode::KLtsyDispatchSimChangeSecurityCodeApiId, + changeSecurityCodeInterface); + iLtsyDispatchSimChangeSecurityCode = + static_cast(changeSecurityCodeInterface); + __ASSERT_DEBUG(iLtsyDispatchSimChangeSecurityCode, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetFdnSetting::KLtsyDispatchSimSetFdnSettingApiId)) + { + TAny* setFdnSettingInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimSetFdnSetting::KLtsyDispatchSimSetFdnSettingApiId, + setFdnSettingInterface); + iLtsyDispatchSimSetFdnSetting = + static_cast(setFdnSettingInterface); + __ASSERT_DEBUG(iLtsyDispatchSimSetFdnSetting, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetCustomerServiceProfile::KLtsyDispatchSimGetCustomerServiceProfileApiId)) + { + TAny* getCustomerServiceProfileInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimGetCustomerServiceProfile::KLtsyDispatchSimGetCustomerServiceProfileApiId, + getCustomerServiceProfileInterface); + iLtsyDispatchSimGetCustomerServiceProfile = + static_cast(getCustomerServiceProfileInterface); + __ASSERT_DEBUG(iLtsyDispatchSimGetCustomerServiceProfile, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSubscriberId::KLtsyDispatchSimGetSubscriberIdApiId)) + { + TAny* getSubscriberIdInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimGetSubscriberId::KLtsyDispatchSimGetSubscriberIdApiId, + getSubscriberIdInterface); + iLtsyDispatchSimGetSubscriberId = + static_cast(getSubscriberIdInterface); + __ASSERT_DEBUG(iLtsyDispatchSimGetSubscriberId, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimAppendApnName::KLtsyDispatchSimAppendApnNameApiId)) + { + TAny* appendApnNameInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimAppendApnName::KLtsyDispatchSimAppendApnNameApiId, + appendApnNameInterface); + iLtsyDispatchSimAppendApnName = + static_cast(appendApnNameInterface); + __ASSERT_DEBUG(iLtsyDispatchSimAppendApnName, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetActiveIccApplicationType::KLtsyDispatchSimGetActiveIccApplicationTypeApiId)) + { + TAny* getIccTypeInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimGetActiveIccApplicationType::KLtsyDispatchSimGetActiveIccApplicationTypeApiId, + getIccTypeInterface); + iLtsyDispatchSimGetIccType = + static_cast(getIccTypeInterface); + __ASSERT_DEBUG(iLtsyDispatchSimGetIccType, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetIccMessageWaitingIndicators::KLtsyDispatchSimSetIccMessageWaitingIndicatorsApiId)) + { + TAny* setIccMessageWaitingIndicatorsInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimSetIccMessageWaitingIndicators::KLtsyDispatchSimSetIccMessageWaitingIndicatorsApiId, + setIccMessageWaitingIndicatorsInterface); + iLtsyDispatchSimSetIccMessageWaitingIndicators = + static_cast(setIccMessageWaitingIndicatorsInterface); + __ASSERT_DEBUG(iLtsyDispatchSimSetIccMessageWaitingIndicators, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetApnControlListServiceStatus::KLtsyDispatchSimSetApnControlListServiceStatusApiId)) + { + TAny* setApnControlListServiceStatusInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimSetApnControlListServiceStatus::KLtsyDispatchSimSetApnControlListServiceStatusApiId, + setApnControlListServiceStatusInterface); + iLtsyDispatchSimSetApnControlListServiceStatus = + static_cast(setApnControlListServiceStatusInterface); + __ASSERT_DEBUG(iLtsyDispatchSimSetApnControlListServiceStatus, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetApnName::KLtsyDispatchSimGetApnNameApiId)) + { + TAny* getApnNameInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimGetApnName::KLtsyDispatchSimGetApnNameApiId, + getApnNameInterface); + iLtsyDispatchSimGetApnName = + static_cast(getApnNameInterface); + __ASSERT_DEBUG(iLtsyDispatchSimGetApnName, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimRefreshDone::KLtsyDispatchSimSimRefreshDoneApiId)) + { + TAny* simRefreshDoneInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimSimRefreshDone::KLtsyDispatchSimSimRefreshDoneApiId, + simRefreshDoneInterface); + iLtsyDispatchSimSimRefreshDone = + static_cast(simRefreshDoneInterface); + __ASSERT_DEBUG(iLtsyDispatchSimSimRefreshDone, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetServiceTable::KLtsyDispatchSimGetServiceTableApiId)) + { + TAny* getServiceTableInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimGetServiceTable::KLtsyDispatchSimGetServiceTableApiId, + getServiceTableInterface); + iLtsyDispatchSimGetServiceTable = + static_cast(getServiceTableInterface); + __ASSERT_DEBUG(iLtsyDispatchSimGetServiceTable, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetIccMessageWaitingIndicators::KLtsyDispatchSimGetIccMessageWaitingIndicatorsApiId)) + { + TAny* getIccMessageWaitingIndicatorsInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimGetIccMessageWaitingIndicators::KLtsyDispatchSimGetIccMessageWaitingIndicatorsApiId, + getIccMessageWaitingIndicatorsInterface); + iLtsyDispatchSimGetIccMessageWaitingIndicators = + static_cast(getIccMessageWaitingIndicatorsInterface); + __ASSERT_DEBUG(iLtsyDispatchSimGetIccMessageWaitingIndicators, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimLockActivate::KLtsyDispatchSimSimLockActivateApiId)) + { + TAny* simLockActivateInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimSimLockActivate::KLtsyDispatchSimSimLockActivateApiId, + simLockActivateInterface); + iLtsyDispatchSimSimLockActivate = + static_cast(simLockActivateInterface); + __ASSERT_DEBUG(iLtsyDispatchSimSimLockActivate, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimLockDeActivate::KLtsyDispatchSimSimLockDeActivateApiId)) + { + TAny* simLockDeActivateInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimSimLockDeActivate::KLtsyDispatchSimSimLockDeActivateApiId, + simLockDeActivateInterface); + iLtsyDispatchSimSimLockDeActivate = + static_cast(simLockDeActivateInterface); + __ASSERT_DEBUG(iLtsyDispatchSimSimLockDeActivate, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetAnswerToReset::KLtsyDispatchSimGetAnswerToResetApiId)) + { + TAny* getAnswerToResetInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimGetAnswerToReset::KLtsyDispatchSimGetAnswerToResetApiId, + getAnswerToResetInterface); + iLtsyDispatchSimGetAnswerToReset = + static_cast(getAnswerToResetInterface); + __ASSERT_DEBUG(iLtsyDispatchSimGetAnswerToReset, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSimCardReaderStatus::KLtsyDispatchSimGetSimCardReaderStatusApiId)) + { + TAny* getSimCardReaderStatusInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimGetSimCardReaderStatus::KLtsyDispatchSimGetSimCardReaderStatusApiId, + getSimCardReaderStatusInterface); + iLtsyDispatchSimGetSimCardReaderStatus = + static_cast(getSimCardReaderStatusInterface); + __ASSERT_DEBUG(iLtsyDispatchSimGetSimCardReaderStatus, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSimAuthenticationEapSimData::KLtsyDispatchSimGetSimAuthenticationEapSimDataApiId)) + { + TAny* getSimAuthenticationEapSimDataInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimGetSimAuthenticationEapSimData::KLtsyDispatchSimGetSimAuthenticationEapSimDataApiId, + getSimAuthenticationEapSimDataInterface); + iLtsyDispatchSimGetSimAuthenticationEapSimData = + static_cast(getSimAuthenticationEapSimDataInterface); + __ASSERT_DEBUG(iLtsyDispatchSimGetSimAuthenticationEapSimData, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimGetSimAuthenticationEapAkaData::KLtsyDispatchSimGetSimAuthenticationEapAkaDataApiId)) + { + TAny* getSimAuthenticationEapAkaDataInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimGetSimAuthenticationEapAkaData::KLtsyDispatchSimGetSimAuthenticationEapAkaDataApiId, + getSimAuthenticationEapAkaDataInterface); + iLtsyDispatchSimGetSimAuthenticationEapAkaData = + static_cast(getSimAuthenticationEapAkaDataInterface); + __ASSERT_DEBUG(iLtsyDispatchSimGetSimAuthenticationEapAkaData, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimPowerSimOff::KLtsyDispatchSimPowerSimOffApiId)) + { + TAny* powerSimOffInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimPowerSimOff::KLtsyDispatchSimPowerSimOffApiId, + powerSimOffInterface); + iLtsyDispatchSimPowerSimOff = + static_cast(powerSimOffInterface); + __ASSERT_DEBUG(iLtsyDispatchSimPowerSimOff, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimPowerSimOn::KLtsyDispatchSimPowerSimOnApiId)) + { + TAny* powerSimOnInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimPowerSimOn::KLtsyDispatchSimPowerSimOnApiId, + powerSimOnInterface); + iLtsyDispatchSimPowerSimOn = + static_cast(powerSimOnInterface); + __ASSERT_DEBUG(iLtsyDispatchSimPowerSimOn, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimReadSimFile::KLtsyDispatchSimReadSimFileApiId)) + { + TAny* readSimFileInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimReadSimFile::KLtsyDispatchSimReadSimFileApiId, + readSimFileInterface); + iLtsyDispatchSimReadSimFile = + static_cast(readSimFileInterface); + __ASSERT_DEBUG(iLtsyDispatchSimReadSimFile, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSendApduRequest::KLtsyDispatchSimSendApduRequestApiId)) + { + TAny* sendApduRequestInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimSendApduRequest::KLtsyDispatchSimSendApduRequestApiId, + sendApduRequestInterface); + iLtsyDispatchSimSendApduRequest = + static_cast(sendApduRequestInterface); + __ASSERT_DEBUG(iLtsyDispatchSimSendApduRequest, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSendApduRequestV2::KLtsyDispatchSimSendApduRequestV2ApiId)) + { + TAny* sendApduRequestV2Interface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimSendApduRequestV2::KLtsyDispatchSimSendApduRequestV2ApiId, + sendApduRequestV2Interface); + iLtsyDispatchSimSendApduRequestV2 = + static_cast(sendApduRequestV2Interface); + __ASSERT_DEBUG(iLtsyDispatchSimSendApduRequestV2, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSimWarmReset::KLtsyDispatchSimSimWarmResetApiId)) + { + TAny* simWarmResetInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimSimWarmReset::KLtsyDispatchSimSimWarmResetApiId, + simWarmResetInterface); + iLtsyDispatchSimSimWarmReset = + static_cast(simWarmResetInterface); + __ASSERT_DEBUG(iLtsyDispatchSimSimWarmReset, CtsyDispatcherPanic(EInvalidNullPtr)); + } + + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSimFuncUnitId, MLtsyDispatchSimSetSimMessageStatusRead::KLtsyDispatchSimSetSimMessageStatusReadApiId)) + { + TAny* setSimMessageStatusReadInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchSimSetSimMessageStatusRead::KLtsyDispatchSimSetSimMessageStatusReadApiId, + setSimMessageStatusReadInterface); + iLtsyDispatchSimSetSimMessageStatusRead = + static_cast(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(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 (basePtr); + + if (iLtsyDispatchSimGetSimAuthenticationEapSimData) + { + ret = iLtsyDispatchSimGetSimAuthenticationEapSimData->HandleGetSimAuthenticationEapSimDataReqL(eapSim->iRandomParameters, + *rfStateInfo); + } + } + else + if(basePtr->ExtensionId() == RMmCustomAPI::TSimAuthenticationBase::EEapAka) + { + RMmCustomAPI::TSimAuthenticationEapAka* eapAka = static_cast(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(&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(&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(&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(&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 + (&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(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(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 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(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 + + +