telephonyserverplugins/simatktsy/src/csatmessagerouterproxy.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/simatktsy/src/csatmessagerouterproxy.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/simatktsy/src/csatmessagerouterproxy.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,633 +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 
-
+// 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 
+