diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/simatktsy/src/csatmessagerouterproxy.cpp --- /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 +// 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(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( object )-> + CompletePCmdL( aDataPackage, aResult ); + break; + } + case ESatNotifyProactiveSimSessionEnd: + { + reinterpret_cast( object )-> + CompleteNotifyL( aDataPackage, aResult ); + break; + } + case ESatTsyProvideLocalInfo: + { + reinterpret_cast( object )-> + CompleteUpdateLocalInfo( aDataPackage, aResult ); + break; + } + case ESatTsyLocalInformationNmr: + { + reinterpret_cast( object )-> + CompleteUpdateNetInfo( aDataPackage, aResult ); + break; + } + case ESatTsyAccTech: + { + reinterpret_cast( object )-> + CompleteUpdateAccTech( aDataPackage, aResult ); + break; + } + case ESatTsyTimeZone: + { + reinterpret_cast( object )-> + CompleteUpdateTimeZone( aDataPackage, aResult ); + break; + } + case ESatTsyGetIMEI: + { + reinterpret_cast( object )-> + CompleteUpdateIMEI( aDataPackage, aResult ); + break; + } + case ESatTsyTimingAdvance: + { + reinterpret_cast( object )-> + CompleteUpdateTimingAdvAndMEStatus( aDataPackage, aResult ); + break; + } + case ESatTsyNotifyLocalInfo: + { + reinterpret_cast( object )-> + CompleteTerminalRespDataL( aDataPackage, aResult ); + break; + } + case ESatTsySetPolling: + { + reinterpret_cast( object )-> + SetPollingResultL( aDataPackage, aResult ); + break; + } + case ESatTsyCreateEnvelope: + { + reinterpret_cast( object )->CreateEnvelopeL( + aDataPackage ); + break; + } + case ESatTsyMoSmControlEnvelope: + { + reinterpret_cast( object )-> + CreateMoSmsCtrlEnvelopeL( aDataPackage, aResult) ; + break; + } + case ESatTsyGetBearerCapability: + { + reinterpret_cast( object )-> + CompleteBearerCapability( aDataPackage, aResult ); + break; + } + case ESatTsyCheckAtkDataForAlphaId: + { + reinterpret_cast( object )->CheckIfAlphaIdPresent( + aDataPackage ); + break; + } + case ESatTsyCallEvent: + case ESatTsySSEvent: + case ESatTsyUSSDEvent: + { + reinterpret_cast( object )->CompleteCCEventL( + aIpc, aDataPackage ); + break; + } + case ESatNotifyCallControlRequest: + { + reinterpret_cast( object )-> + CompleteNotifyL( aDataPackage, aResult ); + break; + } + case ESatNotifyMoSmControlRequest: + { + reinterpret_cast( object )-> + CompleteNotifyL( aDataPackage, aResult) ; + break; + } + case ESatTsyMoSmsControlActivation: + { + reinterpret_cast( object )-> + SetActivationStatus( aDataPackage ) ; + break; + } + case ESatTsyCallConnected: + { + reinterpret_cast( object )-> + CompleteCallConnectedL( aDataPackage ); + break; + } + case ESatTsyCallDisconnected: + { + reinterpret_cast( object )-> + CompleteCallDisconnectedL( aDataPackage ); + break; + } + case ESatTsyLocationStatus: + { + reinterpret_cast( object )-> + CompleteLocationStatusL( aDataPackage ); + break; + } + case ESatTsyAccessTechnologyChange: + { + reinterpret_cast( object )-> + CompleteAccessTechnologyChangeL( aDataPackage ); + break; + } + case ESatTsyMTCall: + { + reinterpret_cast( object )-> + CompleteMTCallL( aDataPackage ); + break; + } + case ESatTsyRemoveEventList: + { + reinterpret_cast( object )-> + SetUpEventList( 0 ); + break; + } + case ESatTsyCellBroadcast: + { + reinterpret_cast( object )-> + CompleteCellBroadcastDdlL( aDataPackage ); + break; + } + case ESatTsySmsPpDdl: + { + reinterpret_cast( object )-> + CompleteSmsPpDdlL( aDataPackage ); + break; + } + case ESatTsyReadCbmids: + { + reinterpret_cast( object )-> + CompleteReadCbmidsL( ); + break; + } + case ESatTsySmsPpDdlStatus: + { + reinterpret_cast( object )-> + SetSmsPpDdlStatus( aDataPackage ) ; + break; + } + case ESatTsySmsDeliverReport: + { + reinterpret_cast( object )-> + CreateSmsDeliverReportL( aResult ) ; + break; + } + case ESatTsyGetIconData: + { + reinterpret_cast( object )-> + CompleteGetIcon( aDataPackage, aResult ); + break; + } + case ESatTsyGetImageInstance: + { + reinterpret_cast( object )-> + CompleteGetImageInstance( aDataPackage, aResult ); + break; + } + case ESatTsyGetClut: + { + reinterpret_cast( object )-> + CompleteGetClut( aDataPackage, aResult ); + break; + } + case ESatTsyRefresh: + { + reinterpret_cast( object )-> + CompleteTerminalRespDataL( aDataPackage, aResult); + break; + } + case ESatTsyCompleteRefresh: + { + reinterpret_cast( object )-> + CompleteRequest( aDataPackage, aResult); + break; + } + case ESatTsyImsiChanged: + { + reinterpret_cast( object )-> + CompleteImsiChange(); + break; + } + case ESatTsySetProactiveCommandOnGoingStatus: + { + reinterpret_cast( object )-> + SetProactiveCommandOnGoingStatus( aDataPackage, aResult ); + break; + } + case ESatTsySsStatus: + { + reinterpret_cast( object )-> + SetSsStatus( aDataPackage ) ; + break; + } + case ESatTsyUssdStatus: + { + reinterpret_cast( object )->SetUssdStatus( + aDataPackage ) ; + break; + } + default: + break; + } + } + else + { + TFLOGSTRING("CSatMessageRouterProxy::RouteCompletion, IPC NOT HANDLED.!!!"); + } + } + +// ================= OTHER EXPORTED FUNCTIONS =============================== + + //None + + +// End of File +