# HG changeset patch # User mikaruus # Date 1263458698 -7200 # Node ID 8ccc39f9d7870ef51d3a88575fdb64616e5c5485 # Parent 510c70acdbf6403479ab61f8c5da27f0ab1c1d5e New release based on our 2010wk02 release diff -r 510c70acdbf6 -r 8ccc39f9d787 _ccmwaid.inf --- a/_ccmwaid.inf Mon Nov 09 10:36:19 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -/nokia/ou_nmp/groups/gscm/dbs/ou1cfspd/db -5414757 -ou1cfspd#1/project/modemadaptation/MCL_200946_001 diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/bcaiscadapter/bcatoisc_dll/group/bcatoisc.mmp --- a/adaptationlayer/bcaiscadapter/bcatoisc_dll/group/bcatoisc.mmp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/bcaiscadapter/bcatoisc_dll/group/bcatoisc.mmp Thu Jan 14 10:44:58 2010 +0200 @@ -20,6 +20,7 @@ #include #include +SMPSAFE TARGET bcatoisc.dll TARGETTYPE dll UID 0x1000008D 0x102857A0 diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dpbreak.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dpbreak.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dpbreak.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -31,9 +31,9 @@ #include "dplog.h" // dataport logging #include -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dpbreaktraces.h" +#include "dpbreakTraces.h" #endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dpcommpep.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dpcommpep.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dpcommpep.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -28,9 +28,9 @@ #include "dplog.h" // dataport logging #include "pep_comm_types.h" // structures for isi-message interface -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dpcommpeptraces.h" +#include "dpcommpepTraces.h" #endif // LOCAL FUNCTION PROTOTYPES diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dpdatabuffer.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dpdatabuffer.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dpdatabuffer.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -24,9 +24,9 @@ #include "dpdataelement.h" // data elements #include "dpdataclient.h" // data client that access buffer #include "dplog.h" // dataport logging -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dpdatabuffertraces.h" +#include "dpdatabufferTraces.h" #endif // LOCAL FUNCTION PROTOTYPES diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dpdataconfig.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dpdataconfig.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dpdataconfig.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -30,9 +30,9 @@ #include "dplog.h" // dataport logging #include -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dpdataconfigtraces.h" +#include "dpdataconfigTraces.h" #endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dpdataelement.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dpdataelement.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dpdataelement.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -22,9 +22,9 @@ #include "dpdataclient.h" // data client that access buffer #include "dpdef.h" // dataport definitions #include "dplog.h" // dataport logging -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dpdataelementtraces.h" +#include "dpdataelementTraces.h" #endif // EXTERNAL DATA STRUCTURES @@ -377,7 +377,8 @@ TInt ret( KErrNone ); iSize = aSize; - if ( iDB.iHead > iDB.iTreshold ) + if ( iDB.iHead > iDB.iTreshold || + ( iDB.iHead + aSize ) > iDB.iBuf->Length() ) { iDB.iHead = 0; } diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dpdataport.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dpdataport.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dpdataport.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -44,9 +44,9 @@ #include "dptermdetect.h" // terminal bytes detection #include "pep_comm_types.h" // structures for isi-message interface #include "dplog.h" // dataport logging -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dpdataporttraces.h" +#include "dpdataportTraces.h" #endif // LOCAL FUNCTION PROTOTYPES diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dpdte2tx.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dpdte2tx.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dpdte2tx.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -26,9 +26,9 @@ #include "dpescdetect.h" // escape sequence detection #include "dprx2dte.h" // moves data from rx buffer to client #include "dplog.h" // dataport logging -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dpdte2txtraces.h" +#include "dpdte2txTraces.h" #endif // LOCAL FUNCTION PROTOTYPES diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dpescdetect.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dpescdetect.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dpescdetect.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -37,9 +37,9 @@ extern RFile DpLogFile; #endif // USE_FILE_DEBUG -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dpescdetecttraces.h" +#include "dpescdetectTraces.h" #endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dpflowctrl.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dpflowctrl.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dpflowctrl.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -24,9 +24,9 @@ #include "dppif.h" // dcs pipe interface #include #include "dplog.h" // dataport logging -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dpflowctrltraces.h" +#include "dpflowctrlTraces.h" #endif // EXTERNAL DATA STRUCTURES @@ -170,6 +170,10 @@ { iDataPort.DeleteDataPort(); } + else + { + RequestIscFlowControlNotification(); + } //no else } } diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dpmif.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dpmif.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dpmif.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -29,9 +29,9 @@ #include "dppif.h" // pipe interface pif #include "dpcommpep.h" // comm pep interface. interaction with mif #include "dplog.h" // dataport logging -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dpmiftraces.h" +#include "dpmifTraces.h" #endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dpobserver.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dpobserver.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dpobserver.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -21,9 +21,9 @@ #include "dpdef.h" // dataport definitions #include "dpobserver.h" // abstract observer class #include "dplog.h" // dataport logging -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dpobservertraces.h" +#include "dpobserverTraces.h" #endif // EXTERNAL DATA STRUCTURES diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dpparityhandler.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dpparityhandler.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dpparityhandler.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -21,9 +21,9 @@ #include "dpdef.h" // dataport definitions #include "dpparityhandler.h" // parity bit handling (7-bit data mode) #include "dplog.h" // dataport logging -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dpparityhandlertraces.h" +#include "dpparityhandlerTraces.h" #endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dppif.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dppif.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dppif.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -26,9 +26,9 @@ #include "dpmif.h" // message inteface (mif) #include "dplog.h" // dataport logging #include -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dppiftraces.h" +#include "dppifTraces.h" #endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dppn2rx.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dppn2rx.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dppn2rx.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -26,9 +26,9 @@ #include "dpdataconfig.h" // configuration store #include "dpparityhandler.h" // parity bit handling in 7-bit data mode #include "dplog.h" // dataport logging -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dppn2rxtraces.h" +#include "dppn2rxTraces.h" #endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dprx2dte.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dprx2dte.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dprx2dte.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -26,9 +26,9 @@ #include "dpdataconfig.h" // configuration store #include "dptermdetect.h" // terminator detection #include "dplog.h" // dataport logging -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dprx2dtetraces.h" +#include "dprx2dteTraces.h" #endif // EXTERNAL DATA STRUCTURES diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dptermdetect.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dptermdetect.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dptermdetect.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -24,9 +24,9 @@ #include "dpstd.h" // fault codes etc. #include "dpdataconfig.h" // configuration store #include "dplog.h" // dataport logging -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dptermdetecttraces.h" +#include "dptermdetectTraces.h" #endif // EXTERNAL DATA STRUCTURES diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/dataport/dataport_csy/src/dptx2pn.cpp --- a/adaptationlayer/dataport/dataport_csy/src/dptx2pn.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/dataport/dataport_csy/src/dptx2pn.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -29,9 +29,9 @@ #include "dpparityhandler.h" // parity bit handling in 7-bit data mode #include "pep_comm_types.h" // pep_comm_types #include "dplog.h" // dataport logging -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE -#include "dptx2pntraces.h" +#include "dptx2pnTraces.h" #endif // EXTERNAL DATA STRUCTURES diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_event_handler_ape_cent.cpp --- a/adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_event_handler_ape_cent.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_event_handler_ape_cent.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -37,7 +37,7 @@ #include "dmc_mce_isi.h" #include "dmc_trace.h" -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE #include "dmc_event_handler_ape_centTraces.h" #endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_extension.cpp --- a/adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_extension.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_extension.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -28,7 +28,7 @@ #include "dmc_trace.h" #include "dmc_event_handler_ape_cent.h" -#include "osttracedefinitions.h" // For Open System Trace +#include "OstTraceDefinitions.h" // For Open System Trace #ifdef OST_TRACE_COMPILER_IN_USE #include "dmc_extensionTraces.h" #endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_logical_channel.cpp --- a/adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_logical_channel.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_logical_channel.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -25,7 +25,7 @@ #include "dmc_logical_device.h" #include "dmc_trace.h" -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE #include "dmc_logical_channelTraces.h" #endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_logical_device.cpp --- a/adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_logical_device.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_logical_device.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -27,7 +27,7 @@ #include "dmc_trace.h" -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE #include "dmc_logical_deviceTraces.h" #endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_mce_isi.cpp --- a/adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_mce_isi.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/devicemodecontroller/dmc_ext/src/dmc_mce_isi.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -32,7 +32,7 @@ #include "dmc_mce_isi.h" #include "dmc_trace.h" -#include "osttracedefinitions.h" +#include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE #include "dmc_mce_isiTraces.h" #endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/devicemodecontroller/dmc_ext/traces/osttracedefinitions.h --- a/adaptationlayer/devicemodecontroller/dmc_ext/traces/osttracedefinitions.h Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/devicemodecontroller/dmc_ext/traces/osttracedefinitions.h Thu Jan 14 10:44:58 2010 +0200 @@ -17,5 +17,5 @@ #ifndef __OSTTRACEDEFINITIONS_H__ #define __OSTTRACEDEFINITIONS_H__ -#include +#include #endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/group/bld.inf --- a/adaptationlayer/group/bld.inf Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/group/bld.inf Thu Jan 14 10:44:58 2010 +0200 @@ -21,19 +21,11 @@ PRJ_PLATFORMS DEFAULT - -#ifndef NCP_COMMON_BRIDGE_FAMILY -#include "../dataport/group/bld.inf" -#endif - +#include "../bcaiscadapter/group/bld.inf" +#include "../devicemodecontroller/group/bld.inf" #include "../modematadaptation/group/bld.inf" -#include "../bcaiscadapter/group/bld.inf" - -#ifdef NCP_COMMON_BRIDGE_FAMILY -#include "../devicemodecontroller/group/bld.inf" #include "../systemstatemanageradaptation/group/bld.inf" #include "../tsy/group/bld.inf" -#endif PRJ_EXPORTS ../rom/adaptationlayer.iby NON_FOUNDATION_CORE_ADAPT_LAYER_IBY_EXPORT_PATH(adaptationlayer.iby) diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematcommon_dll/group/modematcommon_dll.mmp --- a/adaptationlayer/modematadaptation/modematcommon_dll/group/modematcommon_dll.mmp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematcommon_dll/group/modematcommon_dll.mmp Thu Jan 14 10:44:58 2010 +0200 @@ -24,6 +24,7 @@ VENDORID VID_DEFAULT +SMPSAFE TARGET modemat_common.dll TARGETTYPE PLUGIN UID 0x10009D8D 0x2001FCB4 diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematcommon_dll/src/modemat_common.cpp --- a/adaptationlayer/modematadaptation/modematcommon_dll/src/modemat_common.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematcommon_dll/src/modemat_common.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -121,7 +121,7 @@ } if ( aMask & KModeVerbose ) { - aMode |= iQuietMode * KVerboseModeBase; + aMode |= iVerboseMode * KVerboseModeBase; C_TRACE((_L("verbosemode %d"), aMode)); } if ( aMask & KModeCarriage ) @@ -426,20 +426,17 @@ void CModemAtCommon::HandleCommandModeChanged( TInt aErr, TCommandMode aMode ) { C_TRACE((_L("CModemAtCommon::HandleCommandModeChanged( aErr: %d, aMode: %d) "), aErr, aMode)); - ASSERT_PANIC_ALWAYS( aErr == KErrNone ); - ASSERT_PANIC_ALWAYS( aMode != EIgnore ); - - iCommandMode = aMode; - TUint mode( 0 ); - mode |= KCommandModeChanged; - if( aMode != EDataMode) - { - C_TRACE((_L("Not EDataMode"))); - mode |= KModeCommand; - } - C_TRACE((_L("COMMON PLUGIN SendModeStatusChange: 0x%x"), mode)); - SendModeStatusChange( mode ); - } + iCommandMode = aMode; + TUint mode( 0 ); + mode |= KCommandModeChanged; + if( aMode != EDataMode) + { + C_TRACE((_L("Not EDataMode"))); + mode |= KModeCommand; + } + C_TRACE((_L("COMMON PLUGIN SendModeStatusChange: 0x%x"), mode)); + SendModeStatusChange( mode ); + } // End of File diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematcontroller_dll/group/modematcontroller_dll.mmp --- a/adaptationlayer/modematadaptation/modematcontroller_dll/group/modematcontroller_dll.mmp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematcontroller_dll/group/modematcontroller_dll.mmp Thu Jan 14 10:44:58 2010 +0200 @@ -23,6 +23,7 @@ +SMPSAFE TARGET modematcontroller.dll TARGETTYPE dll UID 0x1000008d 0x2001FCB0 diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematcontroller_exe/group/modematcontroller_exe.mmp --- a/adaptationlayer/modematadaptation/modematcontroller_exe/group/modematcontroller_exe.mmp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematcontroller_exe/group/modematcontroller_exe.mmp Thu Jan 14 10:44:58 2010 +0200 @@ -21,6 +21,7 @@ #include +SMPSAFE TARGET modematcontroller.exe TARGETTYPE exe UID 0x1000008d 0x2001FCB1 diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematcontroller_exe/inc/cmodemathandler.h --- a/adaptationlayer/modematadaptation/modematcontroller_exe/inc/cmodemathandler.h Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematcontroller_exe/inc/cmodemathandler.h Thu Jan 14 10:44:58 2010 +0200 @@ -87,15 +87,58 @@ * @return Disconnect status */ TInt Disconnect( const TUint8 aDteId ); + + /** + * Check if disconnect is called directly + * @return ETrue if disconnect called directly + */ TBool IsDisconnected(); + + /** + * HandleCommandModeChange + * @param TUint8 aDteId + * @param TCommandMode aMode + */ void HandleCommandModeChange( TInt aDteid, TCommandMode aMode ); + /** + * SendAtModemDataRedirectResultReq + * @param TUint8 aDteId + * @param TUint aResult + */ void SendAtModemDataRedirectResultReq( const TUint8 aDteId, const TUint aResult); + + /** + * SendEscapeSignalDetection + * @param TUint8 aDteId + * @return Symbian error code if error + */ TInt SendEscapeSignalDetection( const TUint8 aDteId ); + + /** + * HandleSignalDetectedResp + * @param TIsiReceiveC aMessage + */ void HandleSignalDetectedResp( const TIsiReceiveC& aMessage ); + + /** + * RemovePipe + * @param TUint8 aDteId + */ void RemovePipe( const TUint8 aDteId ); + + /** + * IsPluginConnected + * @return ETrue if plugin is connected + */ TBool IsPluginConnected(); + /** + * SetModemAtExistsInCmt + * @param TBool aModemAtExistsInCmt + */ + void SetModemAtExistsInCmt( TBool aModemAtExistsInCmt ); + protected: // from CActive void RunL(); @@ -111,25 +154,26 @@ * 2nd phase constructor */ void ConstructL(); - + /** + * Open ISI channel + */ void OpenChannelL(); + + /** + * ISI message handlers + */ void HandleATResponse(const TIsiReceiveC& aMessage); - #ifdef __WINSCW__ void HandleATResponse( ); #endif void HandleModemConnectResp( const TIsiReceiveC& aMessage); void HandleSignalInd(const TIsiReceiveC& aMessage); void HandleUnsolicitedData(const TIsiReceiveC& aMessage); - - TInt GetMinSizeDividendByFour( TInt aSize); - void HandleIntermediateDataInd(const TIsiReceiveC& aMessage); void HandleRedirectInd(const TIsiReceiveC& aMessage); void HandleRedirectResultResp(const TIsiReceiveC& aMessage); void SetDisconnected( TBool aIsDisconnected ); - private: //data CModemAtSrv& iServer; @@ -153,7 +197,7 @@ #endif TUint8 iLastTransactionId[KMaxNumOfTransactionIds]; TBool iDisconnected; - + TBool iModemAtExistInCmt; }; #endif // CMODEMATHANDLER_H diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematcontroller_exe/inc/cmodematpipecontroller.h --- a/adaptationlayer/modematadaptation/modematcontroller_exe/inc/cmodematpipecontroller.h Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematcontroller_exe/inc/cmodematpipecontroller.h Thu Jan 14 10:44:58 2010 +0200 @@ -95,7 +95,7 @@ /** * Queries AT MODEM object id. */ - void SendTaskIdQuery(); + void QueryModemAtFromNameService(); #endif private: /** @@ -208,8 +208,6 @@ TInt iPipeHandle; //handle of created pipe TUint iDataportDevId; //Dataport device-id TUint iDataportObjId; //Dataport obj-id - TUint iCellmoDevId; //AT Modem device-id - TUint iCellmoObjId; //AT Modem obj-id TPipeInfo iPipeTable[KMaxDteIdCount]; //created pipes CModemAtHandler& iAtHandler; //forwards AT-commands to the AT MODEM CActiveSchedulerWait* iSchedulerWait; diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematcontroller_exe/inc/cmodematsrv.h --- a/adaptationlayer/modematadaptation/modematcontroller_exe/inc/cmodematsrv.h Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematcontroller_exe/inc/cmodematsrv.h Thu Jan 14 10:44:58 2010 +0200 @@ -76,14 +76,14 @@ * @return Number of sessions open */ TInt SessionCount(); - + /** * Connect session to the modem * @param CModemAtSession* aSession Pointer to the session * @return Connection status: KErrNone, KErrAlreadyExists */ - void ConnectToModem( CModemAtSession* aSession); - + TInt ConnectToModem( CModemAtSession* aSession); + /** * HandleSignalInd * @param aDteId Device Terminal ID @@ -189,3 +189,4 @@ }; #endif // CMODEMATSRV_H + diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematcontroller_exe/src/cmodemathandler.cpp --- a/adaptationlayer/modematadaptation/modematcontroller_exe/src/cmodemathandler.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematcontroller_exe/src/cmodemathandler.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -97,17 +97,16 @@ iReceivedMessage( NULL ), iPepObjId(0), iPipeController(NULL), - iDisconnected( EFalse ) + iDisconnected( EFalse ), + iModemAtExistInCmt( EFalse ) { C_TRACE (( _T("CModemAtHandler::CModemAtHandler") )); - } void CModemAtHandler::DoCancel() { C_TRACE (( _T("CModemAtHandler::DoCancel()") )); iIscApi->ReceiveCancel(); - } @@ -229,7 +228,7 @@ #ifndef __WINSCW__ OpenChannelL(); #ifndef NCP_COMMON_BRIDGE_FAMILY - iPipeController->SendTaskIdQuery(); + iPipeController->QueryModemAtFromNameService(); #endif #else iEmulatedValue = 0; @@ -237,16 +236,6 @@ } - -TInt CModemAtHandler::GetMinSizeDividendByFour( TInt aSize) - { - C_TRACE (( _T("CModemAtHandler::GetMinSizeDividendByFour(%d)"),aSize )); - aSize += aSize % KAlignToFourBytes; - - C_TRACE (( _T("CModemAtHandler::GetMinSizeDividendByFour return: %d"),aSize )); - return aSize; - } - TInt CModemAtHandler::SendATCommand(const TUint8 aDteId, const TATPluginInterface aPluginType, const TUint8 aMessageType, @@ -273,7 +262,11 @@ TInt size = ISI_HEADER_SIZE + AT_MODEM_CMD_REQ_OFFSET_CMDLINEBUFFER + aCmd.Length(); - TInt sizeWithFillers = GetMinSizeDividendByFour( size ); + TInt sizeWithFillers = size; + while( sizeWithFillers % KAlignToFourBytes ) + { + sizeWithFillers++; + } C_TRACE((_L("Message length %d"), sizeWithFillers)); HBufC8* message = HBufC8::New( sizeWithFillers ); @@ -424,7 +417,14 @@ TInt CModemAtHandler::Connect(const TUint8 aDteId) { - C_TRACE (( _T("CModemAtHandler::Connect()") )); + C_TRACE (( _T("CModemAtHandler::Connect()") )); + + if( !iModemAtExistInCmt ) + { + C_TRACE((_T("Connection failed, PN_AT_MODEM is not in CMT"))); + TRACE_ASSERT_ALWAYS; + return KErrNotFound; + } C_TRACE((_L("Connecting with dteid:%d "), aDteId)); SetDisconnected( EFalse ); @@ -694,3 +694,9 @@ TRACE_ASSERT( result == AT_MODEM_RESULT_OK ); } +void CModemAtHandler::SetModemAtExistsInCmt( TBool aModemAtExistsInCmt ) + { + C_TRACE((_T("CModemAtHandler::SetModemAtExistsInCmt(%d)"), (TInt)aModemAtExistsInCmt)); + iModemAtExistInCmt = aModemAtExistsInCmt; + } + diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematcontroller_exe/src/cmodematpipecontroller.cpp --- a/adaptationlayer/modematadaptation/modematcontroller_exe/src/cmodematpipecontroller.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematcontroller_exe/src/cmodematpipecontroller.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -38,8 +38,8 @@ const TInt KInvalidDteId = -1; const TUint8 KFiller = 0; const TUint8 KDefaultTrId(0); -const TUint8 KTaskIdQuerySize(20); #endif +const TInt KLastByteIndex = 3; CModemAtPipeController* CModemAtPipeController::NewL( RIscApi& aIscApi, TUint& aObjId, @@ -79,8 +79,6 @@ iPipeHandle( KInvalidPipeHandle ), iDataportDevId( 0 ), iDataportObjId( 0 ), - iCellmoDevId( 0 ), - iCellmoObjId( 0 ), iAtHandler( aHandler ), iSchedulerWait( NULL ), iDteId( KInitialDteId ) @@ -111,7 +109,7 @@ break; default: - ASSERT_PANIC_ALWAYS( EFalse ) ; + TRACE_ASSERT_ALWAYS; break; } } @@ -119,6 +117,7 @@ void CModemAtPipeController::HandlePipeServiceMessage( const TIsiReceiveC& aReceivedMessage) { C_TRACE (( _T("CModemAtPipeController::HandlePipeServiceMessage()") )); + C_TRACE((_L("message id: %d") , aReceivedMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) )); switch( aReceivedMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) ) { case PNS_PIPE_CREATE_RESP: @@ -147,7 +146,7 @@ break; default: - ASSERT_PANIC_ALWAYS( EFalse ); + TRACE_ASSERT_ALWAYS; break; } } @@ -192,23 +191,27 @@ void CModemAtPipeController::HandleNameAddInd( const TIsiReceiveC& aReceivedMessage ) { C_TRACE (( _T("CModemAtPipeController::HandleNameAddInd()") )); - TInt count = aReceivedMessage.Get16bit( ISI_HEADER_SIZE + PNS_NAME_ADD_IND_OFFSET_MATCHESINMSG ); + TInt matchesInThisMsg = aReceivedMessage.Get16bit( ISI_HEADER_SIZE + + PNS_NAME_ADD_IND_OFFSET_MATCHESINMSG ); - C_TRACE((_L("Count %d") ,count )); + C_TRACE((_L("matchesInThisMsg: %d") ,matchesInThisMsg )); TUint name = 0; - for( TInt i = 1; i <= count ; i++ ) + for( TInt i = 1; i <= matchesInThisMsg; i++ ) { - name = aReceivedMessage.Get32bit(ISI_HEADER_SIZE+PNS_NAME_ADD_IND_OFFSET_NAMEENTRYTBL * i); + name = aReceivedMessage.Get32bit(ISI_HEADER_SIZE + + PNS_NAME_ADD_IND_OFFSET_NAMEENTRYTBL * i); C_TRACE((_L("name [%d] 0x%x"), i ,name)); - if( MatchDataportName(name) ) + if( MatchDataportName(name) ) { iDataportDevId = aReceivedMessage.Get8bit( ISI_HEADER_SIZE + - PNS_NAME_ADD_IND_OFFSET_NAMEENTRYTBL * i + PN_NAME_SRV_ITEM_STR_OFFSET_DEV ); + PNS_NAME_ADD_IND_OFFSET_NAMEENTRYTBL * i + + PN_NAME_SRV_ITEM_STR_OFFSET_DEV ); iDataportObjId = aReceivedMessage.Get8bit( ISI_HEADER_SIZE + - PNS_NAME_ADD_IND_OFFSET_NAMEENTRYTBL * i + PN_NAME_SRV_ITEM_STR_OFFSET_OBJ); - + PNS_NAME_ADD_IND_OFFSET_NAMEENTRYTBL * i + + PN_NAME_SRV_ITEM_STR_OFFSET_OBJ); + if( iDataportDevId == THIS_DEVICE ) { C_TRACE((_L("CREATE PIPE FROM DATAPORT when ATEXT plugins connect (devid %x o-bjid %x) "),iDataportDevId,iDataportObjId)); @@ -223,70 +226,70 @@ } void CModemAtPipeController::HandleNameRemoveInd( const TIsiReceiveC& aReceivedMessage ) - { - C_TRACE (( _T("CModemAtPipeController::HandleNameRemoveInd()") )); - TInt count = aReceivedMessage.Get16bit( ISI_HEADER_SIZE + PNS_NAME_REMOVE_IND_OFFSET_MATCHESINMSG ); - - C_TRACE((_L("Count %d") ,count )); - TUint name = 0; + { + C_TRACE (( _T("CModemAtPipeController::HandleNameRemoveInd()") )); + TInt matchesInThisMsg = aReceivedMessage.Get16bit( ISI_HEADER_SIZE + + PNS_NAME_REMOVE_IND_OFFSET_MATCHESINMSG ); - for( TInt i = 1; i <= count ; i++ ) - { - name = aReceivedMessage.Get32bit(ISI_HEADER_SIZE + PNS_NAME_REMOVE_IND_OFFSET_NAMEENTRYTBL * i); - C_TRACE((_L("name [%d] 0x%x"), i ,name)); + C_TRACE((_L("matchesInThisMsg: %d"), matchesInThisMsg )); + TUint name = 0; + + for( TInt i = 1; i <= matchesInThisMsg; i++ ) + { + name = aReceivedMessage.Get32bit(ISI_HEADER_SIZE + + PNS_NAME_REMOVE_IND_OFFSET_NAMEENTRYTBL * i); + C_TRACE((_L("name [%d] 0x%x"), i ,name)); - if( MatchDataportName(name) ) - { - TUint devId = aReceivedMessage.Get8bit( ISI_HEADER_SIZE + - PNS_NAME_REMOVE_IND_OFFSET_NAMEENTRYTBL * i + PN_NAME_SRV_ITEM_STR_OFFSET_DEV ); - TUint objId = aReceivedMessage.Get8bit( ISI_HEADER_SIZE + - PNS_NAME_REMOVE_IND_OFFSET_NAMEENTRYTBL * i + PN_NAME_SRV_ITEM_STR_OFFSET_OBJ); + if( MatchDataportName(name) ) + { + TUint devId = aReceivedMessage.Get8bit( ISI_HEADER_SIZE + + PNS_NAME_REMOVE_IND_OFFSET_NAMEENTRYTBL * i + + PN_NAME_SRV_ITEM_STR_OFFSET_DEV ); + TUint objId = aReceivedMessage.Get8bit( ISI_HEADER_SIZE + + PNS_NAME_REMOVE_IND_OFFSET_NAMEENTRYTBL * i + + PN_NAME_SRV_ITEM_STR_OFFSET_OBJ); - if( iDataportDevId == devId && iDataportObjId == objId ) - { - C_TRACE((_L("Dataport removed from name service (devid %x o-bjid %x) "),iDataportDevId,iDataportObjId)); - iDataportDevId = 0; - iDataportObjId = 0; - } - else - { - C_TRACE((_L("Unused dataport removed from name service. DevId: 0x%x or ObjId 0x%x"), iDataportDevId, iDataportObjId )); - TRACE_ASSERT_ALWAYS; - } - } - } - } + if( iDataportDevId == devId && iDataportObjId == objId ) + { + C_TRACE((_L("Dataport removed from name service (devid %x o-bjid %x) "), iDataportDevId, iDataportObjId)); + iDataportDevId = 0; + iDataportObjId = 0; + } + else + { + C_TRACE((_L("Unused dataport removed from name service. DevId: 0x%x or ObjId 0x%x"), iDataportDevId, iDataportObjId )); + TRACE_ASSERT_ALWAYS; + } + } + } + } - -void CModemAtPipeController::HandleNameQueryResp( const TIsiReceiveC& aReceivedMessage ) +void CModemAtPipeController::HandleNameQueryResp( const TIsiReceiveC& aReceivedMessage ) { C_TRACE((_L("CModemAtPipeHandler::HandleNameQueryResp"))); - - TInt count = aReceivedMessage.Get16bit( ISI_HEADER_SIZE + PNS_NAME_QUERY_RESP_OFFSET_MATCHESINMSG ); - C_TRACE((_L("Count d%d"), count )); - TInt name = 0; + TUint16 matchesInThisMsg( aReceivedMessage.Get16bit( + ISI_HEADER_SIZE + PNS_NAME_QUERY_RESP_OFFSET_MATCHESINMSG ) ); + C_TRACE((_L("matchesInThisMsg: %d"), matchesInThisMsg )); + TBool found = EFalse; - - for( TInt i = 0; i < count ; i++ ) + if( 0 < matchesInThisMsg ) { - name = aReceivedMessage.Get32bit( ISI_HEADER_SIZE + PNS_NAME_QUERY_RESP_OFFSET_NAMEENTRYTBL * i ); - C_TRACE((_L("name [%d]%x"),i ,name )); - if(name == PN_AT_MODEM) + for( TInt i = 0; i < matchesInThisMsg; i++ ) { - iCellmoDevId = aReceivedMessage.Get8bit( ISI_HEADER_SIZE + - PNS_NAME_QUERY_RESP_OFFSET_NAMEENTRYTBL * i + PN_NAME_SRV_ITEM_STR_OFFSET_DEV ); - iCellmoObjId = aReceivedMessage.Get8bit( ISI_HEADER_SIZE + - PNS_NAME_QUERY_RESP_OFFSET_NAMEENTRYTBL * i + PN_NAME_SRV_ITEM_STR_OFFSET_OBJ ); - found = ETrue; - C_TRACE((_L("devid %x objid %x"),iCellmoDevId,iCellmoObjId)); + TInt recordIndex( i * SIZE_PN_NAME_SRV_ITEM_STR ); + TUint8 name( aReceivedMessage.Get8bit( + ISI_HEADER_SIZE + PNS_NAME_QUERY_RESP_OFFSET_NAMEENTRYTBL + + recordIndex + ( PN_NAME_SRV_ITEM_STR_OFFSET_NAME + KLastByteIndex ) ) ); + C_TRACE((_L("name [%d] 0x%x"), i, name )); + if( PN_AT_MODEM == name ) + { + C_TRACE((_L("PN_AT_MODEM found."))); + i = matchesInThisMsg; + found = ETrue; + } } } - - if( !found ) - { - TRACE_ASSERT_ALWAYS; - User::Panic( _L("NO AT-MODEM"), KErrNotFound ); - } + iAtHandler.SetModemAtExistsInCmt( found ); } @@ -319,7 +322,7 @@ C_TRACE(_L("Created ISI-message")); DUMP_MESSAGE( messageptr ); TInt retVal = iIscApi.Send( messageptr ); - ASSERT_PANIC_ALWAYS( retVal == KErrNone ); + TRACE_ASSERT( retVal == KErrNone ); delete message; } @@ -362,6 +365,12 @@ { C_TRACE (( _T("CModemAtPipeController::LinkDteIdToPipe(0x%x)"), aDteId )); TRACE_ASSERT( aDteId < KMaxDteIdCount ); + if( !(aDteId < KMaxDteIdCount) ) + { + C_TRACE(( _T("CModemAtPipeController::LinkDteIdToPipe() illegal dteid %d"), aDteId )); + return; + } + iDteId = aDteId; if( iDataportDevId == THIS_DEVICE ) { @@ -391,8 +400,21 @@ PNS_PIPE_REMOVE_RESP_OFFSET_PIPEHANDLE ); TInt dteId = FindDteId( pipehandle ); - ASSERT_PANIC_ALWAYS( dteId < KMaxDteIdCount ) - ASSERT_PANIC_ALWAYS( error == PN_PIPE_NO_ERROR ) + + TRACE_ASSERT( dteId < KMaxDteIdCount ) + if( !(dteId < KMaxDteIdCount) ) + { + C_TRACE(( _T("CModemAtPipeController::HandlePipeRemoveResp() illegal dteid %d"), dteId )); + return; + } + + TRACE_ASSERT( error == PN_PIPE_NO_ERROR ) + if( error != PN_PIPE_NO_ERROR ) + { + C_TRACE(( _T("CModemAtPipeController::HandlePipeRemoveResp() error %d"), error )); + return; + } + ChangePipeState( dteId, TPipeInfo::EPipeNoPipe ); iPipeTable[ dteId ].iHandle = KInvalidPipeHandle; @@ -411,7 +433,14 @@ void CModemAtPipeController::RemovePipe( const TUint8 aDteId ) { C_TRACE (( _T("CModemAtPipeController::RemovePipe(%d, 0x%x)"), aDteId, this )); - ASSERT_PANIC_ALWAYS( aDteId < KMaxDteIdCount ); + + TRACE_ASSERT( aDteId < KMaxDteIdCount ); + if( !(aDteId < KMaxDteIdCount) ) + { + C_TRACE(( _T("CModemAtPipeController::RemovePipe() illegal dteid %d"), aDteId )); + return; + } + C_TRACE (( _T("iPipeTable[aDteId]:0x%x"), &iPipeTable[aDteId] )); C_TRACE (( _T("iHandle: %d"), iPipeTable[aDteId].iHandle )); C_TRACE (( _T("i1stDevId: %d"), iPipeTable[aDteId].iFirstDevId )); @@ -444,7 +473,7 @@ C_TRACE((_L("Remove pipe handle %d"), aPipeHandle)); TInt size = ISI_HEADER_SIZE + SIZE_PNS_PIPE_REMOVE_REQ; HBufC8* message = HBufC8::New( size ); - ASSERT_PANIC_ALWAYS( message ); + TRACE_ASSERT( message ); TPtr8 messageptr = message->Des(); TIsiSend isimessage( messageptr, size ); @@ -459,7 +488,7 @@ C_TRACE(_L("Created ISI-message")); TInt retVal = iIscApi.Send( messageptr ); - ASSERT_PANIC_ALWAYS( retVal == KErrNone ); + TRACE_ASSERT( retVal == KErrNone ); delete message; if( !iSchedulerWait ) { @@ -477,8 +506,18 @@ { C_TRACE (( _T("CModemAtPipeController::RedirectPipe() dteid %d"), aDteId )); C_TRACE((_L("CModemAtPipeController::RedirectPipe() New pep, deviceId: 0x%x objId: 0x%x "), aNewDevId, aNewObjId)); - ASSERT_PANIC_ALWAYS( aDteId < KMaxDteIdCount ) - ASSERT_PANIC_ALWAYS( iPipeTable[aDteId].iHandle != KInvalidPipeHandle ) + TRACE_ASSERT( aDteId < KMaxDteIdCount ); + if( !(aDteId < KMaxDteIdCount) ) + { + C_TRACE(( _T("CModemAtPipeController::RedirectPipe() illegal dteid %d"), aDteId )); + return; + } + TRACE_ASSERT( iPipeTable[aDteId].iHandle != KInvalidPipeHandle ); + if( iPipeTable[aDteId].iHandle == KInvalidPipeHandle ) + { + C_TRACE(( _T("CModemAtPipeController::RedirectPipe() invalid pipe handle %d"), iPipeTable[aDteId].iHandle )); + return; + } if( iPipeTable[aDteId].iPipeState == TPipeInfo::EPipeRemoving || iPipeTable[aDteId].iPipeState == TPipeInfo::EPipeNoPipe ) @@ -501,7 +540,7 @@ C_TRACE(_L("CModemAtPipeController::RedirectPipe() Redirecting pipe")); HBufC8* message = HBufC8::New( ISI_HEADER_SIZE + SIZE_PNS_PIPE_REDIRECT_REQ ); - ASSERT_PANIC_ALWAYS( message ) + ASSERT_PANIC_ALWAYS( message ); TPtr8 messageptr = message->Des(); TIsiSend isimessage( messageptr, ISI_HEADER_SIZE + SIZE_PNS_PIPE_REDIRECT_REQ ); isimessage.Set8bit( ISI_HEADER_OFFSET_RESOURCEID,PN_PIPE); @@ -534,7 +573,7 @@ C_TRACE(_L("Created ISI-message")); TInt retVal = iIscApi.Send( messageptr ); - ASSERT_PANIC_ALWAYS( retVal == KErrNone ); + TRACE_ASSERT( retVal == KErrNone ); delete message; } @@ -574,15 +613,15 @@ } -void CModemAtPipeController::SendTaskIdQuery() +void CModemAtPipeController::QueryModemAtFromNameService() { - C_TRACE (( _T("CModemAtPipeController::SendTaskIdQuery()") )); - HBufC8* message = HBufC8::New( KTaskIdQuerySize ); + C_TRACE (( _T("CModemAtPipeController::QueryModemAtFromNameService()") )); + HBufC8* message = HBufC8::New( ISI_HEADER_SIZE + SIZE_PNS_NAME_QUERY_REQ ); TRACE_ASSERT( message ); if( message ) { TPtr8 messageptr = message->Des(); - TIsiSend isimessage( messageptr, KTaskIdQuerySize ); + TIsiSend isimessage( messageptr, ISI_HEADER_SIZE + SIZE_PNS_NAME_QUERY_REQ ); isimessage.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_NAMESERVICE ); isimessage.Set8bit( ISI_HEADER_SIZE + PNS_NAME_QUERY_REQ_OFFSET_UTID, KDefaultTrId ); isimessage.Set8bit( ISI_HEADER_SIZE + PNS_NAME_QUERY_REQ_OFFSET_SUBFUNCTION, PNS_NAME_QUERY_REQ ); @@ -594,7 +633,7 @@ DUMP_MESSAGE( messageptr ); TInt retVal = iIscApi.Send( messageptr ); - ASSERT_PANIC_ALWAYS( retVal == KErrNone ); + TRACE_ASSERT( retVal == KErrNone ); delete message; } } @@ -615,7 +654,7 @@ DUMP_MESSAGE( messageptr ); TInt retVal = iIscApi.Send( messageptr ); - ASSERT_PANIC_ALWAYS( retVal == KErrNone ); + TRACE_ASSERT( retVal == KErrNone ); delete message; } diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematcontroller_exe/src/cmodematsession.cpp --- a/adaptationlayer/modematadaptation/modematcontroller_exe/src/cmodematsession.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematcontroller_exe/src/cmodematsession.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -164,7 +164,7 @@ void CModemAtSession::DoServiceL( const RMessage2& aMessage ) { C_TRACE (( _T("CModemAtSession::DoServiceL() function: %d message: 0x%x handle: 0x%x"), aMessage.Function(), &aMessage, aMessage.Handle() )); - + TInt err( KErrNone ); if( CheckAndCompleteExistingRequest( aMessage ) ) { C_TRACE (( _T("CModemAtSession::DoServiceL() - return") )); @@ -175,7 +175,7 @@ { case EATExtSetExtensionInterface: C_TRACE(_L("EATExtSetExtensionInterface")); - iPluginType=(TATPluginInterface) aMessage.Int0(); + iPluginType = (TATPluginInterface)aMessage.Int0(); if(iClientName) { delete iClientName; @@ -185,7 +185,8 @@ iClientNamePtr.Set( iClientName->Des() ); aMessage.Read( KATModemResponseArgumentIndex, iClientNamePtr ); iConnectReq = aMessage; - iServer.ConnectToModem(this); + err = iServer.ConnectToModem( this ); + ModemConnected( err ); break; case EReceiveUnsolicitedResult: @@ -326,7 +327,7 @@ { C_TRACE (( _T("Complete iConnectReq( %d )"), aErr )); iConnectReq.Complete(aErr); - } + } } void CModemAtSession::SignalIndReceived() diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematcontroller_exe/src/cmodematsrv.cpp --- a/adaptationlayer/modematadaptation/modematcontroller_exe/src/cmodematsrv.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematcontroller_exe/src/cmodematsrv.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -204,7 +204,7 @@ C_TRACE ((_T("<>CModemAtSrv::ConnectToModem 0x%x"), aSession)); TInt type = aSession->GetPluginType(); @@ -224,22 +224,20 @@ { TRACE_ASSERT_ALWAYS; aSession->SetDteId( dteid ); - aSession->ModemConnected((TInt)KErrAlreadyExists); - C_TRACE ((_T("<GetDteId())); iRouteTable[aSession->GetPluginType()][dteid] = aSession; C_TRACE((_L("Interface exists=> %d"),dteid)); - + aSession->SetDteId( dteid ); - aSession->ModemConnected(KErrNone); //connected - C_TRACE ((_T("<SetDteId(dteId); - iHandler->Connect(dteId); - C_TRACE ((_T("<Connect( dteId ); } void CModemAtSrv::AddToSendFifo( const TUint8 aDteId, diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematext_dll/group/modematext_dll.mmp --- a/adaptationlayer/modematadaptation/modematext_dll/group/modematext_dll.mmp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematext_dll/group/modematext_dll.mmp Thu Jan 14 10:44:58 2010 +0200 @@ -24,6 +24,7 @@ VENDORID VID_DEFAULT +SMPSAFE TARGET modemat_atext.dll TARGETTYPE PLUGIN UID 0x10009D8D 0x2001FCB2 diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematext_dll/src/modemat_atext.cpp --- a/adaptationlayer/modematadaptation/modematext_dll/src/modemat_atext.cpp Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematext_dll/src/modemat_atext.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -20,7 +20,7 @@ #include "modemat_atext.h" #include "modemattrace.h" -const TInt KMaxCommandCount(160); +const TInt KMaxCommandCount(137); const char* const atCommands[] = { @@ -158,29 +158,6 @@ ("AT+CGTFT"), ("AT+CGCMOD"), ("AT+CBCIE"), - ("AT*NAUTODISC"), - ("AT*NRLP"), - ("AT*NSYNCSEQ"), - ("AT*NVTMODE"), - ("AT*NTRACE"), - ("AT*NNET"), - ("AT*NOKIAFBUS"), - ("AT*NPTTLOGIN"), - ("AT*NPTTLOGOFF"), - ("AT*NPTTATTACH"), - ("AT*NPTTDETACH"), - ("AT*NPTT"), - ("AT*NTESTSYSTEM"), - ("AT*NLOGGING"), - ("AT*NBALOCK"), - ("AT*NCHLOCK"), - ("AT*NCELLBARR"), - ("AT*NEOTD"), - ("AT*NTESTAUDIO"), - ("AT*NSECLOCK"), - ("AT*NSYSLOCK"), - ("AT*NUMAMODE"), - ("AT*NSMSROUTE"), ("AT"), ("LAST") }; diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/modematadaptation/modematext_dll/src/modemat_atext.rss --- a/adaptationlayer/modematadaptation/modematext_dll/src/modemat_atext.rss Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/modematadaptation/modematext_dll/src/modemat_atext.rss Thu Jan 14 10:44:58 2010 +0200 @@ -49,7 +49,7 @@ implementation_uid = 0x20022E86; version_no = 1; display_name = "Modem AT EXT"; - default_data = "PAT&S|PAT&S0|PAT&S1|PAT&K|PAT&K0|PAT&K3|PAT&K4|PATZ|PATZ0|PATZ1|PAT&F|PAT&F0|PATI|PAT+GMI|PAT+GMM|PAT+GMR|PAT+GSN|PAT+GCAP|PAT&V|PAT&V0|PAT&V1|PAT&V2|PAT&W|PAT&W0|PAT&W1|PAT&Y|PAT&Y0|PAT&Y1|PAT+CGMI|PAT+CGMM|PAT+CGMR|PAT+CGSN|PAT+CSCS|PAT+CIMI"; + default_data = "PAT&S|PAT&S0|PAT&S1|PAT&K|PAT&K0|PAT&K3|PAT&K4|PATZ|PATZ0|PATZ1|PAT&F|PAT&F0|PAT+GMI|PAT+GMM|PAT+GMR|PAT+GSN|PAT+GCAP|PAT&V|PAT&V0|PAT&V1|PAT&V2|PAT&W|PAT&W0|PAT&W1|PAT&Y|PAT&Y0|PAT&Y1|PAT+CGMI|PAT+CGMM|PAT+CGMR|PAT+CGSN|PAT+CSCS|PAT+CIMI"; opaque_data = ""; rom_only = 0; }, @@ -76,16 +76,7 @@ implementation_uid = 0x20022E89; version_no = 1; display_name = "Modem AT EXT"; - default_data = "PAT+CGTFT|PAT+CGCMOD|PAT+CBCIE|PAT*NAUTODISC|PAT*NRLP|PAT*NSYNCSEQ|PAT*NVTMODE|PAT*NTRACE|PAT*NNET|PAT*NOKIAFBUS|PAT*NPTTLOGIN|PAT*NPTTLOGOFF|PAT*NPTTATTACH|PAT*NPTTDETACH|PAT*NPTT|PAT*NTESTSYSTEM|PAT*NLOGGING|PAT*NBALOCK|PAT*NCHLOCK|PAT*NCELLBARR"; - opaque_data = ""; - rom_only = 0; - }, - IMPLEMENTATION_INFO - { - implementation_uid = 0x20022E8A; - version_no = 1; - display_name = "Modem AT EXT"; - default_data = "PAT*NEOTD|PAT*NTESTAUDIO|PAT*NSECLOCK|PAT*NSYSLOCK|PAT*NUMAMODE|PAT*NSMSROUTE|PAT|PATD*"; + default_data = "PAT+CGTFT|PAT+CGCMOD|PAT|PATD*|PATI|PATI0|PATI1|PATI2|PATI3|PATI4|PATI9|PATI10|PATI11"; opaque_data = ""; rom_only = 0; } diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/rom/adaptationlayer.iby --- a/adaptationlayer/rom/adaptationlayer.iby Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/rom/adaptationlayer.iby Thu Jan 14 10:44:58 2010 +0200 @@ -19,18 +19,11 @@ #ifndef ADAPTATIONLAYER_IBY #define ADAPTATIONLAYER_IBY -#ifndef NCP_COMMON_BRIDGE_FAMILY -#include -#endif - +#include #include -#include - -#ifdef NCP_COMMON_BRIDGE_FAMILY +#include #include #include -#include -#endif #endif // ADAPTATIONLAYER_IBY diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/group/bld.inf --- a/adaptationlayer/systemstatemanageradaptation/group/bld.inf Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/group/bld.inf Thu Jan 14 10:44:58 2010 +0200 @@ -26,15 +26,14 @@ ../rom/sspluginsadaptation.iby NON_FOUNDATION_CORE_ADAPT_LAYER_IBY_EXPORT_PATH(sspluginsadaptation.iby) PRJ_MMPFILES - ../ssm_misc_adaptation_dll/group/miscadaptationref.mmp - + ../ssm_misc_adaptation_dll/group/miscadaptation.mmp + ../ssm_emergencycallrf_adaptation_dll/group/emergencycallrfadaptation.mmp /* - Only misc adaptation supported in the first phase. Others are commented out. + Only miscadaptation and emergencycallrfadaptation are supported. Others are commented out. ../ssm_state_adaptation_dll/group/stateadaptationref.mmp ../ssm_sim_adaptation_dll/group/simadaptationref.mmp ../ssm_rtc_adaptation_dll/group/rtcadaptationref.mmp - ../ssm_emergencycallrf_adaptation_dll/group/emergencycallrfadaptationref.mmp */ // End of File diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/iscservice/doc/sa_common_isc_service_design.doc Binary file adaptationlayer/systemstatemanageradaptation/iscservice/doc/sa_common_isc_service_design.doc has changed diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/iscservice/inc/msa_isc_service.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/iscservice/inc/msa_isc_service.h Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,73 @@ +/* +* ============================================================================== +* Name: msa_isc_service.h +* Part of: System adaptation +* Description: Declaration of MSAIscService class. MSAIscService class +* defines an interface to System Adaptation plug-in clients. +* %version: 1 % +* %date_modified: Tue Dec 29 15:59:13 2009 % +* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Declaration of MSAIscService class +* +*/ + + +#ifndef MSA_ISC_SERVICE_H +#define MSA_ISC_SERVICE_H + +// INCLUDES +#include + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +// CLASS DECLARATION + +/** +* MSAIscService +* Interface class to System adaptation Common Isc service classes +* +*/ +class MSAIscService + { + + public: // New functions + + /** + * Indicates System adaptation client about received isc message + * @param aData Reference to received data + * @return none + */ + virtual void ReceiveIsiMessageL( TDesC8& aData ) = 0; + + /** + * Indicates System adaptation client about isc channel status change + * @param aErrorCode Isc channel error code + * @return none + */ + virtual void ProcessConnectionClosedL( TInt aErrorCode ) = 0; + }; + +#endif // MSA_ISC_SERVICE_H + +// End of File diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/iscservice/inc/sa_common_isc_service.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/iscservice/inc/sa_common_isc_service.h Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,153 @@ +/* +* ============================================================================== +* Name: sa_common_isc_service.h +* Part of: System adaptation +* Description: Declaration of CSACommonIscService class +* %version: 1 % +* %date_modified: Tue Dec 29 15:59:16 2009 % +* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Declaration of CSACommonIscService class +* +*/ + + +#ifndef SA_COMMON_ISC_SERVICE_H +#define SA_COMMON_ISC_SERVICE_H + +// INCLUDES +#include +#include + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CSACommonIscServiceChannelListener; +class MSAIscService; + +// CLASS DECLARATION + +/** +* CSACommonIscService +* This class declarates System Adaptation plug-in module, which provides +* ISC interface for other System Adaptation plug-in modules. +* +*/ +class CSACommonIscService : public CActive + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CSACommonIscService* NewL( MSAIscService& aAdaptation, + const TUint16 aChannelNumber, + TDes8* aEvents, + const TUint16 aClientISIMessageSize ); + + /** + * Destructor. + */ + virtual ~CSACommonIscService(); + + public: // Functions from base classes + + /** + * This function is used to send messages via ISC channel + * @param aMessage Reference to message + * @return none + */ + void SendMessageL( TDesC8& aMessage ); + + private: + + /** + * C++ default constructor. + */ + CSACommonIscService( MSAIscService& aAdaptation, + const TUint16 aChannelNumber, + const TUint16 aClientISIMessageSize ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL( TDes8* aEvents ); + + /** + * From CActive + * This function receives messages from ISC API + * @return none + */ + void RunL(); + + /** + * From CActive + * This function is called by Kernel when an outstading request is + * canceled with Cancel() function + * @return none + */ + void DoCancel(); + + /** + * This function is used to subscribe reception of events via ISC API + * @param aEvents Pointer to list of subscribed events + * @return none + */ + void SubscribeEventsL( TDes8 *aEvents ); + + /** + * This function starts receiving messages via ISC channel + * @param aMessageLength Length of message buffer required for + * received message + * @return none + */ + void ReceiveMessageL( TUint16 aMessageLength ); + + private: // Data + + // Reference to Adaptation + MSAIscService& iAdaptation; + + // ISC API interface object + RIscApi iIscApi; + + // Pointer to ISC Channel lister object + CSACommonIscServiceChannelListener* iSACommonIscServiceChannelListener; + + // Used ISC channel + TUint16 iChannelNumber; + + // Min size of ISI message + TUint16 iClientISIMessageSize; + + // Message data length of pending message + TUint16 iMessageLength; + + // Pointer to buffer descritor where a message data is received from ISC API + HBufC8* iBuffer; + + // Modifiable pointer to message data buffer + TPtr8 iBufferPtr; + }; + +#endif // SA_COMMON_ISC_SERVICE_H + +// End of File diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/iscservice/inc/sa_common_isc_service_channel_listener.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/iscservice/inc/sa_common_isc_service_channel_listener.h Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,123 @@ +/* +* ============================================================================== +* Name: sa_common_isc_service_channel_listener.h +* Part of: System adaptation +* Description: Declaration of CSACommonIscServiceChannelListener class +* %version: 1 % +* %date_modified: Tue Dec 29 15:59:19 2009 % +* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Declaration of CSACommonIscServiceChannelListener class +* +*/ + + +#ifndef SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_H +#define SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_H + +// INCLUDES +#include + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class MSAIscService; + +// CLASS DECLARATION + +/** +* CSACommonIscServiceChannelListener +* +*/ +class CSACommonIscServiceChannelListener : public CActive + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aAdaptation Reference to Adaptation + * @param aIscApi Reference to ISC channel + * @return Pointer to created object + */ + static CSACommonIscServiceChannelListener* NewL( + MSAIscService& aAdaptation, + RIscApi& aIscApi ); + + /** + * Destructor. + */ + virtual ~CSACommonIscServiceChannelListener(); + + + private: + + /** + * From CActive class + * This function receives messages via ISC channel + * @return none + */ + void RunL(); + + /** + * From CActive class + * This function is called if RunL leaves + * @param aError Leave cause + * @return KErrNone + */ + TInt RunError( TInt aError ); + + /** + * From CActive class + * This function is called from CActive Cancel() method + * @return none + */ + void DoCancel(); + + /** + * C++ default constructor. + * @param aAdaptation Reference to Adaptation + * @param aIscApi Reference to ISC channel + */ + CSACommonIscServiceChannelListener( + MSAIscService& aAdaptation, + RIscApi& aIscApi ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: // Data + + // Reference to Adaptation + MSAIscService& iAdaptation; + + // Reference to monitored ISC channel + RIscApi& iIscApi; + + // Connection status to monitored ISC channel + TInt iConnectionStatus; + + }; + +#endif // SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_H + +// End of File diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/iscservice/inc/sa_common_trace.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/iscservice/inc/sa_common_trace.h Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,95 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +*/ + +#ifndef SA_COMMON_TRACE_H +#define SA_COMMON_TRACE_H + +// INCLUDES +#include + +// PC-LINT OPTIONS +// Removes null statement not in line by itself warnings from +// COMPONENT_TRACE macros +//lint -esym(960,54) + +// Removes "area too small" pointer cast warnings. +//lint -e826 + +// CONSTANTS + +// MACROS + +#ifdef _DEBUG + + void BuildTraceFunc( const TDesC& aPrefix ); + void AssertTraceFunc( const TDesC& aPrefix, const TDesC8& aFile, TInt aLine ); + void DataDumpTraceFunc( const TDesC& aPrefix, const TDesC8& aData ); + void IsiMsgApiTrace( const TDesC& aPrefix, const TDesC8& aData ); + + #define BUILD_TRACE( a ) BuildTraceFunc( a ) + #define ASSERT_ALWAYS_TRACE( a ) AssertTraceFunc( a, _L8( __FILE__ ), __LINE__ ) + #define ASSERT_TRACE( a, b) if( !b ) { ASSERT_ALWAYS_TRACE( a ); } + + #define ADD_QUOTES(in) #in + #define BUILD_STRING(in) ADD_QUOTES(in) + + #ifdef API_TRACE_FLAG + + #define API_TRACE( a ) RDebug::Print a + #define DATA_DUMP_TRACE( a, b ) DataDumpTraceFunc( a, b ) + #define ISIMSG_API_TRACE( a, b ) IsiMsgApiTrace( a, b ) + + #else // API_TRACE_FLAG + + #define API_TRACE( a ) + #define DATA_DUMP_TRACE( a, b ) + #define ISIMSG_API_TRACE( a, b ) + + #endif // API_TRACE_FLAG + + #ifdef INTERNAL_TRACE_FLAG + + #define INTERNAL_TRACE( a ) RDebug::Print a + + #else // INTERNAL_TRACE_FLAG + + #define INTERNAL_TRACE( a ) + + #endif // INTERNAL_TRACE_FLAG + +#else // _DEBUG + + #define BUILD_TRACE( a ) + #define ASSERT_TRACE( a, b) + #define ASSERT_ALWAYS_TRACE( a ) + #define API_TRACE( a ) + #define INTERNAL_TRACE( a ) + #define DATA_DUMP_TRACE( a, b ) + #define ISIMSG_API_TRACE( a, b ) + +#endif // _DEBUG + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +#endif //SA_COMMON_TRACE_H + +// End of File + diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/iscservice/src/sa_common_isc_service.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/iscservice/src/sa_common_isc_service.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,385 @@ +/* +* ============================================================================== +* Name: sa_common_isc_service.cpp +* Part of: System adaptation +* Description: Implementation of CSACommonIscService class +* %version: 1 % +* %date_modified: Tue Dec 29 15:59:32 2009 % +* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Implementation of CSACommonIscService class +* +*/ + + +// INCLUDE FILES +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "sa_common_isc_serviceTraces.h" +#endif +#include +#include // For NokiaISC +#include "sa_common_isc_service.h" +#include "sa_common_isc_service_channel_listener.h" +#include "sa_common_trace.h" +#include "msa_isc_service.h" + +// EXTERNAL DATA STRUCTURES + +// EXTERNAL FUNCTION PROTOTYPES + +// CONSTANTS + +// MACROS + +// LOCAL CONSTANTS AND MACROS + +// Minimum received message length +// ( = Phonet header + ISI transaction id + ISI message id) +const TUint8 KSASMinIscMessageLength = 10; + +// MODULE DATA STRUCTURES + +// LOCAL FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +// ============================= LOCAL FUNCTIONS =============================== + + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CSACommonIscService::CSACommonIscService +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CSACommonIscService::CSACommonIscService( + MSAIscService& aAdaptation, + const TUint16 aChannelNumber, + const TUint16 aClientISIMessageSize ) + : CActive( CActive::EPriorityStandard ) + , iAdaptation( aAdaptation ) + , iChannelNumber( aChannelNumber ) + , iClientISIMessageSize( aClientISIMessageSize ) + , iMessageLength( 0 ) + , iBuffer( NULL ) + , iBufferPtr( NULL, 0 ) + { + OstTraceExt3( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_1, + "ISCSERVICE # CSACommonIscService::CSACommonIscService(0x%x,0x%x,0x%x)", + (TUint)&aAdaptation, (TUint)aChannelNumber, (TUint)aClientISIMessageSize ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::CSACommonIscService(0x%x,0x%x,0x%x)" ), + &aAdaptation, aChannelNumber, aClientISIMessageSize ) ); + + CActiveScheduler::Add( this ); + + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_2, + "ISCSERVICE # CSACommonIscService::CSACommonIscService - return void" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::CSACommonIscService - return void" ) ) ); + } + + +// ----------------------------------------------------------------------------- +// CSACommonIscService::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CSACommonIscService::ConstructL( TDes8* aEvents ) + { + OstTrace1( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_3, + "ISCSERVICE # CSACommonIscService::ConstructL(0x%x)", aEvents ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::ConstructL(0x%x)" ), aEvents ) ); + + TRequestStatus status; + + /* Open ISC channel */ + OstTrace0( TRACE_API, SA_COMMON_ISC_SERVICE_AUTOMATED_4, + "ISCSERVICE - CSACommonIscService::ConstructL() - Opening ISC channel" ); + API_TRACE( ( _L( "ISCSERVICE - CSACommonIscService::ConstructL() - Opening ISC channel" ) ) ); + iIscApi.Open( iChannelNumber, status ); + User::WaitForRequest( status ); + + if ( status.Int() != KErrNone ) + { + ASSERT_ALWAYS_TRACE( _L( "ISCSERVICE - CSACommonIscService::ConstructL() - Failed to open ISC channel!") ); + User::LeaveIfError( status.Int() ); + } + + if(aEvents) + { + /* Subscribe reception of events via ISC channel */ + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_5, + "ISCSERVICE - CSACommonIscService::ConstructL() - Subscribe events" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE - CSACommonIscService::ConstructL() - Subscribe events" ) ) ); + SubscribeEventsL( aEvents ); + } + + /* Start receiving messages via ISC channel */ + ReceiveMessageL( iClientISIMessageSize ); + + /* Create ISC channel listener to monitor the state of ISC channel */ + iSACommonIscServiceChannelListener = CSACommonIscServiceChannelListener::NewL( iAdaptation, iIscApi ); + + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_6, + "ISCSERVICE # CSACommonIscService::ConstructL - return void" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::ConstructL - return void" ) ) ); + } + + +// ----------------------------------------------------------------------------- +// CSACommonIscService::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CSACommonIscService* CSACommonIscService::NewL( MSAIscService& aAdaptation, + const TUint16 aChannelNumber, + TDes8* aEvents, + const TUint16 aClientISIMessageSize ) + { + OstTraceExt4( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_7, + "ISCSERVICE # CSACommonIscService::NewL(0x%x,0x%x,0x%x,0x%x)", + (TUint)&aAdaptation, (TUint)aChannelNumber, (TUint)aEvents, (TUint)aClientISIMessageSize ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::NewL(0x%x,0x%x,0x%x,0x%x)" ), + &aAdaptation, aChannelNumber, aEvents, aClientISIMessageSize ) ); + + CSACommonIscService* self = new( ELeave ) CSACommonIscService( + aAdaptation, + aChannelNumber, + aClientISIMessageSize ); + + CleanupStack::PushL( self ); + self->ConstructL( aEvents ); + CleanupStack::Pop( self ); + + OstTrace1( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_8, + "ISCSERVICE # CSACommonIscService::NewL - return 0x%x", self ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::NewL - return 0x%x" ), self ) ); + + return self; + } + + +// ----------------------------------------------------------------------------- +// CSACommonIscService::~CSACommonIscService +// Destructor. +// ----------------------------------------------------------------------------- +// +CSACommonIscService::~CSACommonIscService() + { + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_9, + "ISCSERVICE # CSACommonIscService::~CSACommonIscService()" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::~CSACommonIscService()" ) ) ); + + /* Cancel any outstanding request */ + Cancel(); + + /* Delete message buffer */ + delete iBuffer; + iBuffer = NULL; + + /* Cancel monitoring ISC channel state */ + delete iSACommonIscServiceChannelListener; + iSACommonIscServiceChannelListener = NULL; + + /* Close ISC channel */ + OstTrace0( TRACE_API, SA_COMMON_ISC_SERVICE_AUTOMATED_10, + "ISCSERVICE - CSACommonIscService::~CSACommonIscService - Close ISC channel" ); + API_TRACE( ( _L( "ISCSERVICE - CSACommonIscService::~CSACommonIscService - Close ISC channel" ) ) ); + iIscApi.Close(); + + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_11, + "ISCSERVICE # CSACommonIscService::~CSACommonIscService - return void" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::~CSACommonIscService - return void" ) ) ); + } + + +// ----------------------------------------------------------------------------- +// CSACommonIscService::SendMessageL +// This function is used to send a message via ISC channel +// ----------------------------------------------------------------------------- +// +void CSACommonIscService::SendMessageL( + TDesC8& aMessage ) + { + OstTrace1( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_12, + "ISCSERVICE # CSACommonIscService::SendMessageL(0x%x)", (TUint)&aMessage ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::SendMessageL(0x%x)" ), (TUint)&aMessage ) ); + + OstTrace1( TRACE_API, SA_COMMON_ISC_SERVICE_AUTOMATED_13, + "ISCSERVICE - CSACommonIscService::SendMessageL() - Sending ISI Message;aData=%x", + (TUint)&aMessage ); + ISIMSG_API_TRACE( _L("ISCSERVICE # CSACommonIscService::SendMessageL() - Sending ISI Message: "), aMessage); + + User::LeaveIfError( iIscApi.Send( aMessage ) ); + + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_14, + "ISCSERVICE # CSACommonIscService::SendMessageL - return void" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::SendMessageL - return void" ) ) ); + } + + +// ----------------------------------------------------------------------------- +// CSACommonIscService::ReceiveMessageL +// This function starts receiving messages via ISC channel +// ----------------------------------------------------------------------------- +// +void CSACommonIscService::ReceiveMessageL( TUint16 aMessageLength ) + { + OstTrace1( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_16, + "ISCSERVICE # CSACommonIscService::ReceiveMessageL(0x%x)", aMessageLength ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::ReceiveMessageL(0x%x)" ), + aMessageLength ) ); + + if ( !IsActive() ) + { + + OstTrace0( TRACE_API, SA_COMMON_ISC_SERVICE_AUTOMATED_17, + "ISCSERVICE - CSACommonIscService::ReceiveMessageL() - Receiving message" ); + API_TRACE( ( _L( "ISCSERVICE - CSACommonIscService::ReceiveMessageL() - Receiving message" ) ) ); + + /* Reserve space for the received message buffer */ + delete iBuffer; + iBuffer = NULL; + iBuffer = HBufC8::NewL( aMessageLength ); + iBufferPtr.Set( iBuffer->Des() ); + + /* Start receiving messages via ISC channel */ + iMessageLength = 0; + iIscApi.Receive( iStatus, iBufferPtr, iMessageLength ); + SetActive(); + } + else + { + /* Receiving request pending */ + ASSERT_ALWAYS_TRACE( _L( "ISCSERVICE - CSACommonIscService::ReceiveMessageL() - Request pending") ); + } + + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_18, + "ISCSERVICE # CSACommonIscService::ReceiveMessageL - return void" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::ReceiveMessageL - return void" ) ) ); + } + + +// ----------------------------------------------------------------------------- +// CSACommonIscService::RunL +// This function is called when a message is received via ISC channel +// ----------------------------------------------------------------------------- +// +void CSACommonIscService::RunL() + { + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_19, + "ISCSERVICE # CSACommonIscService::RunL()" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::RunL()" ) ) ); + + TInt err( KErrNone ); + TUint16 length( iClientISIMessageSize ); + + switch ( iStatus.Int() ) + { + case KErrNone: + if ( iBufferPtr.Length() >= KSASMinIscMessageLength ) + { + /* Forward receive message to System Adaptation proxy */ + OstTrace1( TRACE_API, SA_COMMON_ISC_SERVICE_AUTOMATED_20, + "ISCSERVICE - CSACommonIscService::RunL() - Receive ISI Message;iBufferPtr=%x", + (TUint)&(iBufferPtr) ); + ISIMSG_API_TRACE( _L("ISCSERVICE - CSACommonIscService::RunL() - Receive ISI Message: " ), + iBufferPtr); + + TRAP( err, iAdaptation.ReceiveIsiMessageL( iBufferPtr ) ); + ASSERT_TRACE( _L( "ISCSERVICE - CSACommonIscService::RunL() - Processing message failed" ), + ( err == KErrNone ) ); + } + else + { + ASSERT_ALWAYS_TRACE( _L( "ISCSERVICE - CSACommonIscService::RunL() - Invalid message" ) ); + } + break; + + case KErrNoMemory: + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_21, + "ISCSERVICE # CSACommonIscService::RunL() - Reallocate message buffer" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::RunL() - Reallocate message buffer" ) ) ); + /* Reserved message buffer overflow - + Reallocate message buffer and receive the message again + ( iMessageLength contains the required buffer length for the message ) */ + length = iMessageLength; + break; + + default: + /* Other errors are ignored - Continue receiving messages via ISC channel */ + ASSERT_ALWAYS_TRACE( _L( "ISCSERVICE - CSACommonIscService::RunL() - Other error" ) ); + break; + } + + /* Continue receiving messages via ISC channel */ + TRAP( err, ReceiveMessageL( length ) ); + + if ( err != KErrNone ) + { + ASSERT_ALWAYS_TRACE( _L( "ISCSERVICE - CSACommonIscService::RunL() - Memory allocation failed" ) ); + User::Panic( _L( "ISCSERVICE - CSACommonIscService" ), err ); + } + + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_22, + "ISCSERVICE # CSACommonIscService::RunL - return void" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::RunL - return void" ) ) ); + } + + +// ----------------------------------------------------------------------------- +// CSACommonIscService::DoCancel +// This function cancels the receiving messages via ISC channel +// ----------------------------------------------------------------------------- +// +void CSACommonIscService::DoCancel() + { + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_23, + "ISCSERVICE # CSACommonIscService::DoCancel()" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::DoCancel()" ) ) ); + + iIscApi.ReceiveCancel(); + + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_24, + "ISCSERVICE # CSACommonIscService::DoCancel - return void" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::DoCancel - return void" ) ) ); + } + + +// ----------------------------------------------------------------------------- +// CSACommonIscService::SubscribeEvents +// This function subscribes reception of events via ISC channel +// ----------------------------------------------------------------------------- +// +void CSACommonIscService::SubscribeEventsL( TDes8 *aEvents ) + { + OstTrace1( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_25, + "ISCSERVICE # CSACommonIscService::SubscribeEventsL(0x%x)", aEvents ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::SubscribeEventsL(0x%x)" ), aEvents ) ); + + User::LeaveIfError( iIscApi.CustomFunction( EIscNokiaEventSubscribe, aEvents ) ); + + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_AUTOMATED_26, + "ISCSERVICE # CSACommonIscService::SubscribeEventsL - return void" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE # CSACommonIscService::SubscribeEventsL - return void" ) ) ); + } + + +// ========================== OTHER EXPORTED FUNCTIONS ========================= + + +// End of File diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/iscservice/src/sa_common_isc_service_channel_listener.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/iscservice/src/sa_common_isc_service_channel_listener.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,235 @@ +/* +* ============================================================================== +* Name: sa_common_isc_service_channel_listener.cpp +* Part of: System adaptation +* Description: Implementation of CSACommonIscServiceChannelListener class +* %version: 1 % +* %date_modified: Tue Dec 29 15:59:35 2009 % +* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Implementation of CSACommonIscServiceChannelListener class +* +*/ + + +// INCLUDE FILES +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "sa_common_isc_service_channel_listenerTraces.h" +#endif +#include +#include // For NokiaISC +#include "sa_common_trace.h" +#include "sa_common_isc_service_channel_listener.h" +#include "msa_isc_service.h" + +// EXTERNAL DATA STRUCTURES + +// EXTERNAL FUNCTION PROTOTYPES + +// CONSTANTS + +// MACROS + +// LOCAL CONSTANTS AND MACROS + +// MODULE DATA STRUCTURES + +// LOCAL FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +// ============================= LOCAL FUNCTIONS =============================== + + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CSACommonIscServiceChannelListener::CSACommonIscServiceChannelListener +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CSACommonIscServiceChannelListener::CSACommonIscServiceChannelListener( + MSAIscService& aAdaptation, + RIscApi& aIscApi ) + : CActive( CActive::EPriorityStandard ) + , iAdaptation( aAdaptation ) + , iIscApi( aIscApi ) + { + OstTraceExt2( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_1, + "ISCSERVICE - CSACommonIscServiceChannelListener::CSACommonIscServiceChannelListener(0x%x,0x%x)", + (TUint)&aAdaptation, (TUint)&aIscApi ); + INTERNAL_TRACE( ( + _L( "ISCSERVICE - CSACommonIscServiceChannelListener::CSACommonIscServiceChannelListener(0x%x,0x%x)" ), + &aAdaptation, &aIscApi ) ); + + CActiveScheduler::Add( this ); + + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_2, + "ISCSERVICE - CSACommonIscServiceChannelListener::CSACommonIscServiceChannelListener - return void" ); + INTERNAL_TRACE( ( + _L( "ISCSERVICE - CSACommonIscServiceChannelListener::CSACommonIscServiceChannelListener - return void" ) ) ); + } + +// ----------------------------------------------------------------------------- +// CSACommonIscServiceChannelListener::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CSACommonIscServiceChannelListener::ConstructL() + { + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_3, + "ISCSERVICE - CSACommonIscServiceChannelListener::ConstructL()" ); + INTERNAL_TRACE( ( + _L( "ISCSERVICE - CSACommonIscServiceChannelListener::ConstructL()" ) ) ); + + iIscApi.NotifyConnectionStatus( iStatus, iConnectionStatus ); + SetActive(); + + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_4, + "ISCSERVICE - CSACommonIscServiceChannelListener::ConstructL - return void" ); + INTERNAL_TRACE( ( + _L( "ISCSERVICE - CSACommonIscServiceChannelListener::ConstructL - return void" ) ) ); + } + +// ----------------------------------------------------------------------------- +// CSACommonIscServiceChannelListener::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CSACommonIscServiceChannelListener* CSACommonIscServiceChannelListener::NewL( + MSAIscService& aAdaptation, + RIscApi& aIscApi) + { + OstTraceExt2( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_5, + "ISCSERVICE - CSACommonIscServiceChannelListener::NewL(0x%x,0x%x)", + (TUint)&aAdaptation, (TUint)&aIscApi ); + INTERNAL_TRACE( ( _L( "ISCSERVICE - CSACommonIscServiceChannelListener::NewL(0x%x,0x%x)" ), + &aAdaptation, &aIscApi ) ); + + CSACommonIscServiceChannelListener* self = new( ELeave ) CSACommonIscServiceChannelListener( + aAdaptation, + aIscApi ); + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + OstTrace1( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_6, + "ISCSERVICE - CSACommonIscServiceChannelListener::NewL - return 0x%x", self ); + INTERNAL_TRACE( ( _L( "ISCSERVICE - CSACommonIscServiceChannelListener::NewL - return 0x%x" ), + self ) ); + + return self; + } + + +// ----------------------------------------------------------------------------- +// CSACommonIscServiceChannelListener::~CSACommonIscServiceChannelListener +// Destructor. +// ----------------------------------------------------------------------------- +// +CSACommonIscServiceChannelListener::~CSACommonIscServiceChannelListener() + { + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_7, + "ISCSERVICE - CSACommonIscServiceChannelListener::~CSACommonIscServiceChannelListener()" ); + INTERNAL_TRACE( ( + _L( "ISCSERVICE - CSACommonIscServiceChannelListener::~CSACommonIscServiceChannelListener()" ) ) ); + + /* Cancel outstanding request */ + Cancel(); + + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_8, + "ISCSERVICE - CSACommonIscServiceChannelListener::~CSACommonIscServiceChannelListener - return void" ); + INTERNAL_TRACE( ( + _L( "ISCSERVICE - CSACommonIscServiceChannelListener::~CSACommonIscServiceChannelListener - return void" ) ) ); + } + + +// ----------------------------------------------------------------------------- +// CSACommonIscServiceChannelListener::RunL +// This function is called by Kernel when ISC API completes outstanding request +// ----------------------------------------------------------------------------- +// +void CSACommonIscServiceChannelListener::RunL() + { + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_9, + "ISCSERVICE - CSACommonIscServiceChannelListener::RunL()" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE - CSACommonIscServiceChannelListener::RunL()" ) ) ); + + ASSERT_TRACE( _L( "ISCSERVICE - CSACommonIscServiceChannelListener::RunL" ), + ( iStatus.Int() == KErrNone ) ); + ASSERT_TRACE( _L( "ISCSERVICE - CSACommonIscServiceChannelListener::RunL" ), + ( iConnectionStatus == EIscConnectionNotOk ) ); + + if(iConnectionStatus != EIscConnectionOk) + { + iAdaptation.ProcessConnectionClosedL( iConnectionStatus ); + INTERNAL_TRACE( ( + _L( "ISCSERVICE - CSACommonIscServiceChannelListener::RunL - Isc channel closed!" ) ) ); + } + + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_10, + "ISCSERVICE - CSACommonIscServiceChannelListener::RunL - return void" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE - CSACommonIscServiceChannelListener::RunL - return void" ) ) ); + } + +// ----------------------------------------------------------------------------- +// CSACommonIscServiceChannelListener::RunError +// This function is called if RunL leaves +// ----------------------------------------------------------------------------- +// +TInt CSACommonIscServiceChannelListener::RunError( TInt aError ) + { + OstTrace1( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_11, + "ISCSERVICE - CSACommonIscServiceChannelListener::RunError(ox%x)", aError ); + INTERNAL_TRACE( ( _L( "ISCSERVICE - CSACommonIscServiceChannelListener::RunError(ox%x)" ), + aError ) ); + + aError = aError; + + ASSERT_ALWAYS_TRACE( ( _L( "ISCSERVICE - CSACommonIscServiceChannelListener::RunError" ) ) ); + + OstTrace1( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_12, + "ISCSERVICE - CSACommonIscServiceChannelListener::RunL - return 0x%x", KErrNone ); + INTERNAL_TRACE( ( _L( "ISCSERVICE - CSACommonIscServiceChannelListener::RunL - return 0x%x" ), + KErrNone ) ); + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CSACommonIscServiceChannelListener::DoCancel +// This function is called from CActive objects Cancel method. +// ----------------------------------------------------------------------------- +// +void CSACommonIscServiceChannelListener::DoCancel() + { + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_13, + "ISCSERVICE - CSACommonIscServiceChannelListener::DoCancel()" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE - CSACommonIscServiceChannelListener::DoCancel()" ) ) ); + + iIscApi.NotifyConnectionStatusCancel(); + + OstTrace0( TRACE_NORMAL, SA_COMMON_ISC_SERVICE_CHANNEL_LISTENER_AUTOMATED_14, + "ISCSERVICE - CSACommonIscServiceChannelListener::DoCancel - return void" ); + INTERNAL_TRACE( ( _L( "ISCSERVICE - CSACommonIscServiceChannelListener::DoCancel - return void" ) ) ); + } + +// ========================== OTHER EXPORTED FUNCTIONS ========================= + + +// End of File diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/iscservice/src/sa_common_trace.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/iscservice/src/sa_common_trace.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,181 @@ +/* +* ============================================================================== +* Name: sa_common_trace.cpp +* Part of: System adaptation +* Description: Implementation of System Adaptation common traces +* %version: 1 % +* %date_modified: Tue Dec 29 15:59:38 2009 % +* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Implementation of System Adaptation common traces +* +*/ + +// INCLUDE FILES + +#include +#include + +#include "sa_common_trace.h" + +#ifdef _DEBUG + +// EXTERNAL DATA STRUCTURES + +// EXTERNAL FUNCTION PROTOTYPES + +// CONSTANTS + +// MACROS + +// LOCAL CONSTANTS AND MACROS +const TInt KSASDataDumpTraceBytesPerLine( 10 ); + +_LIT8( KSATraceBuildDate, __DATE__ ); +_LIT8( KSATraceBuildTime, __TIME__ ); + +_LIT( KSATraceDataDumpStart, " [ " ); +_LIT( KSATraceDataDumpLineAlign, " " ); +_LIT( KSATraceDataDumpStop, " ] " ); + +_LIT( KSATraceDataDumpValue, "%02x " ); + +// MODULE DATA STRUCTURES + +// LOCAL FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +// ============================= TRACE FUNCTIONS =============================== + + +// ----------------------------------------------------------------------------- +// AssertTraceFunc +// ----------------------------------------------------------------------------- +void AssertTraceFunc( const TDesC& aPrefix, const TDesC8& aFile, TInt aLine ) + { + HBufC* buffer = HBufC::New( aFile.Length() + 1 ); + HBufC* date = HBufC::New( 32 ); + HBufC* time = HBufC::New( 32 ); + + if ( ( buffer ) && ( date ) && ( time ) ) + { + buffer->Des().Copy( aFile ); + date->Des().Copy( KSATraceBuildDate ); + time->Des().Copy( KSATraceBuildTime ); + RDebug::Print( _L( "%S Assertion failed: file=%S, line=%d, compiled=%S %S" ), + &aPrefix, buffer, aLine, date, time ); + } + else + { + RDebug::Print( _L( "Assertion and memory allocation failed" ) ); + } + + delete buffer; + delete date; + delete time; + } + + +// ----------------------------------------------------------------------------- +// BuildTraceFunc +// ----------------------------------------------------------------------------- +void BuildTraceFunc( const TDesC& aPrefix ) + { + HBufC* buffer = HBufC::New( aPrefix.Length() + 1 ); + HBufC* date = HBufC::New( 32 ); + HBufC* time = HBufC::New( 32 ); + + if ( ( buffer ) && ( date ) && ( time ) ) + { + buffer->Des().Copy( aPrefix ); + date->Des().Copy( KSATraceBuildDate ); + time->Des().Copy( KSATraceBuildTime ); + RDebug::Print( _L( "%s: compiled=%s %s" ), buffer->Des().PtrZ(), + date->Des().PtrZ(), time->Des().PtrZ() ); + +#ifdef __WINS__ + RDebug::Print( _L( "%s: __WINS__ enabled" ), + buffer->Des().PtrZ() ); +#else + RDebug::Print( _L( "%s: __WINS__ disabled" ), + buffer->Des().PtrZ() ); +#endif + +#ifdef _DEBUG + RDebug::Print( _L( "%s: _DEBUG enabled" ), + buffer->Des().PtrZ() ); +#else + RDebug::Print( _L( "%s: _DEBUG disabled" ), + buffer->Des().PtrZ() ); +#endif + +#ifdef SA_MODULE_TEST_FLAG + RDebug::Print( _L( "%s: SA_MODULE_TEST_FLAG enabled" ), + buffer->Des().PtrZ() ); +#else + RDebug::Print( _L( "%s: SA_MODULE_TEST_FLAG disabled" ), + buffer->Des().PtrZ() ); +#endif + } + delete buffer; + delete date; + delete time; + } + + +// ----------------------------------------------------------------------------- +// DataDumpTraceFunc +// ----------------------------------------------------------------------------- +void DataDumpTraceFunc( const TDesC& aPrefix, const TDesC8& aData ) + { + HBufC* buffer = HBufC::New( 255 ); // TODO: max line length + + if ( buffer ) + { + buffer->Des().Copy( aPrefix ); + buffer->Des().Append( KSATraceDataDumpStart ); + for ( TInt i = 0; i < aData.Length(); i++) + { + buffer->Des().AppendFormat( KSATraceDataDumpValue, aData[i] ); + + if( (i % KSASDataDumpTraceBytesPerLine == ( KSASDataDumpTraceBytesPerLine - 1 ) ) + && (i + 1 < aData.Length()) ) + { + RDebug::Print( buffer->Des() ); + + buffer->Des().Copy( aPrefix); + buffer->Des().Append( KSATraceDataDumpLineAlign ); + } + } + buffer->Des().Append( KSATraceDataDumpStop ); + + RDebug::Print( buffer->Des() ); + + } + delete buffer; + } + +// ----------------------------------------------------------------------------- +// IsiMsgApiTrace +// ----------------------------------------------------------------------------- + +void IsiMsgApiTrace(const TDesC& aPrefix, const TDesC8& aData) + { + } + +#endif + +// End of File diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/rom/sspluginsadaptation.iby --- a/adaptationlayer/systemstatemanageradaptation/rom/sspluginsadaptation.iby Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/rom/sspluginsadaptation.iby Thu Jan 14 10:44:58 2010 +0200 @@ -22,15 +22,15 @@ /* -Only misc adaptation supported in the first phase. Others are commented out. +Only miscadaptation and emergencycallrfadaptation are supported. Others are commented out. file=ABI_DIR\BUILD_DIR\ssm_state_adaptation.dll sys\bin\ssm_state_adaptation.dll file=ABI_DIR\BUILD_DIR\ssm_sim_adaptation.dll sys\bin\ssm_sim_adaptation.dll file=ABI_DIR\BUILD_DIR\ssm_rtc_adaptation.dll sys\bin\ssm_rtc_adaptation.dll -file=ABI_DIR\BUILD_DIR\ssm_emergencycallrf_adaptation.dll sys\bin\ssm_emergencycallrf_adaptation.dll */ -file=ABI_DIR\BUILD_DIR\miscadaptationref.dll sys\bin\miscadaptationref.dll +file=ABI_DIR\BUILD_DIR\miscadaptation.dll sys\bin\miscadaptation.dll +file=ABI_DIR\BUILD_DIR\emergencycallrfadaptation.dll sys\bin\emergencycallrfadaptation.dll #endif //__SSPLUGINSADAPTATION_IBY__ diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/bwins/ssm_emergencycallrf_adaptation.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/bwins/ssm_emergencycallrf_adaptation.def Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,4 @@ +EXPORTS + + + diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/eabi/ssm_emergencycallrf_adaptation.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/eabi/ssm_emergencycallrf_adaptation.def Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,3 @@ +EXPORTS + _Z32CreateEmergencyCallRfAdaptationLv @ 1 NONAME + diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/group/emergencycallrfadaptation.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/group/emergencycallrfadaptation.mmp Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,65 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* This file provides the information required for building. +* +*/ + + +#include +#include + +TARGET emergencycallrfadaptation.dll +TARGETTYPE dll + +// UID2 value from ssmadaptation.h ( KEmergencyCallRfAdaptationDllTypeUidValue 0x2000E657 ) +UID 0x2000E657 0x20022D91 // UID3 emergencycallrfadaptation.dll +VENDORID VID_DEFAULT + +CAPABILITY PowerMgmt ReadDeviceData WriteDeviceData ProtServ SwEvent ReadUserData WriteUserData CommDD + +// Has a fixed interface emergencycallrfadaptation.def +NOEXPORTLIBRARY + +USERINCLUDE ../inc +USERINCLUDE ../traces + +OS_LAYER_SYSTEMINCLUDE +NON_FOUNDATION_ADAPT_LAYER_SYSTEMINCLUDE + +SOURCEPATH ../src + +SOURCE ssm_emergencycallrf_adaptation.cpp +SOURCE ssm_emergencycallrf_trcommand.cpp + +// -u suffix behaviour can be removed by using nostrictdef +NOSTRICTDEF +DEFFILE ssm_emergencycallrf_adaptation.def + +USERINCLUDE ../../iscservice/inc +SOURCEPATH ../../iscservice/src +SOURCE sa_common_isc_service.cpp +SOURCE sa_common_isc_service_channel_listener.cpp +SOURCE sa_common_trace.cpp + +LIBRARY euser.lib +LIBRARY isimessage.lib +LIBRARY iscapi.lib + +SMPSAFE + +MACRO API_TRACE_FLAG +MACRO INTERNAL_TRACE_FLAG + +// End of file diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/inc/ssm_emergencycallrf_adaptation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/inc/ssm_emergencycallrf_adaptation.h Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,178 @@ +/* +* ============================================================================== +* Name: ssm_emergencycallrf_adaptation.h +* Part of: SSMA EmergencyCallRfAdaptation +* Interface: N/A +* Description: Declaration of CEmergencyCallRfAdaptation class +* %version: 1 % +* %date_modified: Tue Dec 29 15:37:57 2009 % +* +* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Symbian Foundation License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Emergencycallrf_adaptation class declarations. +* +*/ + +#ifndef SSM_EMERGENCYCALLRF_ADAPTATION_H +#define SSM_EMERGENCYCALLRF_ADAPTATION_H + +//INCLUDES +#include +#include +#include "msa_isc_service.h" + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CEmergencyCallRfTrCommand; +class CSACommonIscService; + +// CLASS DECLARATION + +/** + Reference Emergency Call RF adaptation plug-in. + Implements MEmergencyCallRfAdaptation to Activate and Deactivate RF for emergency calls. + + @internalComponent + @released + + @see MEmergencyCallRfAdaptation +*/ +class CEmergencyCallRfAdaptation : public CBase, public MEmergencyCallRfAdaptation, public MSAIscService + { +public: + static CEmergencyCallRfAdaptation* NewL(); + + //from MEmergencyCallRfAdaptation + /* + * Deletes and frees memory allocated. + */ + void Release(); + + /** + * Request RF activation so that an emergency call can be made. + * @param aStatus to complete when the operation has finished + * @see TRequestStatus + */ + void ActivateRfForEmergencyCall( TRequestStatus& aStatus ); + + /** + * Request RF deactivation after an emergency call have been made. + * @param aStatus to complete when the operation has finished + * @see TRequestStatus + */ + void DeactivateRfForEmergencyCall( TRequestStatus& aStatus ); + + /** + * Cancel the outstanding request. + */ + void Cancel(); + +private: + + /** + * C++ constructor. + */ + CEmergencyCallRfAdaptation(); + + /** + * 2nd phase constructor. + */ + void ConstructL(); + + /** + * Forwards message to an ongoing transaction. + * @param aCommandId Identification of current command + * @param aTransId Unique transaction id + * @param aData Data associated with the command. + * @param aNewTransactionPtr Pointer to the transaction + * @return none + */ + void ForwardMessageL( const TInt aCommandId, + const TUint8 aTransId, + TDesC8& aData, + CEmergencyCallRfTrCommand* aNewTransactionPtr ); + + /** + * Returns new transaction id + * + * @since S60 v3.1 + * @return TInt new transaction id + */ + TInt TransactionId(); + + /** + * Destructor. + */ + ~CEmergencyCallRfAdaptation(); + +public: // From MSAIscService + + /** + * Sends ISI messages + * @return none + */ + void SendIsiMessageL( TDesC8& aData ); + + /** + * Indicates SSMA Adaptation client about received response message + * @return none + */ + void ReceiveIsiMessageL( TDesC8& aData ); + + /** + * Indicates System Services client about received error response message + * @return none + */ + void ProcessConnectionClosedL( TInt aErrorCode ); + +public: /* functions */ + + /** + * Indicates SSMA adaptation client about received response message + * @param aErrCode ErrorCode + * @return none + */ + void ProcessResponseL( TInt aErrCode ); + + +private: /* Data */ + + // Handle for ISC message sending/receiving + CSACommonIscService* iCSACommonIscServicePtr; + + // Array of Ongoing Transactions + RPointerArray iTransactionPtr; + + // Ongoing command + TInt iCommandId; + + // Cancel command + TBool iCancelCommand; + + // Response Status + TRequestStatus* iStatusPtr; + + // Transaction id + TInt iTransId; + + }; + +#endif // SSM_EMERGENCYCALLRF_ADAPTATION_H diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/inc/ssm_emergencycallrf_trcommand.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/inc/ssm_emergencycallrf_trcommand.h Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,143 @@ +/* +* ============================================================================== +* Name: ssm_emergencycallrf_trcommand.h +* Part of: SSMA EmergencyCallRfAdaptation +* Interface: N/A +* Description: Declaration of CEmergencyCallRfTrCommand class +* %version: 1 % +* %date_modified: Tue Dec 29 15:38:00 2009 % +* +* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Symbian Foundation License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* CEmergencyCallRfTrCommand class declarations +*/ + +#ifndef SSM_EMERGENCYCALLRF_TRCOMMAND_H +#define SSM_EMERGENCYCALLRF_TRCOMMAND_H + +// INCLUDES +#include +#include "ssm_emergencycallrf_adaptation.h" + +// CONSTANTS + +// Constants for iTransactionState +#define EMERGENCYCALLRF_TR_INIT 0x00 +#define EMERGENCYCALLRF_TR_ONGOING 0x01 +#define EMERGENCYCALLRF_TR_COMPLETED 0x02 +#define EMERGENCYCALLRF_TR_FAILED 0x03 + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CEmergencyCallRfAdaptation; + +// CLASS DECLARATION + +/** +* CEmergencyCallRfTrCommand +* +* This class declarates SSM Adaptation plug-in module, which provides +* methods for sending Domestic OS messages. +*/ +class CEmergencyCallRfTrCommand : public CBase + { + public: + + /** + * Two-phased constructor. + * @param iAdaptation Reference to CHapticsAdaptation + * @param aTransactionId Unique Transaction Id + */ + static CEmergencyCallRfTrCommand* NewL( CEmergencyCallRfAdaptation &iAdaptation, + TUint8 aTransactionId ); + + /** + * Destructor. + */ + virtual ~CEmergencyCallRfTrCommand(); + + private: + + /** + * C++ default constructor. + */ + CEmergencyCallRfTrCommand( CEmergencyCallRfAdaptation &iAdaptation, + TUint8 aTransactionId ); + + public: // New functions + + /** + * Receive messages from Adaptation + * @param aCommandId Identification of current command + * @param aData Data associated with the command. + * @return none + */ + void ProcessMessageL( const TInt aCommandId, + TDesC8& aData ); + + /** + * Returns a current transaction ID + * @return A transaction ID + */ + TUint8 TransactionId() const; + + /** + * Returns transaction state value + * @return A current transaction state + */ + TUint8 TransactionState() const; + + private: // New functions + + /** + * Creates and sends MCE_RF_STATE_REQ message + * @param aRequestInfo Requested state info + * @return none + */ + void MCE_RF_STATE_REQL( TUint8 aRequestInfo ); + + /** + * Parses received MCE_RF_STATE_RESP + * @param aData Reference to received MCE_RF_STATE_RESP + * @return none + */ + void ParseMCE_RF_STATE_RESPL( TDesC8 &aData ); + + private: // Data + + // Reference to Adaptation + CEmergencyCallRfAdaptation &iAdaptation; + + // Transaction ID + TUint8 iTransactionId; + + /** + * A current transaction states + * - EMERGENCYCALLRF_TR_INIT + * - EMERGENCYCALLRF_TR_ONGOING + * - EMERGENCYCALLRF_TR_COMPLETED + * - EMERGENCYCALLRF_TR_FAILED + */ + TUint8 iTransactionState; + + }; + +#endif // SSM_EMERGENCYCALLRF_TRCOMMAND_H + +//End of file diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/src/ssm_emergencycallrf_adaptation.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/src/ssm_emergencycallrf_adaptation.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,694 @@ +/* +* ============================================================================== +* Name: ssm_emergencycallrf_adaptation.cpp +* Part of: SSMA EmergencyCallRfAdaptation +* Interface: N/A +* Description: Declaration of CEmergencyCallRfAdaptation class +* %version: 1 % +* %date_modified: Tue Dec 29 15:38:36 2009 % +* +* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Symbian Foundation License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Implementation of ssm_emergencycallrf_adaptation +*/ + +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "ssm_emergencycallrf_adaptationtraces.h" +#endif // OST_TRACE_COMPILER_IN_USE +#include +#include +#include +#include +#include +#include "ssm_emergencycallrf_adaptation.h" +#include "ssm_emergencycallrf_trcommand.h" +#include "sa_common_isc_service.h" +#include "sa_common_trace.h" + +// EXTERNAL DATA STRUCTURES + +// EXTERNAL FUNCTIONS PROTOTYPES + +// CONSTANTS +#define MIN_ISI_MESSAGE_SIZE 36 + +// LOCAL CONSTANTS AND MACROS + +// MODULE DATA STRUCTURES + +// LOCAL FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +// ============================= LOCAL FUNCTIONS =============================== + +// ============================ MEMBER FUNCTIONS =============================== + +/** + Function to create new Emergency Call RF Adaptation Plugin. + + @return new instance of MEmergencyCallRfAdaptation for Emergency Call RF Adaptations. + + @internalComponent + @released +*/ +EXPORT_C MEmergencyCallRfAdaptation* CreateEmergencyCallRfAdaptationL() + { + CEmergencyCallRfAdaptation* emergencyCallRfAdaptation = CEmergencyCallRfAdaptation::NewL(); + return ( static_cast ( emergencyCallRfAdaptation ) ); + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::NewL +// ----------------------------------------------------------------------------- +// +CEmergencyCallRfAdaptation* CEmergencyCallRfAdaptation::NewL() + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_NEWL_1, + "SSMA # CEmergencyCallRfAdaptation::NewL" ); + INTERNAL_TRACE( _L( "SSMA # CEmergencyCallRfAdaptation::NewL" ) ); + + CEmergencyCallRfAdaptation* self = new(ELeave) CEmergencyCallRfAdaptation; + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + OstTrace1( TRACE_API, CEMERGENCYCALLRFADAPTATION_NEWL_2, + "SSMA # CEmergencyCallRfAdaptation::NewL - return 0x%08x", self ); + API_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::NewL - return 0x%08x"), self )); + return self; + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::~CEmergencyCallRfAdaptation +// ----------------------------------------------------------------------------- +// +CEmergencyCallRfAdaptation::~CEmergencyCallRfAdaptation() + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_CEMERGENCYCALLRFADAPTATION_D1, + "SSMA # CEmergencyCallRfAdaptation::~CEmergencyCallRfAdaptation" ); + INTERNAL_TRACE( _L( "SSMA # CEmergencyCallRfAdaptation::~CEmergencyCallRfAdaptation" ) ); + + /* Delete the list of ongoing transactions */ + iTransactionPtr.ResetAndDestroy(); + + /* Delete iCSACommonIscServicePtr */ + if ( iCSACommonIscServicePtr ) + { + OstTrace0( TRACE_API, CEMERGENCYCALLRFADAPTATION_CEMERGENCYCALLRFADAPTATION_D2, + "SSMA - CEmergencyCallRfAdaptation::~CEmergencyCallRfAdaptation - Delete iCSACommonIscServicePtr" ); + API_TRACE((_L( "SSMA - CEmergencyCallRfAdaptation::~CEmergencyCallRfAdaptation - Delete iCSACommonIscServicePtr" ))); + + delete iCSACommonIscServicePtr; + iCSACommonIscServicePtr = NULL; + } + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_CEMERGENCYCALLRFADAPTATION_D3, + "SSMA # CEmergencyCallRfAdaptation::~CEmergencyCallRfAdaptation - return void" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::~CEmergencyCallRfAdaptation - return void"))); + + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::CEmergencyCallRfAdaptation +// ----------------------------------------------------------------------------- +// +CEmergencyCallRfAdaptation::CEmergencyCallRfAdaptation() + : iTransId(0) + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_CEMERGENCYCALLRFADAPTATION_1, + "SSMA # CEmergencyCallRfAdaptation::CEmergencyCallRfAdaptation()" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::CEmergencyCallRfAdaptation()"))); + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_CEMERGENCYCALLRFADAPTATION_2, + "SSMA # CEmergencyCallRfAdaptation::CEmergencyCallRfAdaptation - return void" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::CEmergencyCallRfAdaptation - return void"))); + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::ConstructL +// ----------------------------------------------------------------------------- +// +void CEmergencyCallRfAdaptation::ConstructL() + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_CONSTRUCTL_1, + "SSMA # CEmergencyCallRfAdaptation::ConstructL()" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ConstructL()"))); + + // Minimum isi message size + TUint8 isiMessageSize( MIN_ISI_MESSAGE_SIZE ); + + iCSACommonIscServicePtr = CSACommonIscService::NewL( *this, + EIscNokiaReserved8, + /*(TUint16) KEmergencyCallRfAdaptationDllTypeUidValue,*/ + NULL, // we are not interested in events, so we send NULL + isiMessageSize ); + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_CONSTRUCTL_2, + "SSMA # CEmergencyCallRfAdaptation::ConstructL - return void" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ConstructL - return void"))); + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::ActivateRfForEmergencyCall +// Request RF activation so that an emergency call can be made. +// @param aStatus to complete when the operation has finished +// @see TRequestStatus +// ----------------------------------------------------------------------------- +// +void CEmergencyCallRfAdaptation::ActivateRfForEmergencyCall( TRequestStatus& aStatus ) + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_ACTIVATERFONFOREMERGENCYCALL_1, + "SSMA # CEmergencyCallRfAdaptation::ActivateRfForEmergencyCall" ); + INTERNAL_TRACE( _L( "SSMA # CEmergencyCallRfAdaptation::ActivateRfForEmergencyCall" ) ); + + iCancelCommand= EFalse; + aStatus = KRequestPending; + iStatusPtr = &aStatus; + + CEmergencyCallRfTrCommand* transactionPtr( NULL ); + TUint8 transId = TransactionId(); + iCommandId = StartupAdaptation::EActivateRfForEmergencyCall; + + transactionPtr = CEmergencyCallRfTrCommand::NewL( *this, transId ); + + if ( transactionPtr ) + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_ACTIVATERFONFOREMERGENCYCALL_2, + "SSMA # CEmergencyCallRfAdaptation::ActivateRfForEmergencyCall - Transaction ptr created" ); + + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ActivateRfForEmergencyCall - Transaction ptr created"))); + + // Modifiable pointer to message data buffer + TPtr8 bufferPtr( NULL, 0 ); + + ForwardMessageL( iCommandId, transId, bufferPtr, transactionPtr ); + } + else + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_ACTIVATERFONFOREMERGENCYCALL_3, + "SSMA # CEmergencyCallRfAdaptation::ActivateRfForEmergencyCall - transaction ptr not created" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ActivateRfForEmergencyCall - transaction ptr not created "))); + User::RequestComplete( iStatusPtr, KErrNoMemory ); + } + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_ACTIVATERFONFOREMERGENCYCALL_4, + "SSMA # CEmergencyCallRfAdaptation::ActivateRfForEmergencyCall - return void" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ActivateRfForEmergencyCall - return void"))); + + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::DeactivateRfForEmergencyCall +// Request RF deactivation so that an emergency call can be made. +// @param aStatus to complete when the operation has finished +// @see TRequestStatus +// ----------------------------------------------------------------------------- +// +void CEmergencyCallRfAdaptation::DeactivateRfForEmergencyCall( TRequestStatus& aStatus ) + { + iCancelCommand= EFalse; + aStatus = KRequestPending; + iStatusPtr = &aStatus; + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_DEACTIVATERFONFOREMERGENCYCALL_1, + "SSMA # CEmergencyCallRfAdaptation::DeactivateRfForEmergencyCall" ); + INTERNAL_TRACE( _L( "SSMA # CEmergencyCallRfAdaptation::DeactivateRfForEmergencyCall" ) ); + + CEmergencyCallRfTrCommand* transactionPtr( NULL ); + TUint8 transId = TransactionId(); + iCommandId = StartupAdaptation::EDeactivateRfAfterEmergencyCall; + + transactionPtr = CEmergencyCallRfTrCommand::NewL( *this, transId); + + if ( transactionPtr ) + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_DEACTIVATERFONFOREMERGENCYCALL_2, + "SSMA # CEmergencyCallRfAdaptation::DeactivateRfForEmergencyCall - Transaction ptr created" ); + + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::DeactivateRfForEmergencyCall - Transaction ptr created"))); + + // Modifiable pointer to message data buffer + TPtr8 bufferPtr( NULL, 0 ); + + ForwardMessageL( iCommandId, transId, bufferPtr, transactionPtr ); + } + else + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_DEACTIVATERFONFOREMERGENCYCALL_3, + "SSMA # CEmergencyCallRfAdaptation::DeactivateRfForEmergencyCall - transaction ptr not created" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::DeactivateRfForEmergencyCall - transaction ptr not created "))); + User::RequestComplete( iStatusPtr, KErrNoMemory ); + } + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_DEACTIVATERFONFOREMERGENCYCALL_4, + "SSMA # CEmergencyCallRfAdaptation::DeactivateRfForEmergencyCall - return void" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::DeactivateRfForEmergencyCall - return void"))); + + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::Release +// Deletes and frees memory allocated. +// ----------------------------------------------------------------------------- +// +void CEmergencyCallRfAdaptation::Release() + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_RELEASE, + "SSMA # CEmergencyCallRfAdaptation::Release" ); + INTERNAL_TRACE( _L( "SSMA # CEmergencyCallRfAdaptation::Release" ) ); + delete this; + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::Cancel +// Cancel the outstanding request. Reference implementation completes the +// requests immediately so there is nothing to cancel. +// On a device, Cancel() needs an implementation as the Request might be +// outstanding and it needs to be cancelled. +// ----------------------------------------------------------------------------- +// +void CEmergencyCallRfAdaptation::Cancel() + { + iCancelCommand= ETrue; + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_CANCEL_2, + "SSMA # CEmergencyCallRfAdaptation::Cancel - return void" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::Cancel - return void"))); + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::ForwardMessageL +// ----------------------------------------------------------------------------- +// +void CEmergencyCallRfAdaptation::ForwardMessageL( const TInt aCommandId, + const TUint8 aTransId, + TDesC8& aData, + CEmergencyCallRfTrCommand* aNewTransactionPtr ) + { + OstTraceExt4( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_FORWARDMESSAGEL_0, + "SSMA # CEmergencyCallRfAdaptation::ForwardMessageL(0x%x,0x%x,0x%x,0x%x)", + (TUint)aCommandId, (TUint)aTransId, (TUint)&aData, (TUint)&aNewTransactionPtr ); + + INTERNAL_TRACE((_L( "SSMA # CEmergencyCallRfAdaptation::ForwardMessageL(0x%x,0x%x,0x%x,0x%x)"), + (TUint)aCommandId, (TUint)aTransId, (TUint)&aData, (TUint)&aNewTransactionPtr )); + + CEmergencyCallRfTrCommand* transactionPtr( NULL ); + TInt32 entryToBeRemoved( KErrNotFound ); + + if ( aNewTransactionPtr ) + { + TInt32 newTrAppendStatus( KErrGeneral ); + + transactionPtr = aNewTransactionPtr; + + // If the transaction is already in array, no need to add it + entryToBeRemoved = iTransactionPtr.Find( transactionPtr ); + + // It's a new transaction, thus not assigned to the list yet. + if ( entryToBeRemoved == KErrNotFound ) + { + newTrAppendStatus = iTransactionPtr.Append( transactionPtr ); + + if ( newTrAppendStatus != KErrNone ) + { + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_FORWARDMESSAGEL_1, + "SSMA - CEmergencyCallRfAdaptation::ForwardMessageL - iTransaction.Append FAILED - status %d.", + newTrAppendStatus ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - iTransaction.Append FAILED - status %d."), + newTrAppendStatus)); + + delete transactionPtr; + transactionPtr = NULL; + User::Leave( newTrAppendStatus ); + } + + // Get the index, needed if the entry needs to be removed later on. + entryToBeRemoved = iTransactionPtr.Find( transactionPtr ); + } + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_FORWARDMESSAGEL_2, + "SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - entryToBeRemoved %d:", + entryToBeRemoved ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - entryToBeRemoved %d:"), + entryToBeRemoved)); + + if ( entryToBeRemoved == KErrNotFound ) + { + ASSERT_ALWAYS_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - Entry not found"))); + + delete transactionPtr; + transactionPtr = NULL; + User::Leave( KErrNotFound ); + } + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_FORWARDMESSAGEL_3, + "SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - New transactionPtr." ); + INTERNAL_TRACE(_L("SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - New transactionPtr.")); + } + else + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_FORWARDMESSAGEL_4, + "SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - Search existing transaction from the list." ); + INTERNAL_TRACE(_L("SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - Search existing transaction from the list.")); + + // Find an existing transaction if we did not create a new one. + for ( TUint32 i = 0; i < iTransactionPtr.Count() && transactionPtr == NULL; i++ ) + { + if ( iTransactionPtr[i]->TransactionId() == aTransId ) + { + transactionPtr = iTransactionPtr[i]; + entryToBeRemoved = i; + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_FORWARDMESSAGEL_5, + "SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - Transaction found." ); + INTERNAL_TRACE(_L("SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - Transaction found.")); + } + } + } + + if ( transactionPtr ) + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_FORWARDMESSAGEL_6, + "SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - forwared to transaction." ); + INTERNAL_TRACE(_L("SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - forwared to transaction.")); + + TRAPD( err, transactionPtr->ProcessMessageL( aCommandId, aData ) ); + + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_FORWARDMESSAGEL_7, + "SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - TRAP err: %d: ", + err ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - TRAP err: %d: "), + err)); + + TUint32 transactionState = transactionPtr->TransactionState(); + + // Transaction completed or failed + if ( transactionState == EMERGENCYCALLRF_TR_COMPLETED || + transactionState == EMERGENCYCALLRF_TR_FAILED || + err != KErrNone ) + { + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_FORWARDMESSAGEL_8, + "SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - delete transaction." ); + INTERNAL_TRACE(_L("SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - delete transaction.")); + + delete transactionPtr; + transactionPtr = NULL; + + iTransactionPtr.Remove( entryToBeRemoved ); + + User::LeaveIfError( err ); + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_FORWARDMESSAGEL_11, + "SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - Transaction removed." ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - Transaction removed."))); + } + } + else + { + ASSERT_ALWAYS_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - unknown message"))); + User::Leave( KErrGeneral ); + } + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_FORWARDMESSAGEL_12, + "SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - return void" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ForwardMessageL - return void"))); + } + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::SendIsiMessageL +// ----------------------------------------------------------------------------- +// +void CEmergencyCallRfAdaptation::SendIsiMessageL( TDesC8& aMessageData ) + { + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_SENDISIMESSAGEL_1, + "SSMA # CEmergencyCallRfAdaptation::SendIsiMessageL(0x%x)", + (TUint)&aMessageData ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::SendIsiMessageL(0x%x)"), + (TUint)&aMessageData)); + + // Allocate and initialize space for ISI message + TUint32 length = ISI_HEADER_SIZE + aMessageData.Length(); + HBufC8* isiMsgData = HBufC8::NewL( length ); + + CleanupStack::PushL( isiMsgData ); + + TPtr8 isiMsgDataPtr = isiMsgData->Des(); + + // Create an ISI message + TIsiSend isiMsg( isiMsgDataPtr, length ); + isiMsg.Set8bit( ISI_HEADER_OFFSET_RECEIVERDEVICE, PN_DEV_MODEM ); + isiMsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_MODEM_MCE ); + isiMsg.CopyData( ISI_HEADER_OFFSET_TRANSID, aMessageData ); + isiMsg.Complete(); + + // Send ISI message + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_SENDISIMESSAGEL_2, + "SSMA # CEmergencyCallRfAdaptation::SendIsiMessageL - iCSACommonIscService->SendMessageL(0x%x)", + (TUint)&aMessageData ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::SendIsiMessageL - iCSACommonIscService->SendIsiMessageL(0x%x)"), + (TUint)&aMessageData)); + iCSACommonIscServicePtr->SendMessageL( isiMsgDataPtr ); + + // Delete temporary buffers + CleanupStack::PopAndDestroy( isiMsgData ); + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_SENDISIMESSAGEL_3, + "SSMA # CEmergencyCallRfAdaptation::SendIsiMessageL - return void" ); + INTERNAL_TRACE( ( _L( "SSMA # CEmergencyCallRfAdaptation::SendIsiMessageL - return void" ) ) ); + } + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::ReceiveIsiMessageL +// ----------------------------------------------------------------------------- +// +void CEmergencyCallRfAdaptation::ReceiveIsiMessageL( TDesC8& aData ) + { + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_RECEIVEISIMESSAGEL_1, + "SSMA # CEmergencyCallRfAdaptation::ReceiveIsiMessageL(0x%x)", + (TUint)&aData ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ReceiveIsiMessageL(0x%x)"), + (TUint)&aData )); + + TIsiReceiveC isiMsg( aData ); + TUint8 resourceId( isiMsg.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ) ); + TUint8 transId( isiMsg.Get8bit( ISI_HEADER_OFFSET_TRANSID ) ); + TUint8 messageId( isiMsg.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) ); + + OstTraceExt3( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_RECEIVEISIMESSAGEL_2, + "SSMA - CEmergencyCallRfAdaptation::ReceiveIsiMessageL - ISI message Id(0x%x, 0x%x, 0x%x)", + resourceId, transId, messageId ); + INTERNAL_TRACE((_L("SSMA - CEmergencyCallRfAdaptation::ReceiveIsiMessageL - ISI message Id(0x%x, 0x%x, 0x%x)"), + resourceId, transId, messageId )); + + if ( resourceId == PN_MODEM_MCE ) + { + switch ( messageId ) + { + case MCE_RF_STATE_RESP: + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_RECEIVEISIMESSAGEL_3, + "SSMA # CEmergencyCallRfAdaptation::ReceiveIsiMessageL - MCE_RF_STATE_RESP" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ReceiveIsiMessageL - MCE_RF_STATE_RESP"))); + + CEmergencyCallRfTrCommand* transactionPtr( NULL ); + + ForwardMessageL( messageId, transId, aData, transactionPtr ); + break; + } + default: + { + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_RECEIVEISIMESSAGEL_4, + "SSMA - CEmergencyCallRfAdaptation::ReceiveIsiMessageL - Wrong msg Id from Cellmo - MessageId() 0x%x ", + messageId ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ReceiveIsiMessageL - Wrong msg Id from Cellmo - MessageId() 0x%x "), + messageId)); + break; + } + } + } + else + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_RECEIVEISIMESSAGEL_5, + "SSMA - CEmergencyCallRfAdaptation::ReceiveIsiMessageL -resource id NOT SUPPORTED! " ); + INTERNAL_TRACE( _L( "SSMA # CEmergencyCallRfAdaptation::ReceiveIsiMessageL -resource id NOT SUPPORTED! " ) ); + User::Leave( KErrGeneral ); + } + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_RECEIVEISIMESSAGEL_6, + "SSMA - CEmergencyCallRfAdaptation::ReceiveIsiMessageL -return void " ); + INTERNAL_TRACE( _L( "SSMA # CEmergencyCallRfAdaptation::ReceiveIsiMessageL -return void " ) ); + + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::ProcessResponseL +// ----------------------------------------------------------------------------- +// +void CEmergencyCallRfAdaptation::ProcessResponseL( TInt aErrCode ) + { + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_PROCESSRESPONSEL_1, + "SSMA # CEmergencyCallRfAdaptation::ProcessResponseL(0x%d)", + (TUint)aErrCode ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ProcessResponseL(0x%x)"), + aErrCode )); + + if ( iCancelCommand ) + { + if ( aErrCode == KErrNone ) + { + switch ( iCommandId ) + { + case StartupAdaptation::EActivateRfForEmergencyCall: + { + CEmergencyCallRfTrCommand* transactionPtr( NULL ); + TUint8 transId = TransactionId(); + transactionPtr = CEmergencyCallRfTrCommand::NewL( *this, transId); + + if ( transactionPtr ) + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_PROCESSRESPONSEL_2, + "SSMA # CEmergencyCallRfAdaptation::ProcessResponseL - Transaction ptr created" ); + + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ProcessResponseL - Transaction ptr created"))); + + // Modifiable pointer to message data buffer + TPtr8 iBufferPtr( NULL, 0 ); + + ForwardMessageL( StartupAdaptation::EDeactivateRfAfterEmergencyCall, transId, iBufferPtr, transactionPtr ); + } + else + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_PROCESSRESPONSEL_3, + "SSMA # CEmergencyCallRfAdaptation::ProcessResponseL - transaction ptr not created" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ProcessResponseL - transaction ptr not created "))); + User::RequestComplete( iStatusPtr, KErrCompletion); + } + iCommandId = KErrCancel; + } + break; + + case StartupAdaptation::EDeactivateRfAfterEmergencyCall: + { + CEmergencyCallRfTrCommand* transactionPtr( NULL ); + TUint8 transId = TransactionId(); + transactionPtr = CEmergencyCallRfTrCommand::NewL( *this, transId); + + if ( transactionPtr ) + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_PROCESSRESPONSEL_4, + "SSMA # CEmergencyCallRfAdaptation::ProcessResponseL - Transaction ptr created" ); + + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ProcessResponseL - Transaction ptr created"))); + + // Modifiable pointer to message data buffer + TPtr8 iBufferPtr( NULL, 0 ); + + ForwardMessageL( StartupAdaptation::EActivateRfForEmergencyCall, transId, iBufferPtr, transactionPtr ); + } + else + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_PROCESSRESPONSEL_5, + "SSMA # CEmergencyCallRfAdaptation::ProcessResponseL - transaction ptr not created" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ProcessResponseL - transaction ptr not created"))); + User::RequestComplete( iStatusPtr, KErrCompletion); + } + iCommandId = KErrCancel; + } + break; + + case KErrCancel: + { + User::RequestComplete( iStatusPtr, KErrCancel); + } + break; + + default: + { + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_PROCESSRESPONSEL_6, + "SSMA # CEmergencyCallRfAdaptation::ProcessResponseL - Unknown CommandId() 0x%x ", + iCommandId ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ProcessResponseL - Unknown CommandId() 0x%x "), + iCommandId )); + } + break; + } + } + else + { + User::RequestComplete( iStatusPtr, KErrCancel ); + } + } + else + { + User::RequestComplete( iStatusPtr, aErrCode ); + } + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_PROCESSRESPONSEL_7, + "SSMA # CEmergencyCallRfAdaptation::ProcessResponseL - return void" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ProcessResponseL - return void"))); + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::ProcessConnectionClosedL +// ----------------------------------------------------------------------------- +// +void CEmergencyCallRfAdaptation::ProcessConnectionClosedL( TInt aErrorCode ) + { + OstTrace1( TRACE_NORMAL,CEMERGENCYCALLRFADAPTATION_PROCESSCONNECTIONCLOSEDL_1, + "SSMA # CEmergencyCallRfAdaptation::ProcessConnectionClosedL(0x%x)", + aErrorCode ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::ProcessConnectionClosedL(0x%x)"), + aErrorCode )); + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFADAPTATION_PROCESSCONNECTIONCLOSEDL_2, + "SSMA # CEmergencyCallRfAdaptation::ProcessConnectionClosedL - return void" ); + INTERNAL_TRACE((_L( "SSMA # CEmergencyCallRfAdaptation::ProcessConnectionClosedL - return void" ))); + } + + +// +// ----------------------------------------------------------------------------- +// CEmergencyCallRfAdaptation::TransactionId +// ----------------------------------------------------------------------------- +// +TInt CEmergencyCallRfAdaptation::TransactionId() + { + // check for 255 + if ( (++iTransId) >= 255 ) + { + iTransId = 0; + } + + OstTrace1( TRACE_NORMAL,CEMERGENCYCALLRFADAPTATION_TRANSACTIONID_1, + "SSMA # CEmergencyCallRfAdaptation::TransactionId(0x%x)", + iTransId ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::TransactionId(0x%x)"), + iTransId )); + return iTransId; + } + +// End of file + diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/src/ssm_emergencycallrf_trcommand.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/src/ssm_emergencycallrf_trcommand.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,353 @@ +/* +* ============================================================================== +* Name: ssm_emergencycallrf_trcommand.cpp +* Part of: SSMA EmergencyCallRfAdaptation +* Interface: N/A +* Description: Implementation of CEmergencyCallRfTrCommand class +* %version: 1 % +* %date_modified: Tue Dec 29 15:38:38 2009 % +* +* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Symbian Foundation License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Implementation of ssm_emergencycallrf_adaptation +*/ +// INCLUDE FILES +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "ssm_emergencycallrf_trcommandtraces.h" +#endif +#include +#include +#include +#include +#include "ssm_emergencycallrf_trcommand.h" +#include "sa_common_isc_service.h" +#include "sa_common_trace.h" + +// EXTERNAL DATA STRUCTURES + +// EXTERNAL FUNCTION PROTOTYPES + +// CONSTANTS +// MACROS + +// LOCAL CONSTANTS AND MACROS + +// MODULE DATA STRUCTURES + +// LOCAL FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CEmergencyCallRfAdaptation; + +// ============================= LOCAL FUNCTIONS =============================== +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfTrCommand::TransactionId +// ----------------------------------------------------------------------------- +// +TUint8 CEmergencyCallRfTrCommand::TransactionId() const + { + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_TRANSACTIONID_1, + "SSMA # CEmergencyCallRfTrCommand::TransactionId - return 0x%x", + iTransactionId ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::TransactionId - return 0x%x"), + iTransactionId)); + + return iTransactionId; + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfTrCommand::TransactionState +// ----------------------------------------------------------------------------- +// +TUint8 CEmergencyCallRfTrCommand::TransactionState() const + { + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_TRANSACTIONSTATE_1, + "SSMA # CEmergencyCallRfTrCommand::iTransactionState - return 0x%02x", + iTransactionState ); + INTERNAL_TRACE ((_L("SSMA # CEmergencyCallRfTrCommand::iTransactionState - return 0x%02x"), + iTransactionState)); + + return iTransactionState; + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfTrCommand::NewL +// ----------------------------------------------------------------------------- +// +CEmergencyCallRfTrCommand* CEmergencyCallRfTrCommand::NewL( CEmergencyCallRfAdaptation &aAdaptation, + TUint8 aTransactionId ) + { + OstTraceExt2( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_NEWL_1, + "CEmergencyCallRfTrCommand::NewL(0x%x, %d)", + (TUint)&aAdaptation, aTransactionId); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::NewL(0x%x, %d)"), + &aAdaptation, aTransactionId)); + + CEmergencyCallRfTrCommand* self = new(ELeave) CEmergencyCallRfTrCommand( aAdaptation, aTransactionId); + + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_NEWL_2, + "SSMA # CEmergencyCallRfTrCommand::NewL() - return 0x%x", + self ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::NewL() - return 0x%x"), + self)); + + return self; + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfTrCommand::CEmergencyCallRfTrCommand +// ----------------------------------------------------------------------------- +// +CEmergencyCallRfTrCommand::CEmergencyCallRfTrCommand( CEmergencyCallRfAdaptation &aAdaptation, + TUint8 aTransactionId ) + : iAdaptation(aAdaptation) + , iTransactionId( aTransactionId ) + , iTransactionState( EMERGENCYCALLRF_TR_INIT ) + { + OstTraceExt2( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_CEMERGENCYCALLRFTRCOMMAND_1, + "SSMA # CEmergencyCallRfTrCommand::CEmergencyCallRfTrCommand(0x%x ,%d)", + (TUint)&aAdaptation, aTransactionId ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::CEmergencyCallRfTrCommand(0x%x ,%d)"), + &aAdaptation, aTransactionId )); + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_CEMERGENCYCALLRFTRCOMMAND_2, + "SSMA # CEmergencyCallRfTrCommand::CEmergencyCallRfTrCommand - return void" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::CEmergencyCallRfTrCommand - return void"))); + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfTrCommand::~CEmergencyCallRfTrCommand +// ----------------------------------------------------------------------------- +// +CEmergencyCallRfTrCommand::~CEmergencyCallRfTrCommand() + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_CEMERGENCYCALLRFTRCOMMAND_D1, + "SSMA # CEmergencyCallRfTrCommand::~CEmergencyCallRfTrCommand - return void" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::~CEmergencyCallRfTrCommand - return void"))); + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfTrCommand::ProcessMessageL +// ----------------------------------------------------------------------------- +// +void CEmergencyCallRfTrCommand::ProcessMessageL( const TInt aCommandId, TDesC8 &aData ) + { + OstTraceExt2( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_PROCESSMESSAGE_1, + "SSMA # CEmergencyCallRfTrCommand::ProcessMessageL(0x%x, 0x%x)", + aCommandId, (TUint)&aData ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::ProcessMessageL(0x%x,0x%x)"), + aCommandId, (TUint)&aData )); + + switch ( iTransactionState ) + { + case EMERGENCYCALLRF_TR_INIT: + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_PROCESSMESSAGE_2, + "SSMA # CEmergencyCallRfTrCommand::ProcessMessageL - EMERGENCYCALLRF_TR_INIT" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::ProcessMessageL - EMERGENCYCALLRF_TR_INIT"))); + + // This is the new transaction, so update the state value + iTransactionState = EMERGENCYCALLRF_TR_ONGOING; + + switch (aCommandId) + { + case StartupAdaptation::EActivateRfForEmergencyCall: + { + //Build up the isi message + MCE_RF_STATE_REQL( MCE_RF_ON ); + } + break; + + case StartupAdaptation::EDeactivateRfAfterEmergencyCall: + { + //Build up the isi message + MCE_RF_STATE_REQL( MCE_RF_OFF ); + } + break; + + default: + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_PROCESSMESSAGE_3, + "SSMA - CEmergencyCallRfTrCommand::ProcessMessageL - Wrong command->Transaction failed" ); + ASSERT_ALWAYS_TRACE((_L("SSMA - CEmergencyCallRfTrCommand::ProcessMessageL - Wrong command->Transaction failed"))); + iTransactionState = EMERGENCYCALLRF_TR_FAILED; + User::Leave( KErrGeneral ); + } + break; + } + } + break; + + case EMERGENCYCALLRF_TR_ONGOING: + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_PROCESSMESSAGE_4, + "SSMA # CEmergencyCallRfTrCommand::ProcessMessageL - EMERGENCYCALLRF_TR_ONGOING" ); + INTERNAL_TRACE((_L("SSMA - CEmergencyCallRfTrCommand::ProcessMessageL - EMERGENCYCALLRF_TR_ONGOING"))); + + //Parse the received response + ParseMCE_RF_STATE_RESPL( aData ); + } + break; + + default: + { + ASSERT_ALWAYS_TRACE((_L("CEmergencyCallRfTrCommand::ProcessMessageL - Wrong state->Transaction failed"))); + iTransactionState = EMERGENCYCALLRF_TR_FAILED; + User::Leave( KErrGeneral ); + break; + } + } + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_PROCESSMESSAGE_5, + "SSMA # CEmergencyCallRfTrCommand::ProcessMessageL - return void" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::ProcessMessageL - return void"))); + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfTrCommand::MCE_RF_STATE_REQL +// ----------------------------------------------------------------------------- +// +void CEmergencyCallRfTrCommand::MCE_RF_STATE_REQL( TUint8 aRequestInfo ) + { + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_MCE_RF_STATE_REQL_1, + "SSMA # CEmergencyCallRfTrCommand::MCE_RF_STATE_REQL(0x%x)", aRequestInfo ); + INTERNAL_TRACE((_L( "SSMA # CEmergencyCallRfTrCommand::MCE_RF_STATE_REQL(0x%x)"), aRequestInfo)); + + /* Create MCE_RF_STATE_REQ message */ + TBuf8 msgData; + + msgData.Append( iTransactionId ); // Transaction Id + msgData.Append( MCE_RF_STATE_REQ ); // Message Id + msgData.Append( aRequestInfo ); // Request info high bits + msgData.Append( 0x00 ); // Filler + + /* Send ISI message */ + iAdaptation.SendIsiMessageL( msgData ); + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_MCE_RF_STATE_REQL_3, + "SSMA # CEmergencyCallRfTrCommand::MCE_RF_STATE_REQL - return void" ); + INTERNAL_TRACE((_L( "SSMA # CEmergencyCallRfTrCommand::MCE_RF_STATE_REQL - return void"))); + } + + +// ----------------------------------------------------------------------------- +// CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL +// ----------------------------------------------------------------------------- +void CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL( TDesC8 &aData ) + { + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_MCE_RF_STATE_RESP_1, + "SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - aData is: (%x)", + &aData ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - aData is: (%x)"), + &aData)); + + TInt errorCode(KErrNone); + TUint8 status( 0 ); + + TIsiReceiveC isiMsg( aData ); + + // start parsing the message + + //Read status + status = isiMsg.Get8bit( ISI_HEADER_SIZE + + MCE_RF_STATE_RESP_OFFSET_STATUS ); + + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_MCE_RF_STATE_RESP_2, + "SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status(%d)", + status ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status(%d)"), + status)); + + switch( status ) + { + case MCE_OK: // 0 + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_MCE_RF_STATE_RESP_3, + "SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status = MCE_OK" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status = MCE_OK"))); + errorCode = KErrNone; + iTransactionState = EMERGENCYCALLRF_TR_COMPLETED; + } + break; + + case MCE_FAIL: // 0x01 + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_MCE_RF_STATE_RESP_4, + "SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status = MCE_FAIL" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status = MCE_FAIL"))); + errorCode = KErrNotFound; + iTransactionState = EMERGENCYCALLRF_TR_FAILED; + } + break; + + case MCE_ALREADY_ACTIVE: // 0x06 + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_MCE_RF_STATE_RESP_5, + "SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status = MCE_ALREADY_ACTIVE" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status = MCE_ALREADY_ACTIVE"))); + errorCode = KErrArgument; + iTransactionState = EMERGENCYCALLRF_TR_FAILED; + } + break; + + case MCE_TRANSITION_ONGOING: // 0x16 + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_MCE_RF_STATE_RESP_6, + "SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status = MCE_TRANSITION_ONGOING" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status = MCE_TRANSITION_ONGOING"))); + errorCode = KErrServerBusy; + iTransactionState = EMERGENCYCALLRF_TR_FAILED; + } + break; + + case MCE_RESTART_REQUIRED: // 0x17 + { + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_MCE_RF_STATE_RESP_7, + "SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status = MCE_RESTART_REQUIRED" ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status = MCE_RESTART_REQUIRED"))); + errorCode = KErrCompletion; + iTransactionState = EMERGENCYCALLRF_TR_FAILED; + } + break; + + default: + { + ASSERT_ALWAYS_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - "))); + OstTrace1( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_MCE_RF_STATE_RESP_8, + "SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status(%d)", + status ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL() - Status(%d)"), + status)); + } + break; + } + + iAdaptation.ProcessResponseL( errorCode ); + + OstTrace0( TRACE_NORMAL, CEMERGENCYCALLRFTRCOMMAND_MCE_RF_STATE_RESP_9, + "SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL - return " ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfTrCommand::ParseMCE_RF_STATE_RESPL - return "))); + } + +// End of file + diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/traces/OstTraceDefinitions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/ssm_emergencycallrf_adaptation_dll/traces/OstTraceDefinitions.h Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,7 @@ +#ifndef __OSTTRACEDEFINITIONS_H__ +#define __OSTTRACEDEFINITIONS_H__ +// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler +// REMOVE BEFORE CHECK-IN TO VERSION CONTROL +//#define OST_TRACE_COMPILER_IN_USE +#include +#endif diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/ssm_misc_adaptation_dll/bwins/ssm_misc_adaptation.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/ssm_misc_adaptation_dll/bwins/ssm_misc_adaptation.def Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,4 @@ +EXPORTS + + + diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/ssm_misc_adaptation_dll/eabi/ssm_misc_adaptation.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/ssm_misc_adaptation_dll/eabi/ssm_misc_adaptation.def Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,3 @@ +EXPORTS + _Z21CreateMiscAdaptationLv @ 1 NONAME + diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/ssm_misc_adaptation_dll/group/miscadaptation.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/ssm_misc_adaptation_dll/group/miscadaptation.mmp Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,60 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* This file provides the information required for building. +* +*/ + + +#include +#include + +TARGET miscadaptation.dll +TARGETTYPE dll + +// UID2 value from ssmadaptation.h ( KMiscAdaptationDllTypeUidValue 0x2000E658 ) +UID 0x2000E658 0x20022D92 // UID3 miscadaptation.dll +VENDORID VID_DEFAULT + +CAPABILITY CommDD PowerMgmt ReadDeviceData WriteDeviceData ProtServ SwEvent ReadUserData WriteUserData + +// Has a fixed interface ssm_misc_adaptation.def +NOEXPORTLIBRARY + +USERINCLUDE ../inc +USERINCLUDE ../traces + +OS_LAYER_SYSTEMINCLUDE +NON_FOUNDATION_ADAPT_LAYER_SYSTEMINCLUDE + +USERINCLUDE ../../iscservice/inc +SOURCEPATH ../../iscservice/src +SOURCE sa_common_trace.cpp + +SOURCEPATH ../src + +SOURCE ssm_misc_adaptation.cpp + +// -u suffix behaviour can be removed by using nostrictdef +NOSTRICTDEF +DEFFILE ssm_misc_adaptation.def + +LIBRARY euser.lib +LIBRARY estor.lib + +SMPSAFE + +MACRO API_TRACE_FLAG +MACRO INTERNAL_TRACE_FLAG +// End of file diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/ssm_misc_adaptation_dll/inc/ssm_misc_adaptation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/ssm_misc_adaptation_dll/inc/ssm_misc_adaptation.h Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,129 @@ +/* +* ============================================================================== +* Name: ssm_misc_adaptation.h +* Part of: SSMA MiscAdaptation +* Interface: N/A +* Description: Declaration of CMiscAdaptation class +* %version: 1 % +* %date_modified: Tue Dec 29 15:31:47 2009 % +* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Miscadaptation class declarations. +* +*/ + + +#ifndef __SSM_MISC_ADAPTATION_H__ +#define __SSM_MISC_ADAPTATION_H__ + +// INCLUDES +#include + +#include "../../../../adaptationlayer/devicemodecontroller/dmc_ext/inc/dmc_user_if.h" + +// CONSTANTS +// MACROS +// DATA TYPES +// FUNCTION PROTOTYPES +// FORWARD DECLARATIONS + + +/** + Collection of different adaptations. + Implements MMiscAdaptation for different adaptations. + + @internalComponent + @released + + @see MMiscAdaptation +*/ +class CMiscAdaptation : public CBase, public MMiscAdaptation + { + public: + + static CMiscAdaptation* NewL(); + + //from MMiscAdaptation + + /** + * Deletes and frees memory allocated. + */ + void Release(); + + /** + * Request the next security state. + * @param aState next security state + * @param aResponsePckg response to state change request on completion + * @param aStatus to complete when the operation has finished + */ + void SecurityStateChange( TInt aState, + TDes8& aResponsePckg, + TRequestStatus& aStatus ); + + /** + * Get the start-up mode from the Cooperating System. + * @param aModePckg should contain start-up of the Cooperating System on completion + * @param aStatus to complete when the operation has finished + */ + void GetGlobalStartupMode( TDes8& aModePckg, TRequestStatus& aRequest ); + + /** + * Prepare language codes stored in the SIM in preferred language lists. + * @param aPriority priority for which the language lists need to be prepared + * @param aSizePckg on return contains the size of the buffer, which a client + * should allocate and pass as the first parameter (TDes8& aListPckg) + * to GetSimLanguages() + * @param aStatus to complete when the operation has finished + */ + void PrepareSimLanguages( TSsmLanguageListPriority aPriority, + TDes8& aSizePckg, + TRequestStatus& aStatus ); + + /** + Get language codes stored in the SIM in preferred language lists. + PrepareSimLanguages() call should precede this call + @param aBuf should contain the language lists on completion + @param aCount to contain the count of the languages + @see PrepareSimLanguages + */ + void GetSimLanguagesL( CBufBase* aBuf, TInt aCount ); + + /** + * Retrieve information about Hidden reset. + * @param aHiddenResetPckg Result package (ETrue or EFalse) + * @param aStatus to complete when the operation has finished + * @see TRequestStatus + */ + void GetHiddenReset( TDes8& aHiddenResetPckg, TRequestStatus& aStatus ); + + /** + * Cancel the outstanding request + */ + void Cancel(); + + private: + CMiscAdaptation(); + void ConstructL(); + ~CMiscAdaptation(); + + private: + // Handle to DMC + RDmc iDmc; + }; + +#endif // __SSM_MISC_ADAPTATION_H__ + +// End of File + diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/systemstatemanageradaptation/ssm_misc_adaptation_dll/src/ssm_misc_adaptation.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/systemstatemanageradaptation/ssm_misc_adaptation_dll/src/ssm_misc_adaptation.cpp Thu Jan 14 10:44:58 2010 +0200 @@ -0,0 +1,439 @@ +/* +* ============================================================================== +* Name: ssm_misc_adaptation.cpp +* Part of: SSMA MiscAdaptation +* Interface: N/A +* Description: Implementation of CMiscAdaptation class +* %version: 1 % +* %date_modified: Tue Dec 29 15:31:50 2009 % +* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Implementation of miscadaptation. +* +*/ + + +// INCLUDE FILES +#include +#include "ssm_misc_adaptation.h" +#include "ssm/startupadaptationcommands.h" +#include "sa_common_trace.h" + +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "ssm_misc_adaptationtraces.h" +#endif + +// EXTERNAL DATA STRUCTURES +// EXTERNAL FUNCTION PROTOTYPES +// FORWARD DECLARATIONS +// CONSTANTS +// MACROS +// LOCAL CONSTANTS AND MACROS +// MODULE DATA STRUCTURES +// LOCAL FUNCTION PROTOTYPES + + +// ============================ LOCAL FUNCTIONS ================================ + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// Function to create new Misc Adaptation Plugin. Used for a collection of +// activities. +// ----------------------------------------------------------------------------- +// +EXPORT_C MMiscAdaptation* CreateMiscAdaptationL() + { + CMiscAdaptation* miscAdaptation = CMiscAdaptation::NewL(); + return ( static_cast( miscAdaptation ) ); + } + +// ----------------------------------------------------------------------------- +// CMiscAdaptation::NewL +// Constructor +// ----------------------------------------------------------------------------- +// +CMiscAdaptation* CMiscAdaptation::NewL() + { + OstTrace0( TRACE_NORMAL, CMISCADAPTATION_NEWL_1, + "SSMA # CMiscAdaptation::NewL" ); + INTERNAL_TRACE( _L( "SSMA # CMiscAdaptation::NewL" ) ); + + CMiscAdaptation* self = new( ELeave ) CMiscAdaptation; + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + OstTrace1( TRACE_API, CMISCADAPTATION_NEWL_2, + "SSMA # CEmergencyCallRfAdaptation::NewL - return 0x%08x", self ); + INTERNAL_TRACE((_L("SSMA # CEmergencyCallRfAdaptation::NewL - return 0x%08x"), self )); + return self; + } + +// ----------------------------------------------------------------------------- +// CMiscAdaptation::~CMiscAdaptation +// Destructor +// ----------------------------------------------------------------------------- +// +CMiscAdaptation::~CMiscAdaptation() + { + OstTrace0( TRACE_NORMAL, CMISCADAPTATION_CMISCADAPTATION_D1, + "SSMA # CMiscAdaptation::~CMiscAdaptation" ); + INTERNAL_TRACE( _L("SSMA # CMiscAdaptation::~CMiscAdaptation" ) ); + + // Close and release DMC + iDmc.Close(); + + OstTrace0( TRACE_NORMAL, CMISCADAPTATION_CMISCADAPTATION_D2, + "SSMA # CMiscAdaptation::~CMiscAdaptation - return void" ); + INTERNAL_TRACE( _L("SSMA # CMiscAdaptation::~CMiscAdaptation - return void" ) ); + } + +// ----------------------------------------------------------------------------- +// CMiscAdaptation::CMiscAdaptation +// Constructor +// ----------------------------------------------------------------------------- +// +CMiscAdaptation::CMiscAdaptation() + { + OstTrace0( TRACE_NORMAL, CMISCADAPTATION_CMISCADAPTATION, + "SSMA # CMiscAdaptation::CMiscAdaptation" ); + INTERNAL_TRACE( _L("SSMA # CMiscAdaptation::CMiscAdaptation" ) ); + } + +// ----------------------------------------------------------------------------- +// CMiscAdaptation::ConstructL +// ----------------------------------------------------------------------------- +// +void CMiscAdaptation::ConstructL() + { + OstTrace0( TRACE_NORMAL, CMISCADAPTATION_CONSTRUCTL_1, + "SSMA # CMiscAdaptation::ConstructL" ); + INTERNAL_TRACE( _L( "SSMA # CMiscAdaptation::ConstructL" ) ); + + // Open DMC + iDmc.Open(); + + OstTrace0( TRACE_NORMAL, CMISCADAPTATION_CONSTRUCTL_2, + "SSMA # CMiscAdaptation::ConstructL - return void" ); + INTERNAL_TRACE( _L( "SSMA # CMiscAdaptation::ConstructL return void" ) ); + } + +// ----------------------------------------------------------------------------- +// CMiscAdaptation::Release +// Deletes and frees memory allocated. +// ----------------------------------------------------------------------------- +// +void CMiscAdaptation::Release() + { + OstTrace0( TRACE_NORMAL, CMISCADAPTATION_RELEASE, + "SSMA # CMiscAdaptation::Release" ); + INTERNAL_TRACE( _L( "SSMA # CMiscAdaptation::Release" ) ); + + delete this; + } + +// ----------------------------------------------------------------------------- +// CMiscAdaptation::GetGlobalStartupMode +// Get the start-up mode from the Cooperating System. +// ----------------------------------------------------------------------------- +// +void CMiscAdaptation::GetGlobalStartupMode( TDes8& aModePckg, + TRequestStatus& aStatus ) + { + OstTrace0( TRACE_NORMAL, CMISCADAPTATION_GETGLOBALSTARTUPMODE_1, + "SSMA # CMiscAdaptation::GetGlobalStartupMode" ); + INTERNAL_TRACE( _L( "SSMA # CMiscAdaptation::GetGlobalStartupMode" ) ); + + aStatus = KRequestPending; + TRequestStatus* status = &aStatus; + + StartupAdaptation::TGlobalStartupMode mode = StartupAdaptation::ENormal; + + // Get start up mode from DMC. + RDmc::TTargetStartupMode dmcTargetMode( RDmc::EStartupModeNormal ); + + TInt err = iDmc.GetStartUpMode( dmcTargetMode ); + + OstTrace1( TRACE_NORMAL, CMISCADAPTATION_GETGLOBALSTARTUPMODE_2, + "SSMA # CMiscAdaptation::GetGlobalStartupMode; dmcTargetMode=%d", + dmcTargetMode ); + INTERNAL_TRACE( ( _L( "SSMA # CMiscAdaptation::GetGlobalStartupMode; dmcTargetMode=%d" ), + dmcTargetMode ) ); + + if ( err == KErrNone ) + { + switch( dmcTargetMode ) + { + // Map startup from DMC mode to SSM mode. + case RDmc::EStartupModeNormal: + { + mode = StartupAdaptation::ENormal; + break; + } + case RDmc::EStartupModeAlarm: + { + mode = StartupAdaptation::EAlarm; + break; + } + case RDmc::EStartupModeCharging: + { + mode = StartupAdaptation::ECharging; + break; + } + case RDmc::EStartupModeTest: + { + mode = StartupAdaptation::ETest; + break; + } + case RDmc::EStartupModeNone: + case RDmc::EStartupModeFota: + default: + { + err = KErrNotSupported; + break; + } + } + } + + OstTraceExt2( TRACE_NORMAL, CMISCADAPTATION_GETGLOBALSTARTUPMODE_3, + "SSMA # CMiscAdaptation::GetGlobalStartupMode; mode=%d; err=%d", + mode, err ); + INTERNAL_TRACE( ( _L( "SSMA # CMiscAdaptation::GetGlobalStartupMode; mode=%d; err=%d" ), + mode, err ) ); + + // Startupmode should be returned to SSM at aModePckg param. + TPckgBuf startUpMode( mode ); + aModePckg = startUpMode; + User::RequestComplete( status, err ); + + OstTrace0( TRACE_NORMAL, CMISCADAPTATION_GETGLOBALSTARTUPMODE_4, + "SSMA # CMiscAdaptation::GetGlobalStartupMode - return void" ); + INTERNAL_TRACE( _L( "SSMA # CMiscAdaptation::GetGlobalStartupMode - return void" ) ); + } + +// ----------------------------------------------------------------------------- +// CMiscAdaptation::PrepareSimLanguages +// Prepare language codes stored in the SIM in preferred language lists. +// The next call should be GetSimLanguages() +// ----------------------------------------------------------------------------- +// +void CMiscAdaptation::PrepareSimLanguages( TSsmLanguageListPriority aPriority, + TDes8& aSizePckg, + TRequestStatus& aStatus ) + { + OstTrace0( TRACE_NORMAL, CMISCADAPTATION_PREPARESIMLANGUAGES_1, + "SSMA # CMiscAdaptation::PrepareSimLanguages" ); + INTERNAL_TRACE( _L( "SSMA # CMiscAdaptation::PrepareSimLanguages" ) ); + + aStatus = KRequestPending; + TRequestStatus* status = &aStatus; + + TInt languageCount(1); + + switch( aPriority ) + { + case EPrimaryLanguages: + break; + case ESecondaryLanguages: + break; + case ETertiaryLanguages: + break; + default: + break; + } + + OstTraceExt2( TRACE_NORMAL, CMISCADAPTATION_PREPARESIMLANGUAGES_2, + "SSMA # CMiscAdaptation::PrepareSimLanguages - aPriority:%d languageCount:%d", + aPriority, languageCount ); + INTERNAL_TRACE( ( _L( "SSMA # CMiscAdaptation::PrepareSimLanguages - aPriority:%d languageCount:%d" ), + aPriority, languageCount ) ); + + TPckgBuf returnValue(languageCount); + aSizePckg = returnValue; + + User::RequestComplete( status, KErrNone ); + + OstTrace0( TRACE_NORMAL, CMISCADAPTATION_PREPARESIMLANGUAGES_3, + "SSMA # CMiscAdaptation::PrepareSimLanguages - return void" ); + INTERNAL_TRACE( _L( "SSMA # CMiscAdaptation::PrepareSimLanguages - return void" ) ); + } + +// ----------------------------------------------------------------------------- +// CMiscAdaptation::GetSimLanguagesL +// Get language codes stored in the SIM in preferred language lists. +// PrepareSimLanguages() call should precede this call. +// ----------------------------------------------------------------------------- +// +void CMiscAdaptation::GetSimLanguagesL( CBufBase* aBuf, + TInt aCount ) + { + OstTrace1( TRACE_NORMAL, CMISCADAPTATION_GETSIMLANGUAGES_1, + "SSMA # CMiscAdaptation::GetSimLanguages - aCount:%d", aCount ); + INTERNAL_TRACE( ( _L( "SSMA # CMiscAdaptation::GetSimLanguages - aCount:%d" ), aCount ) ); + + + StartupAdaptation::RLanguageList languageList; + // only as an example... + for( TInt i=0; i