diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/ctsydispatchlayer/inc/csatdispatcher.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/ctsydispatchlayer/inc/csatdispatcher.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,234 @@ +// 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: +// + +/** + @file + @internalAll +*/ + +#ifndef __CSATDISPATCHER_H_ +#define __CSATDISPATCHER_H_ + +// INCLUDES +#include +#include +#include +#include +#include + +#include + +#include "requestqueueoneshot.h" +#include +#include "mdispatchercallback.h" +#include + +// FORWARD DECLARATIONS +class CMmDataPackage; +class MmMessageManagerCallback; +class TDispatcherHolder; +class MLtsyDispatchSatSmsDeliverReport; +class MLtsyDispatchSatGetImageInstance; +class MLtsyDispatchSatGetIconData; +class MLtsyDispatchSatGetClut; +class MLtsyDispatchSatGetDefaultBearerCapability; +class MLtsyDispatchSatGetSmsPpDownloadSupported; +class MLtsyDispatchSatGetSmsControlActivated; +class MLtsyDispatchSatCellBroadcastEnvelope; +class MLtsyDispatchSatGetAccessTechnology; +class MLtsyDispatchSatTimingAdvance; +class MLtsyDispatchSatSmControlResponseData; +class MLtsyDispatchSatProvideLocationInfo; +class MLtsyDispatchSatSetPollingInterval; +class MLtsyDispatchSatSmsPpDownloadEnvelope; +class MLtsyDispatchSatLocalInformationNmr; +class MLtsyDispatchSatCallAndSmsControlEnvelope; +class MLtsyDispatchSatRefreshAllowed; +class MLtsyDispatchSatReady; +class MLtsyDispatchSatPCmdNotification; +class MLtsyDispatchSatUssdControlEnvelopeError; +class MLtsyDispatchSatTimerExpirationEnvelope; +class MLtsyDispatchSatTerminalRsp; +class MLtsyDispatchSatMenuSelectionEnvelope; +class MLtsyDispatchSatEventDownloadEnvelope; +class MLtsyDispatchSatGetUssdControlSupported; + +class MStkTsyCallOrigin; + + + +// CLASS DECLARATION + +/** + * This class is responsible for packing and unpacking data belonging + * to Sat related requests to the Licensee LTSY. + */ +class CSatDispatcher : public CBase, public MDispatcherCallback + { +public: + + virtual ~CSatDispatcher(); + + static CSatDispatcher* NewL( + MLtsyDispatchFactoryV1& aLtsyFactory, + MmMessageManagerCallback& aTsyMessageManagerCallback, + MmMessageManagerCallback& aSatMessageManagerCallback, + CRequestQueueOneShot& aRequestAsyncOneShot); + + static CSatDispatcher* NewLC( + MLtsyDispatchFactoryV1& aLtsyFactory, + MmMessageManagerCallback& aTsyMessageManagerCallback, + MmMessageManagerCallback& aSatMessageManagerCallback, + CRequestQueueOneShot& aRequestAsyncOneShot); + + + // Dispatcher functions for dispatching requests DOWN to the Licensee LTSY + + TInt DispatchSmsDeliverReportL(const CMmDataPackage* aDataPackage); + TInt DispatchGetImageInstanceL(const CMmDataPackage* aDataPackage); + TInt DispatchGetIconDataL(const CMmDataPackage* aDataPackage); + TInt DispatchGetClutL(const CMmDataPackage* aDataPackage); + TInt DispatchGetDefaultBearerCapabilityL(); + TInt DispatchSmsPpDdlStatusL(); + TInt DispatchGetSmsControlActivatedL(); + TInt DispatchCellBroadcastL(const CMmDataPackage* aDataPackage); + TInt DispatchTimingAdvanceL(); + TInt DispatchNotifySmControlRequestL(const CMmDataPackage* aDataPackage); + TInt DispatchProvideLocationInfoL(); + TInt DispatchSetPollingIntervalL(const CMmDataPackage* aDataPackage); + TInt DispatchSmsPpDdlL(const CMmDataPackage* aDataPackage); + TInt DispatchAccessTechnologyL(); + TInt DispatchLocalInformationNmrL(); + TInt DispatchSendEnvelopeL(const CMmDataPackage* aDataPackage); + TInt DispatchServiceRequestL(const CMmDataPackage* aDataPackage); + TInt DispatchReadyL(); + TInt DispatchPCmdNotificationL(const CMmDataPackage* aDataPackage); + TInt DispatchUssdControlEnvelopeErrorL(); + TInt DispatchTimerExpiredL(const CMmDataPackage* aDataPackage); + TInt DispatchTerminalRspL(const CMmDataPackage* aDataPackage); + TInt DispatchMenuSelectionL(const CMmDataPackage* aDataPackage); + TInt DispatchEventDownloadL(const CMmDataPackage* aDataPackage); + TInt DispatchGetUssdControlSupportedL(); + + + // Complete functions for receiving completions UP from the Licensee LTSY + // via the CCtsyDispatcherCallback object. + + void CallbackUssdControlSupported(TInt aError, TBool aUssdStatus); + void CallbackPcmd(TInt aError, const TDesC8& aData); + void CallbackNotifyProactiveSimSessionEnd(TInt aError, TUint8 aStatusWord1, TUint8 aStatusWord2); + void CallbackTimeZoneChange(TInt aError, TUint8 aTimeZone); + void CallbackAccessTechnologyChange(TInt aError, TUint8 aCurrentAccessTechnology); + void CallbackCallConnected(TInt aError, TUint8 aTransactionId, TBool aNearEnd); + void CallbackSsChange(TInt aError, DispatcherSat::TSsStatus aStatus); + void CallbackCallDisconnected(TInt aError, TUint8 aTransactionId, TBool aNearEnd, const TDesC8& aCause); + void CallbackMtCall(TInt aError, TUint8 aTransactionId, const TDesC8& aAddress, const TDesC8& aSubAddress); + void CallbackCallControlEnvelopeResponse(TInt aError, const TDesC8& aResponseTlv); + void CallbackCreateCallControlEnvelope(TInt aError, TUint8 aTag, const TDesC8& aBcc1, const TDesC8& aBcc2, const TDesC8& aAddress, TUint8 aTonNpi, TUint8 aDcs); + void CallbackCreateSmControlEnvelope(TInt aError, const TDesC8& aRpDestinationAddress, const TDesC8& aTpDestinationAddress); + void CallbackImsiChanged(TInt aError); + void CallbackLocationStatus(TInt aError, TUint8 aLcnStatus, const TDesC8& aCountryCode, + TUint16 aLcnAreaCode, TUint16 aCellId); + void CallbackRemoveEventList(TInt aError); + void CallbackCreateRefreshTerminalRsp(TInt aError, RSat::TPCmdResult aGeneralResult, const TDesC& aResultAdditionalInfo); + void CallbackSmControlEnvelopeResponse(TInt aError, const TDesC8& aResponseTlv); + void CallbackSatCreateSmsPpDownloadEnvelope(TInt aError, const TDesC8& aAddress, const TDesC8& aSmsTpdu); + void CallbackCreateSmsDeliverReport(TInt aError); + void CallbackCreateCellBroadcastEnvelope(TInt aError, const TDesC8& aCellBroadcastPage); + void CallbackGetImageInstance(TInt aError, const TDesC8& aImageInstanceData, const TDesC8& aImageInstanceBody); + void CallbackGetIconData(TInt aError, const TDesC8& aIconEfImgRecord); + void CallbackGetClut(TInt aError, const TDesC8& aClut); + void CallbackGetDefaultBearerCapability(TInt aError, const TDesC8& aCapability); + void CallbackGetSmsPpDownloadSupported(TInt aError, TBool aSupported); + void CallbackGetSmsControlActivated(TInt aError, TBool aSmsMoControlActivated); + void CallbackTimingAdvance(TInt aError, TUint8 aTimingAdvance, TUint8 aMeStatus); + void CallbackProvideLocationInfo(TInt aError, TUint16 aLocationAreaCode, TUint16 aCellId, + const TDesC8& aOperatorCode); + void CallbackSetPolling(TInt aError, TUint8 aPollingInterval); + void CallbackLocalInformationNmr(TInt aError, const TDesC8& aNmr, const TDesC& aBcchList); + void CallbackRefreshAllowed(TInt aError); + void CallbackReady(TInt aError); + void CallbackGetAccessTechnology(TInt aError, TUint8 aAccessTechnology); + void CallbackUssdControlEnvelopeError(TInt aError); + void CallbackTerminalRsp(TInt aError); + + // From MDispatcherCallback + void CallbackSync(CRequestQueueOneShot::TIpcDataPackage& aIpcDataPackage); + + // Other public functions + void SetDispatcherHolder(TDispatcherHolder& aDispatcherHolder); + + void SetSatCallOriginInterface(MStkTsyCallOrigin& aSatCallOrigin); + + TBool IsSimOriginatedCall(const RMobilePhone::TMobileAddress& aDialledParty); + +private: + + CSatDispatcher(MLtsyDispatchFactoryV1& aLtsyFactory, + MmMessageManagerCallback& aMessageManagerCallback, + MmMessageManagerCallback& aSatMessageManagerCallback, + CRequestQueueOneShot& aRequestAsyncOneShot); + + void ConstructL(); + + void CompleteNotifyLocalInfo(TInt aError); + +private: // Not owned + MStkTsyCallOrigin* iStkTsyCallOrigin; + +private: // Not owned + MLtsyDispatchFactoryV1& iLtsyFactoryV1; + MmMessageManagerCallback& iTsyMessageManagerCallback; + MmMessageManagerCallback& iMessageManagerCallback; + CRequestQueueOneShot& iRequestAsyncOneShot; + TDispatcherHolder* iDispatcherHolder; + + // Interfaces in the Licensee LTSY, not owned by this object + + MLtsyDispatchSatSmsDeliverReport* iLtsyDispatchSatSmsDeliverReport; + MLtsyDispatchSatGetImageInstance* iLtsyDispatchSatGetImageInstance; + MLtsyDispatchSatGetIconData* iLtsyDispatchSatGetIconData; + MLtsyDispatchSatGetClut* iLtsyDispatchSatGetClut; + MLtsyDispatchSatGetDefaultBearerCapability* iLtsyDispatchSatGetDefaultBearerCapability; + MLtsyDispatchSatGetSmsPpDownloadSupported* iLtsyDispatchSatGetSmsPpDownloadSupported; + MLtsyDispatchSatGetSmsControlActivated* iLtsyDispatchSatGetSmsControlActivated; + MLtsyDispatchSatCellBroadcastEnvelope* iLtsyDispatchSatCellBroadcast; + MLtsyDispatchSatTimingAdvance* iLtsyDispatchSatTimingAdvance; + MLtsyDispatchSatSmControlResponseData* iLtsyDispatchSatSmControlResponseData; + MLtsyDispatchSatProvideLocationInfo* iLtsyDispatchSatProvideLocationInfo; + MLtsyDispatchSatSetPollingInterval* iLtsyDispatchSatSetPollingInterval; + MLtsyDispatchSatSmsPpDownloadEnvelope* iLtsyDispatchSatSmsPpDownloadEnvelope; + MLtsyDispatchSatLocalInformationNmr* iLtsyDispatchSatLocalInformationNmr; + MLtsyDispatchSatCallAndSmsControlEnvelope* iLtsyDispatchSatSendEnvelope; + MLtsyDispatchSatRefreshAllowed* iLtsyDispatchSatRefreshAllowed; + MLtsyDispatchSatReady* iLtsyDispatchSatReady; + MLtsyDispatchSatPCmdNotification* iLtsyDispatchSatPCmdNotification; + MLtsyDispatchSatUssdControlEnvelopeError* iLtsyDispatchSatUssdControlEnvelopeError; + MLtsyDispatchSatTimerExpirationEnvelope* iLtsyDispatchSatTimerExpired; + MLtsyDispatchSatTerminalRsp* iLtsyDispatchSatTerminalRsp; + MLtsyDispatchSatGetAccessTechnology* iLtsyDispatchSatAccTech; + MLtsyDispatchSatMenuSelectionEnvelope* iLtsyDispatchSatMenuSelection; + MLtsyDispatchSatEventDownloadEnvelope* iLtsyDispatchSatEventDownload; + MLtsyDispatchSatGetUssdControlSupported* iLtsyDispatchSatGetUssdControlSupported; + + //record that a provide local info proactive command is currently operating and that + //a request has been sent to the LTSY for the particular info we need, and when it arrives + //we can complete the terminal response and proactive command. + TBool iLocalInfoOngoing; + + }; // class CSatDispatcher + +#endif // __CSATDISPATCHER_H_ +