diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/ctsydispatchlayer/src/csimdispatcher.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/ctsydispatchlayer/src/csimdispatcher.cpp Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +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 + + +