--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/simatktsy/src/csatmessagerouterproxy.cpp Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,633 @@
+// Copyright (c) 2006-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:
+// Name : CSatMessageRouterProxy.cpp
+// Part of : Common SIM ATK TSY / commonsimatktsy
+// Routes between Tsy objects and Message Handler objects
+// Version : 1.0
+// INCLUDE FILES
+//
+
+
+
+#include <satcs.h>
+// Tsy module files
+#include "CSatDataPackage.h"
+// Sat
+#include "CSatMessageRouterProxy.h"
+#include "CSatTsy.h"
+#include "CSatNotificationsTsy.h"
+#include "CSatCCTsy.h"
+#include "CSatIconTsy.h"
+#include "CSatNotifyDisplayText.h"
+#include "CSatNotifyGetInkey.h"
+#include "CSatNotifyGetInput.h"
+#include "CSatNotifyPlayTone.h"
+#include "CSatNotifySetUpMenu.h"
+#include "CSatNotifySelectItem.h"
+#include "CSatNotifySendSm.h"
+#include "CSatNotifySendUssd.h"
+#include "CSatNotifySendSs.h"
+#include "CSatNotifySetUpIdleModeText.h"
+#include "CSatNotifyLaunchBrowser.h"
+#include "CSatNotifySimSessionEnd.h"
+#include "CSatNotifyCallControlRequest.h"
+#include "CSatNotifySetUpCall.h"
+#include "CSatNotifySetUpEventList.h"
+#include "CSatNotifyTimerMgmt.h"
+#include "CSatNotifyLanguageNotification.h"
+#include "CSatNotifySendDtmf.h"
+#include "CSatNotifyPollingOff.h"
+#include "CSatNotifyPollInterval.h"
+#include "CSatNotifyLocalInfo.h"
+#include "CSatNotifyRefresh.h"
+#include "CSatNotifyMoSmControlRequest.h"
+#include "CSatEventDownloadTsy.h"
+#include "CSatDataDownloadTsy.h"
+// Utilities
+#include "tflogger.h"
+#include "msattsy_ipcdefs.h"
+#include "ctsydelegates.h"
+
+// EXTERNAL DATA STRUCTURES
+ //None
+
+// EXTERNAL FUNCTION PROTOTYPES
+ //None
+
+// CONSTANTS
+ //None
+
+// MACROS
+ //None
+
+// LOCAL CONSTANTS AND MACROS
+ //None
+
+// MODULE DATA STRUCTURES
+ //None
+
+// LOCAL FUNCTION PROTOTYPES
+ //None
+
+// ==================== LOCAL FUNCTIONS =====================================
+
+ //None
+
+
+// ================= MEMBER FUNCTIONS =======================================
+
+// -----------------------------------------------------------------------------
+// CSatDataDownloadTsy::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CSatMessageRouterProxy* CSatMessageRouterProxy::NewL(CTsyDelegates& aTsyDelegates)
+ {
+ TFLOGSTRING( "CSAT: CSatMessageRouterProxy::NewL" );
+
+ CSatMessageRouterProxy* satMessageRouterProxy =
+ new ( ELeave ) CSatMessageRouterProxy(aTsyDelegates);
+ CleanupStack::PushL( satMessageRouterProxy );
+ satMessageRouterProxy->ConstructL();
+ CleanupStack::Pop();
+
+ TFLOGSTRING("CSAT: CSatMessageRouterProxy::NewL, end of method");
+ return satMessageRouterProxy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSatMessageRouterProxy::~CSatMessageRouterProxy
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CSatMessageRouterProxy::~CSatMessageRouterProxy
+ (
+ void
+ )
+ {
+ TFLOGSTRING( "CSAT: CSatMessageRouterProxy::~CSatMessageRouterProxy" );
+ }
+
+// -----------------------------------------------------------------------------
+// CSatMessageRouterProxy::CSatMessageRouterProxy
+// C++ constructor
+// -----------------------------------------------------------------------------
+//
+CSatMessageRouterProxy::CSatMessageRouterProxy(CTsyDelegates& aTsyDelegates)
+: iTsyDelegates(aTsyDelegates)
+ {
+ // None
+ }
+
+// -----------------------------------------------------------------------------
+// CSatMessageRouterProxy::ConstructL
+// Symbian 2nd phase constructor. Initialises internal attributes.
+// -----------------------------------------------------------------------------
+//
+void CSatMessageRouterProxy::ConstructL
+ (
+ void
+ )
+ {
+ TFLOGSTRING( "CSAT: CSatMessageRouterProxy::ConstructL, noes nothing" );
+ }
+
+// -----------------------------------------------------------------------------
+// CSatMessageRouterProxy::RouteRequest
+// Dummy implementation
+// -----------------------------------------------------------------------------
+//
+MMmMessHandlerBase* CSatMessageRouterProxy::RouteRequest
+ (
+ TInt /*aIpc*/
+ )
+ {
+ // Dummy implementation
+ TFLOGSTRING( "CSAT: CSatMessageRouterProxy::RouteRequest: DUMMY" );
+ return NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// CSatMessageRouterProxy::RouteCompletion
+// Completes a request or notification via the specific Tsy object, based on
+// IPC number and data package
+// -----------------------------------------------------------------------------
+//
+void CSatMessageRouterProxy::RouteCompletion
+ (
+ TInt aIpc,
+ CSatDataPackage* aDataPackage,
+ TInt aResult
+ )
+ {
+ TInt trapError( KErrNone );
+ TRAP( trapError, RouteCompletionL( aIpc, aDataPackage, aResult ) );
+
+ if ( KErrNone != trapError )
+ {
+ TFLOGSTRING2("CSatMessageRouterProxy::RouteCompletion, trapError=%d",
+ trapError);
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CSatMessageRouterProxy::GetObjectForCompletion
+// Returns the pointer to the Tsy object needed for completion, based
+// on the IPC number and the data package
+// -----------------------------------------------------------------------------
+//
+CBase* CSatMessageRouterProxy::GetObjectForCompletion
+ (
+ const TInt aIpc,
+ CSatDataPackage* /*aDataPackage*/
+ )
+ {
+ TFLOGSTRING("CSAT: CMmMessageRouterBase::GetObjectForCompletion");
+ CBase* satObject = NULL;
+
+ CMmMessageManagerBase::TTsyObjects tsyObject =
+ GetTsyObjectFromIpc( aIpc );
+ // Get the object
+ satObject = iTsyDelegates.GetTsyObject(tsyObject);
+ return satObject;
+ }
+
+// -----------------------------------------------------------------------------
+// CSatMessageRouterProxy::GetTsyObjectFromIpc
+// Returns the type of Tsy object needed for completion, based
+// on the IPC number
+// -----------------------------------------------------------------------------
+//
+ CMmMessageManagerBase::TTsyObjects CSatMessageRouterProxy::GetTsyObjectFromIpc
+ (
+ const TInt aIpc
+ ) const
+
+ {
+ TFLOGSTRING( "CSAT: CSatMessageRouterProxy::GetTsyObjectFromIpc" );
+ // A default value must be given as a initialization, however, nothing will
+ // be done if the IPC does not mach as well in RouteCompletion
+ CMmMessageManagerBase::TTsyObjects retObject =
+ CMmMessageManagerBase::ESatTsyObjType;
+
+ switch ( aIpc )
+ {
+ // General
+ case ESatTerminalRsp:
+ case ESatMenuSelection:
+ case ESatSendMessageNoLogging:
+ {
+ retObject = CMmMessageManagerBase::ESatTsyObjType;
+ break;
+ }
+ // Icon
+ case ESatTsyGetIconData:
+ case ESatTsyGetImageInstance:
+ case ESatTsyGetClut:
+ {
+ retObject = CMmMessageManagerBase::ESatIconTsyObjType;
+ break;
+ }
+ // Notifications
+ case ESatTsyPCmd:
+ case ESatTsySetPolling:
+ case ESatTsySetProactiveCommandOnGoingStatus:
+ {
+ retObject = CMmMessageManagerBase::ESatNotificationsTsyObjType;
+ break;
+ }
+ case ESatNotifyProactiveSimSessionEnd:
+ {
+ retObject = CMmMessageManagerBase::ESatNotifySimSessionEndObjType;
+ break;
+ }
+ case ESatTsyRefresh:
+ case ESatTsyCompleteRefresh:
+ case ESatTsyImsiChanged:
+ {
+ retObject = CMmMessageManagerBase::ESatNotifyRefreshObjType;
+ break;
+ }
+ case ESatTsyNotifyLocalInfo:
+ case ESatTsyProvideLocalInfo:
+ case ESatTsyLocalInformationNmr:
+ case ESatTsyAccTech:
+ case ESatTsyTimingAdvance:
+ case ESatTsyTimeZone:
+ case ESatTsyGetIMEI:
+ case ESatNotifyLocalInfoPCmd:
+ {
+ retObject = CMmMessageManagerBase::ESatNotifyLocalInfoObjType;
+ break;
+ }
+ case ESatNotifySetUpEventListPCmd:
+ {
+ retObject = CMmMessageManagerBase::ESatNotifySetUpEventListObjType;
+ break;
+ }
+ case ESatNotifyMoSmControlRequest:
+ case ESatTsyMoSmControlEnvelope:
+ case ESatTsyMoSmsControlActivation:
+ {
+ retObject =
+ CMmMessageManagerBase::ESatNotifyMoSmControlRequestObjType;
+ break;
+ }
+ case ESatTsySsStatus:
+ {
+ retObject = CMmMessageManagerBase::ESatNotifyLaunchBrowserObjType;
+ break;
+ }
+ case ESatNotifyCallControlRequest:
+ {
+ retObject =
+ CMmMessageManagerBase::ESatNotifyCallControlRequestObjType;
+ break;
+ }
+ // Event Download
+ case ESatTsyCallDisconnected:
+ case ESatTsyLocationStatus:
+ case ESatTsyCallConnected:
+ case ESatTsyMTCall:
+ case ESatTsyAccessTechnologyChange:
+ case ESatEventDownload:
+ case ESatTsyRemoveEventList:
+ {
+ retObject = CMmMessageManagerBase::ESatEventDownloadTsyObjType;
+ break;
+ }
+ // Call Control
+ case ESatTsyGetBearerCapability:
+ case ESatTsyCheckAtkDataForAlphaId:
+ case ESatTsyCallEvent:
+ case ESatTsySSEvent:
+ case ESatTsyUSSDEvent:
+ case ESatTsyCreateEnvelope:
+ case ESatTsyUssdStatus:
+ {
+ retObject = CMmMessageManagerBase::ESatCCTsyObjType;
+ break;
+ }
+ case ESatTsyCellBroadcast:
+ case ESatTsySmsPpDdl:
+ case ESatTsyReadCbmids:
+ case ESatTsySmsPpDdlStatus:
+ case ESatTsySmsDeliverReport:
+ {
+ retObject = CMmMessageManagerBase::ESatDataDownloadTsyObjType;
+ break;
+ }
+ default:
+ break;
+ }
+
+ return retObject;
+ }
+
+// ---------------------------------------------------------------------------
+// CMmMessageRouterProxy::Complete
+// Complete with a data package
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void CSatMessageRouterProxy::Complete(
+ TInt aIpc,
+ CMmDataPackage* aData,
+ TInt aResult )
+ {
+TFLOGSTRING3("TSY: CMmMessageRouterProxy::Complete. IPC = %d, result: %d", aIpc, aResult);
+ RouteCompletion( aIpc, static_cast<CSatDataPackage*>(aData), aResult );
+ }
+
+// ---------------------------------------------------------------------------
+// CMmMessageRouterProxy::Complete
+// Complete without a data package
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void CSatMessageRouterProxy::Complete( TInt aIpc, TInt aResult )
+ {
+ CSatDataPackage emptyDataPackage;
+ Complete( aIpc, &emptyDataPackage, aResult );
+ }
+
+// -----------------------------------------------------------------------------
+// CSatMessageRouterProxy::RouteCompletion
+// Completes a request or notification via the specific Tsy object, based on
+// IPC number and data package
+// -----------------------------------------------------------------------------
+//
+void CSatMessageRouterProxy::RouteCompletionL
+ (
+ TInt aIpc,
+ CSatDataPackage* aDataPackage,
+ TInt aResult
+ )
+ {
+ TFLOGSTRING3("CSAT: CSatMessageRouterProxy::RouteCompletion ipc=%d, \
+ error: %d", aIpc, aResult);
+ CBase* object = GetObjectForCompletion( aIpc, aDataPackage );
+
+ if ( NULL != object )
+ {
+ switch ( aIpc )
+ {
+ case ESatTsyPCmd:
+ {
+ reinterpret_cast<CSatNotificationsTsy*>( object )->
+ CompletePCmdL( aDataPackage, aResult );
+ break;
+ }
+ case ESatNotifyProactiveSimSessionEnd:
+ {
+ reinterpret_cast<CSatNotifySimSessionEnd*>( object )->
+ CompleteNotifyL( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsyProvideLocalInfo:
+ {
+ reinterpret_cast<CSatNotifyLocalInfo*>( object )->
+ CompleteUpdateLocalInfo( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsyLocalInformationNmr:
+ {
+ reinterpret_cast<CSatNotifyLocalInfo*>( object )->
+ CompleteUpdateNetInfo( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsyAccTech:
+ {
+ reinterpret_cast<CSatNotifyLocalInfo*>( object )->
+ CompleteUpdateAccTech( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsyTimeZone:
+ {
+ reinterpret_cast<CSatNotifyLocalInfo*>( object )->
+ CompleteUpdateTimeZone( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsyGetIMEI:
+ {
+ reinterpret_cast<CSatNotifyLocalInfo*>( object )->
+ CompleteUpdateIMEI( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsyTimingAdvance:
+ {
+ reinterpret_cast<CSatNotifyLocalInfo*>( object )->
+ CompleteUpdateTimingAdvAndMEStatus( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsyNotifyLocalInfo:
+ {
+ reinterpret_cast<CSatNotifyLocalInfo*>( object )->
+ CompleteTerminalRespDataL( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsySetPolling:
+ {
+ reinterpret_cast<CSatNotificationsTsy*>( object )->
+ SetPollingResultL( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsyCreateEnvelope:
+ {
+ reinterpret_cast<CSatCCTsy*>( object )->CreateEnvelopeL(
+ aDataPackage );
+ break;
+ }
+ case ESatTsyMoSmControlEnvelope:
+ {
+ reinterpret_cast<CSatNotifyMoSmControlRequest*>( object )->
+ CreateMoSmsCtrlEnvelopeL( aDataPackage, aResult) ;
+ break;
+ }
+ case ESatTsyGetBearerCapability:
+ {
+ reinterpret_cast<CSatCCTsy*>( object )->
+ CompleteBearerCapability( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsyCheckAtkDataForAlphaId:
+ {
+ reinterpret_cast<CSatCCTsy*>( object )->CheckIfAlphaIdPresent(
+ aDataPackage );
+ break;
+ }
+ case ESatTsyCallEvent:
+ case ESatTsySSEvent:
+ case ESatTsyUSSDEvent:
+ {
+ reinterpret_cast<CSatCCTsy*>( object )->CompleteCCEventL(
+ aIpc, aDataPackage );
+ break;
+ }
+ case ESatNotifyCallControlRequest:
+ {
+ reinterpret_cast<CSatNotifyCallControlRequest*>( object )->
+ CompleteNotifyL( aDataPackage, aResult );
+ break;
+ }
+ case ESatNotifyMoSmControlRequest:
+ {
+ reinterpret_cast<CSatNotifyMoSmControlRequest*>( object )->
+ CompleteNotifyL( aDataPackage, aResult) ;
+ break;
+ }
+ case ESatTsyMoSmsControlActivation:
+ {
+ reinterpret_cast<CSatNotifyMoSmControlRequest*>( object )->
+ SetActivationStatus( aDataPackage ) ;
+ break;
+ }
+ case ESatTsyCallConnected:
+ {
+ reinterpret_cast<CSatEventDownloadTsy*>( object )->
+ CompleteCallConnectedL( aDataPackage );
+ break;
+ }
+ case ESatTsyCallDisconnected:
+ {
+ reinterpret_cast<CSatEventDownloadTsy*>( object )->
+ CompleteCallDisconnectedL( aDataPackage );
+ break;
+ }
+ case ESatTsyLocationStatus:
+ {
+ reinterpret_cast<CSatEventDownloadTsy*>( object )->
+ CompleteLocationStatusL( aDataPackage );
+ break;
+ }
+ case ESatTsyAccessTechnologyChange:
+ {
+ reinterpret_cast<CSatEventDownloadTsy*>( object )->
+ CompleteAccessTechnologyChangeL( aDataPackage );
+ break;
+ }
+ case ESatTsyMTCall:
+ {
+ reinterpret_cast<CSatEventDownloadTsy*>( object )->
+ CompleteMTCallL( aDataPackage );
+ break;
+ }
+ case ESatTsyRemoveEventList:
+ {
+ reinterpret_cast<CSatEventDownloadTsy*>( object )->
+ SetUpEventList( 0 );
+ break;
+ }
+ case ESatTsyCellBroadcast:
+ {
+ reinterpret_cast<CSatDataDownloadTsy*>( object )->
+ CompleteCellBroadcastDdlL( aDataPackage );
+ break;
+ }
+ case ESatTsySmsPpDdl:
+ {
+ reinterpret_cast<CSatDataDownloadTsy*>( object )->
+ CompleteSmsPpDdlL( aDataPackage );
+ break;
+ }
+ case ESatTsyReadCbmids:
+ {
+ reinterpret_cast<CSatDataDownloadTsy*>( object )->
+ CompleteReadCbmidsL( );
+ break;
+ }
+ case ESatTsySmsPpDdlStatus:
+ {
+ reinterpret_cast<CSatDataDownloadTsy*>( object )->
+ SetSmsPpDdlStatus( aDataPackage ) ;
+ break;
+ }
+ case ESatTsySmsDeliverReport:
+ {
+ reinterpret_cast<CSatDataDownloadTsy*>( object )->
+ CreateSmsDeliverReportL( aResult ) ;
+ break;
+ }
+ case ESatTsyGetIconData:
+ {
+ reinterpret_cast<CSatIconTsy*>( object )->
+ CompleteGetIcon( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsyGetImageInstance:
+ {
+ reinterpret_cast<CSatIconTsy*>( object )->
+ CompleteGetImageInstance( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsyGetClut:
+ {
+ reinterpret_cast<CSatIconTsy*>( object )->
+ CompleteGetClut( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsyRefresh:
+ {
+ reinterpret_cast<CSatNotifyRefresh*>( object )->
+ CompleteTerminalRespDataL( aDataPackage, aResult);
+ break;
+ }
+ case ESatTsyCompleteRefresh:
+ {
+ reinterpret_cast<CSatNotifyRefresh*>( object )->
+ CompleteRequest( aDataPackage, aResult);
+ break;
+ }
+ case ESatTsyImsiChanged:
+ {
+ reinterpret_cast<CSatNotifyRefresh*>( object )->
+ CompleteImsiChange();
+ break;
+ }
+ case ESatTsySetProactiveCommandOnGoingStatus:
+ {
+ reinterpret_cast<CSatNotificationsTsy*>( object )->
+ SetProactiveCommandOnGoingStatus( aDataPackage, aResult );
+ break;
+ }
+ case ESatTsySsStatus:
+ {
+ reinterpret_cast<CSatNotifyLaunchBrowser*>( object )->
+ SetSsStatus( aDataPackage ) ;
+ break;
+ }
+ case ESatTsyUssdStatus:
+ {
+ reinterpret_cast<CSatCCTsy*>( object )->SetUssdStatus(
+ aDataPackage ) ;
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ else
+ {
+ TFLOGSTRING("CSatMessageRouterProxy::RouteCompletion, IPC NOT HANDLED.!!!");
+ }
+ }
+
+// ================= OTHER EXPORTED FUNCTIONS ===============================
+
+ //None
+
+
+// End of File
+