--- /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 <e32std.h>
+#include <e32base.h>
+#include <e32def.h>
+#include <etelmm.h>
+#include <etelsat.h>
+
+#include <ctsy/ltsy/mltsydispatchfactory.h>
+
+#include "requestqueueoneshot.h"
+#include <ctsy/ltsy/ltsylogger.h>
+#include "mdispatchercallback.h"
+#include <ctsy/ltsy/mltsydispatchsatinterface.h>
+
+// 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_
+