--- a/telephonyserverplugins/ctsydispatchlayer/src/csmsdispatcher.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/ctsydispatchlayer/src/csmsdispatcher.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,819 +1,819 @@
-// 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 <ctsy/serviceapi/cmmsmsutility.h>
-#include "csmsdispatcher.h"
-
-#include <ctsy/ltsy/mltsydispatchsmsinterface.h>
-#include <ctsy/pluginapi/mmmessagemanagercallback.h>
-#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
-
-#include <ctsy/ltsy/ltsylogger.h>
-#include "ctsydispatcherpanic.h"
-#include "tdispatcherholder.h"
-
-CSmsDispatcher::CSmsDispatcher(
- MLtsyDispatchFactoryV1& aLtsyFactory,
- MmMessageManagerCallback& aMessageManagerCallback,
- CRequestQueueOneShot& aRequestAsyncOneShot)
- : iLtsyFactoryV1(aLtsyFactory),
- iMessageManagerCallback(aMessageManagerCallback),
- iRequestAsyncOneShot(aRequestAsyncOneShot)
- {
- } // CSmsDispatcher::CSmsDispatcher
-
-
-CSmsDispatcher::~CSmsDispatcher()
- {
- if(iLtsyDataList)
- {
- iLtsyDataList->ResetAndDestroy();
- delete iLtsyDataList;
- }
- } // CSmsDispatcher::~CSmsDispatcher
-
-
-CSmsDispatcher* CSmsDispatcher::NewLC(
- MLtsyDispatchFactoryV1& aLtsyFactory,
- MmMessageManagerCallback& aMessageManagerCallback,
- CRequestQueueOneShot& aRequestAsyncOneShot)
- {
- TSYLOGENTRYEXIT;
- CSmsDispatcher* self =
- new (ELeave) CSmsDispatcher(aLtsyFactory, aMessageManagerCallback, aRequestAsyncOneShot);
- CleanupStack::PushL(self);
- self->ConstructL();
- return self;
- } // CSmsDispatcher::NewLC
-
-
-CSmsDispatcher* CSmsDispatcher::NewL(
- MLtsyDispatchFactoryV1& aLtsyFactory,
- MmMessageManagerCallback& aMessageManagerCallback,
- CRequestQueueOneShot& aRequestAsyncOneShot)
- {
- TSYLOGENTRYEXIT;
- CSmsDispatcher* self =
- CSmsDispatcher::NewLC(aLtsyFactory, aMessageManagerCallback, aRequestAsyncOneShot);
- CleanupStack::Pop (self);
- return self;
- } // CSmsDispatcher::NewL
-
-
-void CSmsDispatcher::ConstructL()
-/**
- * Second phase constructor.
- */
- {
- TSYLOGENTRYEXIT;
-
- // Get the Licensee LTSY interfaces related to Sms functionality
- // from the factory
-
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsSendSatSms::KLtsyDispatchSmsSendSatSmsApiId))
- {
- TAny* sendSatSmsInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSmsSendSatSms::KLtsyDispatchSmsSendSatSmsApiId,
- sendSatSmsInterface);
- iLtsyDispatchSmsSendSatSms =
- static_cast<MLtsyDispatchSmsSendSatSms*>(sendSatSmsInterface);
- __ASSERT_DEBUG(iLtsyDispatchSmsSendSatSms, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsGetSmsStoreInfo::KLtsyDispatchSmsGetSmsStoreInfoApiId))
- {
- TAny* getSmsStoreInfoInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSmsGetSmsStoreInfo::KLtsyDispatchSmsGetSmsStoreInfoApiId,
- getSmsStoreInfoInterface);
- iLtsyDispatchSmsGetSmsStoreInfo =
- static_cast<MLtsyDispatchSmsGetSmsStoreInfo*>(getSmsStoreInfoInterface);
- __ASSERT_DEBUG(iLtsyDispatchSmsGetSmsStoreInfo, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsGetSmspList::KLtsyDispatchSmsGetSmspListApiId))
- {
- TAny* getSmspListInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSmsGetSmspList::KLtsyDispatchSmsGetSmspListApiId,
- getSmspListInterface);
- iLtsyDispatchSmsGetSmspList =
- static_cast<MLtsyDispatchSmsGetSmspList*>(getSmspListInterface);
- __ASSERT_DEBUG(iLtsyDispatchSmsGetSmspList, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsNackSmsStored::KLtsyDispatchSmsNackSmsStoredApiId))
- {
- TAny* nackSmsStoredInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSmsNackSmsStored::KLtsyDispatchSmsNackSmsStoredApiId,
- nackSmsStoredInterface);
- iLtsyDispatchSmsNackSmsStored =
- static_cast<MLtsyDispatchSmsNackSmsStored*>(nackSmsStoredInterface);
- __ASSERT_DEBUG(iLtsyDispatchSmsNackSmsStored, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsAckSmsStored::KLtsyDispatchSmsAckSmsStoredApiId))
- {
- TAny* ackSmsStoredInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSmsAckSmsStored::KLtsyDispatchSmsAckSmsStoredApiId,
- ackSmsStoredInterface);
- iLtsyDispatchSmsAckSmsStored =
- static_cast<MLtsyDispatchSmsAckSmsStored*>(ackSmsStoredInterface);
- __ASSERT_DEBUG(iLtsyDispatchSmsAckSmsStored, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsResumeSmsReception::KLtsyDispatchSmsResumeSmsReceptionApiId))
- {
- TAny* resumeSmsReceptionInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSmsResumeSmsReception::KLtsyDispatchSmsResumeSmsReceptionApiId,
- resumeSmsReceptionInterface);
- iLtsyDispatchSmsResumeSmsReception =
- static_cast<MLtsyDispatchSmsResumeSmsReception*>(resumeSmsReceptionInterface);
- __ASSERT_DEBUG(iLtsyDispatchSmsResumeSmsReception, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsSendSmsMessage::KLtsyDispatchSmsSendSmsMessageApiId))
- {
- TAny* sendSmsMessageInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSmsSendSmsMessage::KLtsyDispatchSmsSendSmsMessageApiId,
- sendSmsMessageInterface);
- iLtsyDispatchSmsSendSmsMessage =
- static_cast<MLtsyDispatchSmsSendSmsMessage*>(sendSmsMessageInterface);
- __ASSERT_DEBUG(iLtsyDispatchSmsSendSmsMessage, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsSendSmsMessageNoFdnCheck::KLtsyDispatchSmsSendSmsMessageNoFdnCheckApiId))
- {
- TAny* sendSmsMessageNoFdnCheckInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSmsSendSmsMessageNoFdnCheck::KLtsyDispatchSmsSendSmsMessageNoFdnCheckApiId,
- sendSmsMessageNoFdnCheckInterface);
- iLtsyDispatchSmsSendSmsMessageNoFdnCheck =
- static_cast<MLtsyDispatchSmsSendSmsMessageNoFdnCheck*>(sendSmsMessageNoFdnCheckInterface);
- __ASSERT_DEBUG(iLtsyDispatchSmsSendSmsMessageNoFdnCheck, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsSetMoSmsBearer::KLtsyDispatchSmsSetMoSmsBearerApiId))
- {
- TAny* setMoSmsBearerInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSmsSetMoSmsBearer::KLtsyDispatchSmsSetMoSmsBearerApiId,
- setMoSmsBearerInterface);
- iLtsyDispatchSmsSetMoSmsBearer =
- static_cast<MLtsyDispatchSmsSetMoSmsBearer*>(setMoSmsBearerInterface);
- __ASSERT_DEBUG(iLtsyDispatchSmsSetMoSmsBearer, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsStoreSmspListEntry::KLtsyDispatchSmsStoreSmspListEntryApiId))
- {
- TAny* storeSmspListInterface = NULL;
- iLtsyFactoryV1.GetDispatchHandler(
- MLtsyDispatchSmsStoreSmspListEntry::KLtsyDispatchSmsStoreSmspListEntryApiId,
- storeSmspListInterface);
- iLtsyDispatchSmsStoreSmspListEntry =
- static_cast<MLtsyDispatchSmsStoreSmspListEntry*>(storeSmspListInterface);
- __ASSERT_DEBUG(iLtsyDispatchSmsStoreSmspListEntry, CtsyDispatcherPanic(EInvalidNullPtr));
- }
-
- iLtsyDataList = new( ELeave ) CArrayPtrFlat< TSmsParameters >( 10 );
-
- } // CSmsDispatcher::ConstructL
-
-void CSmsDispatcher::SetDispatcherHolder(TDispatcherHolder& aDispatcherHolder)
-/**
- * Set the dispatcher holder.
- *
- * @param aDispatcherHolder Reference to dispatcher holder.
- */
- {
- TSYLOGENTRYEXIT;
-
- iDispatcherHolder = &aDispatcherHolder;
- } // CSmsDispatcher::SetDispatcherHolder
-
-TInt CSmsDispatcher::DispatchActivateSmsRoutingL()
-/**
- * Unpack data related to EMmTsyActivateSmsRouting
- * This is not passed to LTSY but just completed by dispatch layer
- *
- * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
- * the Licensee LTSY does not support this request.
- */
- {
- TSYLOGENTRYEXIT;
- // Trigger async one shot completer
-
- CRequestQueueOneShot::TIpcDataPackage* dataPackage = new (ELeave) CRequestQueueOneShot::TIpcDataPackage;
- dataPackage->iIpc = EMmTsyActivateSmsRouting;
- dataPackage->iResultCode = KErrNone;
- dataPackage->iDataPackage = NULL;
- dataPackage->iDispatcherCallback = this;
- iRequestAsyncOneShot.QueueRequest(*dataPackage);
-
- return TSYLOGSETEXITERR(KErrNone);
- } // CSmsDispatcher::DispatchActivateSmsRoutingL
-
-
-TInt CSmsDispatcher::DispatchSendSatSmsL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMmTsySmsSendSatMessage
- * 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));
-
- TSendSmsDataAndAttributes* data = NULL;
- aDataPackage->UnPackData(&data);
-
- __ASSERT_DEBUG(data, CtsyDispatcherPanic(EInvalidNullPtr));
- __ASSERT_DEBUG(data->iAttributes, CtsyDispatcherPanic(EInvalidNullPtr));
- __ASSERT_DEBUG(data->iMsgData, CtsyDispatcherPanic(EInvalidNullPtr));
-
- // Call Handle... method in Licensee LTSY
- if (iLtsyDispatchSmsSendSatSms)
- {
- ret = iLtsyDispatchSmsSendSatSms->HandleSendSatSmsReqL( *(data->iMsgData),
- (data->iAttributes->iDataFormat),
- (data->iAttributes->iGsmServiceCentre),
- (data->iAttributes->iMore)
- );
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSmsDispatcher::DispatchSendSatSmsL
-
-TInt CSmsDispatcher::DispatchGetSmsStoreInfoL()
-/**
- * @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 (iLtsyDispatchSmsGetSmsStoreInfo)
- {
- ret = iLtsyDispatchSmsGetSmsStoreInfo->HandleGetSmsStoreInfoReqL();
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSmsDispatcher::DispatchGetSmsStoreInfoL
-
-TInt CSmsDispatcher::DispatchGetSmspListL()
-/**
- * @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 (iLtsyDispatchSmsGetSmspList)
- {
- ret = iLtsyDispatchSmsGetSmspList->HandleGetSmspListReqL();
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSmsDispatcher::DispatchGetSmspListL
-
-TInt CSmsDispatcher::DispatchNackSmsStoredL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMobileSmsMessagingNackSmsStored
- * and pass request on to Licensee LTSY.
- *
- * @param aDataPackage Contains packed pointer to TDesC8 (TPDU data) and TInt (RP cause)
- *
- * @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 (iLtsyDispatchSmsNackSmsStored)
- {
- TDesC8* msgPtr = NULL;
- TInt rpCause;
- aDataPackage->UnPackData(msgPtr, rpCause);
-
- if(msgPtr)
- {
- ret = iLtsyDispatchSmsNackSmsStored->HandleNackSmsStoredReqL(*msgPtr, rpCause);
- }
- else
- {
- ret = iLtsyDispatchSmsNackSmsStored->HandleNackSmsStoredReqL(rpCause);
- }
-
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSmsDispatcher::DispatchNackSmsStoredL
-
-TInt CSmsDispatcher::DispatchAckSmsStoredL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMobileSmsMessagingAckSmsStored
- * and pass request on to Licensee LTSY.
- *
- * @param aDataPackage contains the TPDU defined for a SMS-DELIVER-REPORT
- *
- * @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 (iLtsyDispatchSmsAckSmsStored)
- {
- TDesC8* msgPtr = NULL;
- aDataPackage->UnPackData(msgPtr);
-
- if(msgPtr)
- {
- ret = iLtsyDispatchSmsAckSmsStored->HandleAckSmsStoredReqL(*msgPtr);
- }
- else
- {
- ret = iLtsyDispatchSmsAckSmsStored->HandleAckSmsStoredReqL();
- }
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSmsDispatcher::DispatchAckSmsStoredL
-
-TInt CSmsDispatcher::DispatchResumeSmsReceptionL()
-/**
- * @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 (iLtsyDispatchSmsResumeSmsReception)
- {
- ret = iLtsyDispatchSmsResumeSmsReception->HandleResumeSmsReceptionReqL();
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSmsDispatcher::DispatchResumeSmsReceptionL
-
-TInt CSmsDispatcher::DispatchSendSmsMessageL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMobileSmsMessagingSendMessage
- * 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 (iLtsyDispatchSmsSendSmsMessage)
- {
- TSendSmsDataAndAttributes* data = NULL;
- aDataPackage->UnPackData(&data);
-
- __ASSERT_DEBUG(data, CtsyDispatcherPanic(EInvalidNullPtr));
- __ASSERT_DEBUG(data->iAttributes, CtsyDispatcherPanic(EInvalidNullPtr));
- __ASSERT_DEBUG(data->iMsgData, CtsyDispatcherPanic(EInvalidNullPtr));
-
- ret = iLtsyDispatchSmsSendSmsMessage->HandleSendSmsMessageReqL( (data->iAttributes->iDestination),
- *(data->iMsgData),
- (data->iAttributes->iDataFormat),
- (data->iAttributes->iGsmServiceCentre),
- (data->iAttributes->iMore)
- );
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSmsDispatcher::DispatchSendSmsMessageL
-
-TInt CSmsDispatcher::DispatchSendSmsMessageNoFdnCheckL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMobileSmsMessagingSendMessageNoFdnCheck
- * 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 (iLtsyDispatchSmsSendSmsMessageNoFdnCheck)
- {
- TSendSmsDataAndAttributes* data = NULL;
- aDataPackage->UnPackData(&data);
-
- __ASSERT_DEBUG(data, CtsyDispatcherPanic(EInvalidNullPtr));
- __ASSERT_DEBUG(data->iAttributes, CtsyDispatcherPanic(EInvalidNullPtr));
- __ASSERT_DEBUG(data->iMsgData, CtsyDispatcherPanic(EInvalidNullPtr));
-
- ret = iLtsyDispatchSmsSendSmsMessageNoFdnCheck->HandleSendSmsMessageNoFdnCheckReqL( (data->iAttributes->iDestination),
- *(data->iMsgData),
- (data->iAttributes->iDataFormat),
- (data->iAttributes->iGsmServiceCentre),
- (data->iAttributes->iMore)
- );
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSmsDispatcher::DispatchSendSmsMessageNoFdnCheckL
-
-TInt CSmsDispatcher::DispatchSetMoSmsBearerL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMobileSmsMessagingSetMoSmsBearer
- * 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 (iLtsyDispatchSmsSendSmsMessageNoFdnCheck)
- {
- RMobileSmsMessaging::TMobileSmsBearer* data = NULL;
- aDataPackage->UnPackData(&data);
- __ASSERT_DEBUG(data, CtsyDispatcherPanic(EInvalidNullPtr));
-
- ret = iLtsyDispatchSmsSetMoSmsBearer->HandleSetMoSmsBearerReqL(*data);
- }
- return TSYLOGSETEXITERR(ret);
- } // CSmsDispatcher::DispatchSetMoSmsBearerL
-
-TInt CSmsDispatcher::DispatchStoreSmspListEntryL(const CMmDataPackage* aDataPackage)
-/**
- * Unpack data related to EMobileSmsMessagingStoreSmspList
- * 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 (iLtsyDispatchSmsStoreSmspListEntry)
- {
- RMobileSmsMessaging::TMobileSmspEntryV1* data = NULL;
- aDataPackage->UnPackData(&data);
-
- __ASSERT_DEBUG(data, CtsyDispatcherPanic(EInvalidNullPtr));
-
- ret = iLtsyDispatchSmsStoreSmspListEntry->HandleStoreSmspListEntryReqL(*data);
- }
-
- return TSYLOGSETEXITERR(ret);
- } // CSmsDispatcher::DispatchStoreSmspListL
-
-
-//
-// Callback handlers follow
-//
-
-void CSmsDispatcher::CallbackActivateSmsRouting(CRequestQueueOneShot::TIpcDataPackage* aDataPackage)
-/**
- * Callback function to be used by the request to complete .
- *
- * @param aDataPackage Package containing the IPC, return data and result code to be completed to CTSY
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aDataPackage->iResultCode);
-
- if (!aDataPackage->iCleanupOnly)
- {
- CMmDataPackage dataPackage;
- TUint8 smsRouting = KSmsRoutingActivated;
- dataPackage.PackData(static_cast<TUint8*>(&smsRouting));
- iMessageManagerCallback.Complete(EMmTsyActivateSmsRouting, &dataPackage, aDataPackage->iResultCode);
- }
- delete aDataPackage;
- } // CSmsDispatcher::CallbackActivateSmsRouting
-
-
-void CSmsDispatcher::CallbackNotifyReceiveSmsMessage(TInt aError, TBool aInd, const TSmsMsg& aSmsMessage)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSmsNotifyReceiveSmsMessageInd()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aInd Set routing activity on/off.
- * @param aSmsMessage Used to buffer incoming SMSes to the TSY.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d, aInd=%d"), aError, aInd);
-
- TSmsMsg* smsMessagePtr = &const_cast<TSmsMsg&>(aSmsMessage);
-
- // Pack the data to return to the Common TSY
- CMmDataPackage dataPackage;
- dataPackage.PackData(&aInd, &smsMessagePtr);
-
- iMessageManagerCallback.Complete(EMobileSmsMessagingReceiveMessage, &dataPackage, aError);
-
- } // CSmsDispatcher::CallbackNotifyReceiveSmsMessage
-
-void CSmsDispatcher::CallbackSendSatSms(TInt aError)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSmsSendSatSmsComp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(EMmTsySmsSendSatMessage, aError);
-
- } // CSmsDispatcher::CallbackSendSatSms
-
-void CSmsDispatcher::CallbackGetSmsStoreInfo(TInt aError, TInt aTotalEntries, TInt aUsedEntries)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSmsGetSmsStoreInfoComp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aTotalEntries Indicates the total number of entries that may be held in this store.
- * @param aUsedEntries Indicates the current number of entries held in this store.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d, aTotalEntries=%d, aUsedEntries=%d"), aError, aTotalEntries, aUsedEntries);
-
- __ASSERT_DEBUG(aTotalEntries >= 0 && aTotalEntries <= 255, CtsyDispatcherPanic(EBadLength));
-
- // Pack the data to return to the Common TSY
- TUint8 tempVar = static_cast<TUint8>(aTotalEntries);
- CMmDataPackage dataPackage;
- dataPackage.PackData(&tempVar, &aUsedEntries);
-
- iMessageManagerCallback.Complete(EMobileSmsMessagingGetMessageStoreInfo, &dataPackage, aError);
-
- } // CSmsDispatcher::CallbackGetSmsStoreInfo
-
-void CSmsDispatcher::CallbackGetSmspList(TInt aError, const TDesC& aServiceCenterAddress, const TDesC& aDestinationAddress,
- const TDesC& aAlphaTagData, const DispatcherSim::TSmsParameters& aSmsParameters, TBool aMoreToCome)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSmsGetSmspListComp()
- *
- * @param aError KErrNone on success, or another error code indicating the error otherwise.
- * @param aServiceCenterAddress Service center address.
- * @param aDestinationAddress Destination address.
- * @param aAlphaTagData Alpha tag data.
- * @param aSmsParameters Sms parametets.
- * @param aMoreToCome Are more elements to come.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d, aMoreToCome=%d"), aError, aMoreToCome);
-
- if(aError != KErrNone)
- {
- __ASSERT_DEBUG(aMoreToCome==EFalse, CtsyDispatcherPanic(EInvalidParameter));
- }
-
- //A TRAP new (Eleave) here is expensive, do a non overloaded new operator and check for NULL.
- TSmsParameters* smsParamsPtr = new TSmsParameters();
- if (!smsParamsPtr)
- {
- // not proceeding
- __ASSERT_DEBUG(NULL, CtsyDispatcherPanic(EInvalidNullPtr));
- return;
- }
- // allocation ok:
-
- __ASSERT_DEBUG( (aServiceCenterAddress.Length() < KMaxAddressBufferSize) , CtsyDispatcherPanic(EBadLength));
- smsParamsPtr->iServiceCenterAddress.Copy(aServiceCenterAddress);
-
- __ASSERT_DEBUG( (aDestinationAddress.Length() < KMaxAddressBufferSize) , CtsyDispatcherPanic(EBadLength));
- smsParamsPtr->iDestinationAddress.Copy(aDestinationAddress);
-
- __ASSERT_DEBUG( (aAlphaTagData.Length() < RMobileSmsMessaging::KMaxSmspTextSize) , CtsyDispatcherPanic(EBadLength));
- smsParamsPtr->iAlphaTagData.Copy(aAlphaTagData);
-
- smsParamsPtr->iLocationNumber = aSmsParameters.iLocationNumber;
- smsParamsPtr->iParameterIndicator = aSmsParameters.iParameterIndicator;
- smsParamsPtr->iProtocolId = aSmsParameters.iProtocolId;
- smsParamsPtr->iDataCodingScheme = aSmsParameters.iDataCodingScheme;
- smsParamsPtr->iValidityPeriod = aSmsParameters.iValidityPeriod;
- smsParamsPtr->iMobileScTON = aSmsParameters.iMobileScTON;
- smsParamsPtr->iMobileScNPI = aSmsParameters.iMobileScNPI;
- smsParamsPtr->iMobileDeTON = aSmsParameters.iMobileDeTON;
- smsParamsPtr->iMobileDeNPI = aSmsParameters.iMobileDeNPI;
- smsParamsPtr->iAlphaTagPresent = aSmsParameters.iAlphaTagPresent;
-
- TRAPD(err,iLtsyDataList->AppendL(smsParamsPtr));
- if(err != KErrNone)
- {
- delete smsParamsPtr;
- smsParamsPtr = NULL;
- }
-
- if (!aMoreToCome)
- {
- // Pack the data to return to the Common TSY
- CMmDataPackage dataPackage;
- dataPackage.PackData(iLtsyDataList);
-
- iMessageManagerCallback.Complete(EMobileSmsMessagingGetSmspListPhase1, &dataPackage, aError);
-
- // handle case, when error on completion:
- if(aError != KErrNone)
- {
- iLtsyDataList->ResetAndDestroy();
- }
- else
- {
- iLtsyDataList->Reset();
- }
- }
-
- } // CSmsDispatcher::CallbackGetSmspList
-
-void CSmsDispatcher::CallbackNackSmsStored(TInt aError)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSmsNackSmsStoredComp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(EMobileSmsMessagingNackSmsStored, aError);
-
- } // CSmsDispatcher::CallbackNackSmsStored
-
-void CSmsDispatcher::CallbackAckSmsStored(TInt aError)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSmsAckSmsStoredComp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(EMobileSmsMessagingAckSmsStored, aError);
-
- } // CSmsDispatcher::CallbackAckSmsStored
-
-void CSmsDispatcher::CallbackResumeSmsReception(TInt aError)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSmsResumeSmsReceptionComp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(EMobileSmsMessagingResumeSmsReception, aError);
- } // CSmsDispatcher::CallbackResumeSmsReception
-
-void CSmsDispatcher::CallbackSendSmsMessage(TInt aError,
- TInt aMsgRef, const TDesC8& aSmsSubmitReport)
-/**
- * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSmsSendSmsMessageComp().
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aMsgRef the message reference assigned to a sent message.
- * @param aSmsSubmitReport message string, , which is expected to be a buffer with
- * a maximum size of RMobileSmsMessaging::KGsmTpduSize
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- __ASSERT_DEBUG( (aSmsSubmitReport.Length() < RMobileSmsMessaging::KGsmTpduSize) , CtsyDispatcherPanic(EBadLength));
-
- // Pack the data to return to the Common TSY
- CMmDataPackage dataPackage;
- TPtrC8 submitReport(aSmsSubmitReport);
-
- dataPackage.PackData(&aMsgRef, &submitReport );
- iMessageManagerCallback.Complete(EMobileSmsMessagingSendMessage, &dataPackage, aError);
- } // CSmsDispatcher::CallbackSendSmsMessage
-
-void CSmsDispatcher::CallbackSendSmsMessageNoFdnCheck(TInt aError,
- TInt aMsgRef, const TDesC8& aSmsSubmitReport)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSmsSendSmsMessageNoFdnCheckComp().
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- * @param aMsgRef the message reference assigned to a sent message.
- * @param aSmsSubmitReport message string, , which is expected to be a buffer with
- * a maximum size of RMobileSmsMessaging::KGsmTpduSize
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- __ASSERT_DEBUG( (aSmsSubmitReport.Length() < RMobileSmsMessaging::KGsmTpduSize) , CtsyDispatcherPanic(EBadLength));
-
- // Pack the data to return to the Common TSY
- CMmDataPackage dataPackage;
- TBuf8<RMobileSmsMessaging::KGsmTpduSize> submitReport = aSmsSubmitReport;
-
- dataPackage.PackData(&aMsgRef, &submitReport );
- iMessageManagerCallback.Complete(EMobileSmsMessagingSendMessageNoFdnCheck, &dataPackage, aError);
- } // CSmsDispatcher::CallbackSendSmsMessageNoFdnCheck
-
-void CSmsDispatcher::CallbackSetMoSmsBearer(TInt aError)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSmsSetMoSmsBearerComp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
-
- iMessageManagerCallback.Complete(EMobileSmsMessagingSetMoSmsBearer, aError);
-
- } // CSmsDispatcher::CallbackSetMoSmsBearer
-
-void CSmsDispatcher::CallbackStoreSmspListEntry(TInt aError)
-/**
- * Callback function to be used by the request to complete
- * CCtsyDispatcherCallback::CallbackSmsStoreSmspListComp()
- *
- * @param aError The error code to be returned to the CTSY Dispatcher.
- */
- {
- TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
- iMessageManagerCallback.Complete(EMobileSmsMessagingStoreSmspList, aError);
- } // CSmsDispatcher::CallbackStoreSmspList
-
-void CSmsDispatcher::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)
- {
- case EMmTsyActivateSmsRouting:
- CallbackActivateSmsRouting(&aIpcDataPackage);
- break;
- default:
- LOG(_L8("WARNING: CSmsDispatcher::CallbackSync unhandled IPC=%d"), aIpcDataPackage.iIpc);
- __ASSERT_DEBUG(NULL, CtsyDispatcherPanic(EUnhandledCtsyIpc));
- break;
- } // switch (aIpcDataPackage.iIpc)
-
- } // CSmsDispatcher::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 <ctsy/serviceapi/cmmsmsutility.h>
+#include "csmsdispatcher.h"
+
+#include <ctsy/ltsy/mltsydispatchsmsinterface.h>
+#include <ctsy/pluginapi/mmmessagemanagercallback.h>
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+
+#include <ctsy/ltsy/ltsylogger.h>
+#include "ctsydispatcherpanic.h"
+#include "tdispatcherholder.h"
+
+CSmsDispatcher::CSmsDispatcher(
+ MLtsyDispatchFactoryV1& aLtsyFactory,
+ MmMessageManagerCallback& aMessageManagerCallback,
+ CRequestQueueOneShot& aRequestAsyncOneShot)
+ : iLtsyFactoryV1(aLtsyFactory),
+ iMessageManagerCallback(aMessageManagerCallback),
+ iRequestAsyncOneShot(aRequestAsyncOneShot)
+ {
+ } // CSmsDispatcher::CSmsDispatcher
+
+
+CSmsDispatcher::~CSmsDispatcher()
+ {
+ if(iLtsyDataList)
+ {
+ iLtsyDataList->ResetAndDestroy();
+ delete iLtsyDataList;
+ }
+ } // CSmsDispatcher::~CSmsDispatcher
+
+
+CSmsDispatcher* CSmsDispatcher::NewLC(
+ MLtsyDispatchFactoryV1& aLtsyFactory,
+ MmMessageManagerCallback& aMessageManagerCallback,
+ CRequestQueueOneShot& aRequestAsyncOneShot)
+ {
+ TSYLOGENTRYEXIT;
+ CSmsDispatcher* self =
+ new (ELeave) CSmsDispatcher(aLtsyFactory, aMessageManagerCallback, aRequestAsyncOneShot);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ } // CSmsDispatcher::NewLC
+
+
+CSmsDispatcher* CSmsDispatcher::NewL(
+ MLtsyDispatchFactoryV1& aLtsyFactory,
+ MmMessageManagerCallback& aMessageManagerCallback,
+ CRequestQueueOneShot& aRequestAsyncOneShot)
+ {
+ TSYLOGENTRYEXIT;
+ CSmsDispatcher* self =
+ CSmsDispatcher::NewLC(aLtsyFactory, aMessageManagerCallback, aRequestAsyncOneShot);
+ CleanupStack::Pop (self);
+ return self;
+ } // CSmsDispatcher::NewL
+
+
+void CSmsDispatcher::ConstructL()
+/**
+ * Second phase constructor.
+ */
+ {
+ TSYLOGENTRYEXIT;
+
+ // Get the Licensee LTSY interfaces related to Sms functionality
+ // from the factory
+
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsSendSatSms::KLtsyDispatchSmsSendSatSmsApiId))
+ {
+ TAny* sendSatSmsInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSmsSendSatSms::KLtsyDispatchSmsSendSatSmsApiId,
+ sendSatSmsInterface);
+ iLtsyDispatchSmsSendSatSms =
+ static_cast<MLtsyDispatchSmsSendSatSms*>(sendSatSmsInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSmsSendSatSms, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsGetSmsStoreInfo::KLtsyDispatchSmsGetSmsStoreInfoApiId))
+ {
+ TAny* getSmsStoreInfoInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSmsGetSmsStoreInfo::KLtsyDispatchSmsGetSmsStoreInfoApiId,
+ getSmsStoreInfoInterface);
+ iLtsyDispatchSmsGetSmsStoreInfo =
+ static_cast<MLtsyDispatchSmsGetSmsStoreInfo*>(getSmsStoreInfoInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSmsGetSmsStoreInfo, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsGetSmspList::KLtsyDispatchSmsGetSmspListApiId))
+ {
+ TAny* getSmspListInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSmsGetSmspList::KLtsyDispatchSmsGetSmspListApiId,
+ getSmspListInterface);
+ iLtsyDispatchSmsGetSmspList =
+ static_cast<MLtsyDispatchSmsGetSmspList*>(getSmspListInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSmsGetSmspList, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsNackSmsStored::KLtsyDispatchSmsNackSmsStoredApiId))
+ {
+ TAny* nackSmsStoredInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSmsNackSmsStored::KLtsyDispatchSmsNackSmsStoredApiId,
+ nackSmsStoredInterface);
+ iLtsyDispatchSmsNackSmsStored =
+ static_cast<MLtsyDispatchSmsNackSmsStored*>(nackSmsStoredInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSmsNackSmsStored, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsAckSmsStored::KLtsyDispatchSmsAckSmsStoredApiId))
+ {
+ TAny* ackSmsStoredInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSmsAckSmsStored::KLtsyDispatchSmsAckSmsStoredApiId,
+ ackSmsStoredInterface);
+ iLtsyDispatchSmsAckSmsStored =
+ static_cast<MLtsyDispatchSmsAckSmsStored*>(ackSmsStoredInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSmsAckSmsStored, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsResumeSmsReception::KLtsyDispatchSmsResumeSmsReceptionApiId))
+ {
+ TAny* resumeSmsReceptionInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSmsResumeSmsReception::KLtsyDispatchSmsResumeSmsReceptionApiId,
+ resumeSmsReceptionInterface);
+ iLtsyDispatchSmsResumeSmsReception =
+ static_cast<MLtsyDispatchSmsResumeSmsReception*>(resumeSmsReceptionInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSmsResumeSmsReception, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsSendSmsMessage::KLtsyDispatchSmsSendSmsMessageApiId))
+ {
+ TAny* sendSmsMessageInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSmsSendSmsMessage::KLtsyDispatchSmsSendSmsMessageApiId,
+ sendSmsMessageInterface);
+ iLtsyDispatchSmsSendSmsMessage =
+ static_cast<MLtsyDispatchSmsSendSmsMessage*>(sendSmsMessageInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSmsSendSmsMessage, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsSendSmsMessageNoFdnCheck::KLtsyDispatchSmsSendSmsMessageNoFdnCheckApiId))
+ {
+ TAny* sendSmsMessageNoFdnCheckInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSmsSendSmsMessageNoFdnCheck::KLtsyDispatchSmsSendSmsMessageNoFdnCheckApiId,
+ sendSmsMessageNoFdnCheckInterface);
+ iLtsyDispatchSmsSendSmsMessageNoFdnCheck =
+ static_cast<MLtsyDispatchSmsSendSmsMessageNoFdnCheck*>(sendSmsMessageNoFdnCheckInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSmsSendSmsMessageNoFdnCheck, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsSetMoSmsBearer::KLtsyDispatchSmsSetMoSmsBearerApiId))
+ {
+ TAny* setMoSmsBearerInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSmsSetMoSmsBearer::KLtsyDispatchSmsSetMoSmsBearerApiId,
+ setMoSmsBearerInterface);
+ iLtsyDispatchSmsSetMoSmsBearer =
+ static_cast<MLtsyDispatchSmsSetMoSmsBearer*>(setMoSmsBearerInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSmsSetMoSmsBearer, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSmsFuncUnitId, MLtsyDispatchSmsStoreSmspListEntry::KLtsyDispatchSmsStoreSmspListEntryApiId))
+ {
+ TAny* storeSmspListInterface = NULL;
+ iLtsyFactoryV1.GetDispatchHandler(
+ MLtsyDispatchSmsStoreSmspListEntry::KLtsyDispatchSmsStoreSmspListEntryApiId,
+ storeSmspListInterface);
+ iLtsyDispatchSmsStoreSmspListEntry =
+ static_cast<MLtsyDispatchSmsStoreSmspListEntry*>(storeSmspListInterface);
+ __ASSERT_DEBUG(iLtsyDispatchSmsStoreSmspListEntry, CtsyDispatcherPanic(EInvalidNullPtr));
+ }
+
+ iLtsyDataList = new( ELeave ) CArrayPtrFlat< TSmsParameters >( 10 );
+
+ } // CSmsDispatcher::ConstructL
+
+void CSmsDispatcher::SetDispatcherHolder(TDispatcherHolder& aDispatcherHolder)
+/**
+ * Set the dispatcher holder.
+ *
+ * @param aDispatcherHolder Reference to dispatcher holder.
+ */
+ {
+ TSYLOGENTRYEXIT;
+
+ iDispatcherHolder = &aDispatcherHolder;
+ } // CSmsDispatcher::SetDispatcherHolder
+
+TInt CSmsDispatcher::DispatchActivateSmsRoutingL()
+/**
+ * Unpack data related to EMmTsyActivateSmsRouting
+ * This is not passed to LTSY but just completed by dispatch layer
+ *
+ * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
+ * the Licensee LTSY does not support this request.
+ */
+ {
+ TSYLOGENTRYEXIT;
+ // Trigger async one shot completer
+
+ CRequestQueueOneShot::TIpcDataPackage* dataPackage = new (ELeave) CRequestQueueOneShot::TIpcDataPackage;
+ dataPackage->iIpc = EMmTsyActivateSmsRouting;
+ dataPackage->iResultCode = KErrNone;
+ dataPackage->iDataPackage = NULL;
+ dataPackage->iDispatcherCallback = this;
+ iRequestAsyncOneShot.QueueRequest(*dataPackage);
+
+ return TSYLOGSETEXITERR(KErrNone);
+ } // CSmsDispatcher::DispatchActivateSmsRoutingL
+
+
+TInt CSmsDispatcher::DispatchSendSatSmsL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMmTsySmsSendSatMessage
+ * 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));
+
+ TSendSmsDataAndAttributes* data = NULL;
+ aDataPackage->UnPackData(&data);
+
+ __ASSERT_DEBUG(data, CtsyDispatcherPanic(EInvalidNullPtr));
+ __ASSERT_DEBUG(data->iAttributes, CtsyDispatcherPanic(EInvalidNullPtr));
+ __ASSERT_DEBUG(data->iMsgData, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ // Call Handle... method in Licensee LTSY
+ if (iLtsyDispatchSmsSendSatSms)
+ {
+ ret = iLtsyDispatchSmsSendSatSms->HandleSendSatSmsReqL( *(data->iMsgData),
+ (data->iAttributes->iDataFormat),
+ (data->iAttributes->iGsmServiceCentre),
+ (data->iAttributes->iMore)
+ );
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSmsDispatcher::DispatchSendSatSmsL
+
+TInt CSmsDispatcher::DispatchGetSmsStoreInfoL()
+/**
+ * @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 (iLtsyDispatchSmsGetSmsStoreInfo)
+ {
+ ret = iLtsyDispatchSmsGetSmsStoreInfo->HandleGetSmsStoreInfoReqL();
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSmsDispatcher::DispatchGetSmsStoreInfoL
+
+TInt CSmsDispatcher::DispatchGetSmspListL()
+/**
+ * @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 (iLtsyDispatchSmsGetSmspList)
+ {
+ ret = iLtsyDispatchSmsGetSmspList->HandleGetSmspListReqL();
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSmsDispatcher::DispatchGetSmspListL
+
+TInt CSmsDispatcher::DispatchNackSmsStoredL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMobileSmsMessagingNackSmsStored
+ * and pass request on to Licensee LTSY.
+ *
+ * @param aDataPackage Contains packed pointer to TDesC8 (TPDU data) and TInt (RP cause)
+ *
+ * @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 (iLtsyDispatchSmsNackSmsStored)
+ {
+ TDesC8* msgPtr = NULL;
+ TInt rpCause;
+ aDataPackage->UnPackData(msgPtr, rpCause);
+
+ if(msgPtr)
+ {
+ ret = iLtsyDispatchSmsNackSmsStored->HandleNackSmsStoredReqL(*msgPtr, rpCause);
+ }
+ else
+ {
+ ret = iLtsyDispatchSmsNackSmsStored->HandleNackSmsStoredReqL(rpCause);
+ }
+
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSmsDispatcher::DispatchNackSmsStoredL
+
+TInt CSmsDispatcher::DispatchAckSmsStoredL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMobileSmsMessagingAckSmsStored
+ * and pass request on to Licensee LTSY.
+ *
+ * @param aDataPackage contains the TPDU defined for a SMS-DELIVER-REPORT
+ *
+ * @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 (iLtsyDispatchSmsAckSmsStored)
+ {
+ TDesC8* msgPtr = NULL;
+ aDataPackage->UnPackData(msgPtr);
+
+ if(msgPtr)
+ {
+ ret = iLtsyDispatchSmsAckSmsStored->HandleAckSmsStoredReqL(*msgPtr);
+ }
+ else
+ {
+ ret = iLtsyDispatchSmsAckSmsStored->HandleAckSmsStoredReqL();
+ }
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSmsDispatcher::DispatchAckSmsStoredL
+
+TInt CSmsDispatcher::DispatchResumeSmsReceptionL()
+/**
+ * @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 (iLtsyDispatchSmsResumeSmsReception)
+ {
+ ret = iLtsyDispatchSmsResumeSmsReception->HandleResumeSmsReceptionReqL();
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSmsDispatcher::DispatchResumeSmsReceptionL
+
+TInt CSmsDispatcher::DispatchSendSmsMessageL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMobileSmsMessagingSendMessage
+ * 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 (iLtsyDispatchSmsSendSmsMessage)
+ {
+ TSendSmsDataAndAttributes* data = NULL;
+ aDataPackage->UnPackData(&data);
+
+ __ASSERT_DEBUG(data, CtsyDispatcherPanic(EInvalidNullPtr));
+ __ASSERT_DEBUG(data->iAttributes, CtsyDispatcherPanic(EInvalidNullPtr));
+ __ASSERT_DEBUG(data->iMsgData, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ ret = iLtsyDispatchSmsSendSmsMessage->HandleSendSmsMessageReqL( (data->iAttributes->iDestination),
+ *(data->iMsgData),
+ (data->iAttributes->iDataFormat),
+ (data->iAttributes->iGsmServiceCentre),
+ (data->iAttributes->iMore)
+ );
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSmsDispatcher::DispatchSendSmsMessageL
+
+TInt CSmsDispatcher::DispatchSendSmsMessageNoFdnCheckL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMobileSmsMessagingSendMessageNoFdnCheck
+ * 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 (iLtsyDispatchSmsSendSmsMessageNoFdnCheck)
+ {
+ TSendSmsDataAndAttributes* data = NULL;
+ aDataPackage->UnPackData(&data);
+
+ __ASSERT_DEBUG(data, CtsyDispatcherPanic(EInvalidNullPtr));
+ __ASSERT_DEBUG(data->iAttributes, CtsyDispatcherPanic(EInvalidNullPtr));
+ __ASSERT_DEBUG(data->iMsgData, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ ret = iLtsyDispatchSmsSendSmsMessageNoFdnCheck->HandleSendSmsMessageNoFdnCheckReqL( (data->iAttributes->iDestination),
+ *(data->iMsgData),
+ (data->iAttributes->iDataFormat),
+ (data->iAttributes->iGsmServiceCentre),
+ (data->iAttributes->iMore)
+ );
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSmsDispatcher::DispatchSendSmsMessageNoFdnCheckL
+
+TInt CSmsDispatcher::DispatchSetMoSmsBearerL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMobileSmsMessagingSetMoSmsBearer
+ * 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 (iLtsyDispatchSmsSendSmsMessageNoFdnCheck)
+ {
+ RMobileSmsMessaging::TMobileSmsBearer* data = NULL;
+ aDataPackage->UnPackData(&data);
+ __ASSERT_DEBUG(data, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ ret = iLtsyDispatchSmsSetMoSmsBearer->HandleSetMoSmsBearerReqL(*data);
+ }
+ return TSYLOGSETEXITERR(ret);
+ } // CSmsDispatcher::DispatchSetMoSmsBearerL
+
+TInt CSmsDispatcher::DispatchStoreSmspListEntryL(const CMmDataPackage* aDataPackage)
+/**
+ * Unpack data related to EMobileSmsMessagingStoreSmspList
+ * 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 (iLtsyDispatchSmsStoreSmspListEntry)
+ {
+ RMobileSmsMessaging::TMobileSmspEntryV1* data = NULL;
+ aDataPackage->UnPackData(&data);
+
+ __ASSERT_DEBUG(data, CtsyDispatcherPanic(EInvalidNullPtr));
+
+ ret = iLtsyDispatchSmsStoreSmspListEntry->HandleStoreSmspListEntryReqL(*data);
+ }
+
+ return TSYLOGSETEXITERR(ret);
+ } // CSmsDispatcher::DispatchStoreSmspListL
+
+
+//
+// Callback handlers follow
+//
+
+void CSmsDispatcher::CallbackActivateSmsRouting(CRequestQueueOneShot::TIpcDataPackage* aDataPackage)
+/**
+ * Callback function to be used by the request to complete .
+ *
+ * @param aDataPackage Package containing the IPC, return data and result code to be completed to CTSY
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aDataPackage->iResultCode);
+
+ if (!aDataPackage->iCleanupOnly)
+ {
+ CMmDataPackage dataPackage;
+ TUint8 smsRouting = KSmsRoutingActivated;
+ dataPackage.PackData(static_cast<TUint8*>(&smsRouting));
+ iMessageManagerCallback.Complete(EMmTsyActivateSmsRouting, &dataPackage, aDataPackage->iResultCode);
+ }
+ delete aDataPackage;
+ } // CSmsDispatcher::CallbackActivateSmsRouting
+
+
+void CSmsDispatcher::CallbackNotifyReceiveSmsMessage(TInt aError, TBool aInd, const TSmsMsg& aSmsMessage)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSmsNotifyReceiveSmsMessageInd()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aInd Set routing activity on/off.
+ * @param aSmsMessage Used to buffer incoming SMSes to the TSY.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d, aInd=%d"), aError, aInd);
+
+ TSmsMsg* smsMessagePtr = &const_cast<TSmsMsg&>(aSmsMessage);
+
+ // Pack the data to return to the Common TSY
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&aInd, &smsMessagePtr);
+
+ iMessageManagerCallback.Complete(EMobileSmsMessagingReceiveMessage, &dataPackage, aError);
+
+ } // CSmsDispatcher::CallbackNotifyReceiveSmsMessage
+
+void CSmsDispatcher::CallbackSendSatSms(TInt aError)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSmsSendSatSmsComp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(EMmTsySmsSendSatMessage, aError);
+
+ } // CSmsDispatcher::CallbackSendSatSms
+
+void CSmsDispatcher::CallbackGetSmsStoreInfo(TInt aError, TInt aTotalEntries, TInt aUsedEntries)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSmsGetSmsStoreInfoComp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aTotalEntries Indicates the total number of entries that may be held in this store.
+ * @param aUsedEntries Indicates the current number of entries held in this store.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d, aTotalEntries=%d, aUsedEntries=%d"), aError, aTotalEntries, aUsedEntries);
+
+ __ASSERT_DEBUG(aTotalEntries >= 0 && aTotalEntries <= 255, CtsyDispatcherPanic(EBadLength));
+
+ // Pack the data to return to the Common TSY
+ TUint8 tempVar = static_cast<TUint8>(aTotalEntries);
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(&tempVar, &aUsedEntries);
+
+ iMessageManagerCallback.Complete(EMobileSmsMessagingGetMessageStoreInfo, &dataPackage, aError);
+
+ } // CSmsDispatcher::CallbackGetSmsStoreInfo
+
+void CSmsDispatcher::CallbackGetSmspList(TInt aError, const TDesC& aServiceCenterAddress, const TDesC& aDestinationAddress,
+ const TDesC& aAlphaTagData, const DispatcherSim::TSmsParameters& aSmsParameters, TBool aMoreToCome)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSmsGetSmspListComp()
+ *
+ * @param aError KErrNone on success, or another error code indicating the error otherwise.
+ * @param aServiceCenterAddress Service center address.
+ * @param aDestinationAddress Destination address.
+ * @param aAlphaTagData Alpha tag data.
+ * @param aSmsParameters Sms parametets.
+ * @param aMoreToCome Are more elements to come.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d, aMoreToCome=%d"), aError, aMoreToCome);
+
+ if(aError != KErrNone)
+ {
+ __ASSERT_DEBUG(aMoreToCome==EFalse, CtsyDispatcherPanic(EInvalidParameter));
+ }
+
+ //A TRAP new (Eleave) here is expensive, do a non overloaded new operator and check for NULL.
+ TSmsParameters* smsParamsPtr = new TSmsParameters();
+ if (!smsParamsPtr)
+ {
+ // not proceeding
+ __ASSERT_DEBUG(NULL, CtsyDispatcherPanic(EInvalidNullPtr));
+ return;
+ }
+ // allocation ok:
+
+ __ASSERT_DEBUG( (aServiceCenterAddress.Length() < KMaxAddressBufferSize) , CtsyDispatcherPanic(EBadLength));
+ smsParamsPtr->iServiceCenterAddress.Copy(aServiceCenterAddress);
+
+ __ASSERT_DEBUG( (aDestinationAddress.Length() < KMaxAddressBufferSize) , CtsyDispatcherPanic(EBadLength));
+ smsParamsPtr->iDestinationAddress.Copy(aDestinationAddress);
+
+ __ASSERT_DEBUG( (aAlphaTagData.Length() < RMobileSmsMessaging::KMaxSmspTextSize) , CtsyDispatcherPanic(EBadLength));
+ smsParamsPtr->iAlphaTagData.Copy(aAlphaTagData);
+
+ smsParamsPtr->iLocationNumber = aSmsParameters.iLocationNumber;
+ smsParamsPtr->iParameterIndicator = aSmsParameters.iParameterIndicator;
+ smsParamsPtr->iProtocolId = aSmsParameters.iProtocolId;
+ smsParamsPtr->iDataCodingScheme = aSmsParameters.iDataCodingScheme;
+ smsParamsPtr->iValidityPeriod = aSmsParameters.iValidityPeriod;
+ smsParamsPtr->iMobileScTON = aSmsParameters.iMobileScTON;
+ smsParamsPtr->iMobileScNPI = aSmsParameters.iMobileScNPI;
+ smsParamsPtr->iMobileDeTON = aSmsParameters.iMobileDeTON;
+ smsParamsPtr->iMobileDeNPI = aSmsParameters.iMobileDeNPI;
+ smsParamsPtr->iAlphaTagPresent = aSmsParameters.iAlphaTagPresent;
+
+ TRAPD(err,iLtsyDataList->AppendL(smsParamsPtr));
+ if(err != KErrNone)
+ {
+ delete smsParamsPtr;
+ smsParamsPtr = NULL;
+ }
+
+ if (!aMoreToCome)
+ {
+ // Pack the data to return to the Common TSY
+ CMmDataPackage dataPackage;
+ dataPackage.PackData(iLtsyDataList);
+
+ iMessageManagerCallback.Complete(EMobileSmsMessagingGetSmspListPhase1, &dataPackage, aError);
+
+ // handle case, when error on completion:
+ if(aError != KErrNone)
+ {
+ iLtsyDataList->ResetAndDestroy();
+ }
+ else
+ {
+ iLtsyDataList->Reset();
+ }
+ }
+
+ } // CSmsDispatcher::CallbackGetSmspList
+
+void CSmsDispatcher::CallbackNackSmsStored(TInt aError)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSmsNackSmsStoredComp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(EMobileSmsMessagingNackSmsStored, aError);
+
+ } // CSmsDispatcher::CallbackNackSmsStored
+
+void CSmsDispatcher::CallbackAckSmsStored(TInt aError)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSmsAckSmsStoredComp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(EMobileSmsMessagingAckSmsStored, aError);
+
+ } // CSmsDispatcher::CallbackAckSmsStored
+
+void CSmsDispatcher::CallbackResumeSmsReception(TInt aError)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSmsResumeSmsReceptionComp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(EMobileSmsMessagingResumeSmsReception, aError);
+ } // CSmsDispatcher::CallbackResumeSmsReception
+
+void CSmsDispatcher::CallbackSendSmsMessage(TInt aError,
+ TInt aMsgRef, const TDesC8& aSmsSubmitReport)
+/**
+ * Callback function to be used by the request to complete CCtsyDispatcherCallback::CallbackSmsSendSmsMessageComp().
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aMsgRef the message reference assigned to a sent message.
+ * @param aSmsSubmitReport message string, , which is expected to be a buffer with
+ * a maximum size of RMobileSmsMessaging::KGsmTpduSize
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ __ASSERT_DEBUG( (aSmsSubmitReport.Length() < RMobileSmsMessaging::KGsmTpduSize) , CtsyDispatcherPanic(EBadLength));
+
+ // Pack the data to return to the Common TSY
+ CMmDataPackage dataPackage;
+ TPtrC8 submitReport(aSmsSubmitReport);
+
+ dataPackage.PackData(&aMsgRef, &submitReport );
+ iMessageManagerCallback.Complete(EMobileSmsMessagingSendMessage, &dataPackage, aError);
+ } // CSmsDispatcher::CallbackSendSmsMessage
+
+void CSmsDispatcher::CallbackSendSmsMessageNoFdnCheck(TInt aError,
+ TInt aMsgRef, const TDesC8& aSmsSubmitReport)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSmsSendSmsMessageNoFdnCheckComp().
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ * @param aMsgRef the message reference assigned to a sent message.
+ * @param aSmsSubmitReport message string, , which is expected to be a buffer with
+ * a maximum size of RMobileSmsMessaging::KGsmTpduSize
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ __ASSERT_DEBUG( (aSmsSubmitReport.Length() < RMobileSmsMessaging::KGsmTpduSize) , CtsyDispatcherPanic(EBadLength));
+
+ // Pack the data to return to the Common TSY
+ CMmDataPackage dataPackage;
+ TBuf8<RMobileSmsMessaging::KGsmTpduSize> submitReport = aSmsSubmitReport;
+
+ dataPackage.PackData(&aMsgRef, &submitReport );
+ iMessageManagerCallback.Complete(EMobileSmsMessagingSendMessageNoFdnCheck, &dataPackage, aError);
+ } // CSmsDispatcher::CallbackSendSmsMessageNoFdnCheck
+
+void CSmsDispatcher::CallbackSetMoSmsBearer(TInt aError)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSmsSetMoSmsBearerComp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+
+ iMessageManagerCallback.Complete(EMobileSmsMessagingSetMoSmsBearer, aError);
+
+ } // CSmsDispatcher::CallbackSetMoSmsBearer
+
+void CSmsDispatcher::CallbackStoreSmspListEntry(TInt aError)
+/**
+ * Callback function to be used by the request to complete
+ * CCtsyDispatcherCallback::CallbackSmsStoreSmspListComp()
+ *
+ * @param aError The error code to be returned to the CTSY Dispatcher.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
+ iMessageManagerCallback.Complete(EMobileSmsMessagingStoreSmspList, aError);
+ } // CSmsDispatcher::CallbackStoreSmspList
+
+void CSmsDispatcher::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)
+ {
+ case EMmTsyActivateSmsRouting:
+ CallbackActivateSmsRouting(&aIpcDataPackage);
+ break;
+ default:
+ LOG(_L8("WARNING: CSmsDispatcher::CallbackSync unhandled IPC=%d"), aIpcDataPackage.iIpc);
+ __ASSERT_DEBUG(NULL, CtsyDispatcherPanic(EUnhandledCtsyIpc));
+ break;
+ } // switch (aIpcDataPackage.iIpc)
+
+ } // CSmsDispatcher::CallbackSync
+
+
+