telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmsmstsy.cpp
changeset 69 b982c3e940f3
parent 44 8b72faa1200f
child 73 70d75957b98f
equal deleted inserted replaced
59:ac20d6a0a19d 69:b982c3e940f3
   305                     aPackage ); );
   305                     aPackage ); );
   306 
   306 
   307                 if ( KErrNone != leaveCode )
   307                 if ( KErrNone != leaveCode )
   308                     {
   308                     {
   309 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMSMSTSY_EXTFUNC_2, "CMmSmsTsy: Leave trapped!, IPC=%d, error value:%d", aIpc, leaveCode );
   309 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMSMSTSY_EXTFUNC_2, "CMmSmsTsy: Leave trapped!, IPC=%d, error value:%d", aIpc, leaveCode );
       
   310                     //reset request handle to indicate the request is no longer ongoing
       
   311 					iTsyReqHandleStore->FindAndResetTsyReqHandle( aTsyReqHandle );
   310                     ReqCompleted( aTsyReqHandle, leaveCode );
   312                     ReqCompleted( aTsyReqHandle, leaveCode );
   311                     }
   313                     }
   312 
   314 
   313                 //save request handle
   315                 //save request handle
   314                 if ( EMultimodeSmsReqHandleUnknown != iReqHandleType )
   316                 else if ( EMultimodeSmsReqHandleUnknown != iReqHandleType )
   315                     {
   317                     {
   316 #ifdef REQHANDLE_TIMER
   318 #ifdef REQHANDLE_TIMER
   317                     SetTypeOfResponse( iReqHandleType, aTsyReqHandle );
   319                     SetTypeOfResponse( iReqHandleType, aTsyReqHandle );
   318 #else
   320 #else
   319                     //Never comes here. See SetTypeOfResponse.
   321                     //Never comes here. See SetTypeOfResponse.
   320                     iTsyReqHandleStore->SetTsyReqHandle( iReqHandleType, 
   322                     iTsyReqHandleStore->SetTsyReqHandle( iReqHandleType, 
   321                         aTsyReqHandle );
   323                         aTsyReqHandle );
   322 #endif // REQHANDLE_TIMER
   324 #endif // REQHANDLE_TIMER
   323                     // We've finished with this value now. Clear it so it doesn't leak
       
   324                     //  up to any other instances of this method down the call stack
       
   325                     iReqHandleType = EMultimodeSmsReqHandleUnknown;
       
   326                     }
   325                     }
       
   326                 // We've finished with this value now. Clear it so it doesn't leak
       
   327                 //  up to any other instances of this method down the call stack
       
   328                 iReqHandleType = EMultimodeSmsReqHandleUnknown;
   327                 break;
   329                 break;
   328             }
   330             }
   329         }
   331         }
   330 
   332 
   331     return ret;
   333     return ret;
  1797         RMobileSmsMessaging::TMobileSmsSendAttributesV1& msgAttr = 
  1799         RMobileSmsMessaging::TMobileSmsSendAttributesV1& msgAttr = 
  1798             ( *attsPckg )();
  1800             ( *attsPckg )();
  1799         
  1801         
  1800         // structure for all sms parameters and data
  1802         // structure for all sms parameters and data
  1801         TSendSmsDataAndAttributes sendData;
  1803         TSendSmsDataAndAttributes sendData;
  1802         
  1804         TSmsRequestTypes reqType;
       
  1805 
  1803         sendData.iAttributes = &msgAttr;
  1806         sendData.iAttributes = &msgAttr;
  1804         sendData.iMsgData = aMsgData;
  1807         sendData.iMsgData = aMsgData;
  1805   
  1808   
  1806         if ( iSmsNoFdnCheckFlag == ESmsNoFdnCheckUsed )
  1809         if ( iSmsNoFdnCheckFlag == ESmsNoFdnCheckUsed )
  1807             {
  1810             {
  1808             //set ipc
  1811             //set ipc
  1809             sendData.iIpc = EMobileSmsMessagingSendMessageNoFdnCheck;    
  1812             sendData.iIpc = EMobileSmsMessagingSendMessageNoFdnCheck; 
  1810             }
  1813             reqType = EMultimodeSmsSendMessageNoFdnCheck;
  1811         if ( iSmsNoFdnCheckFlag == ESmsNoFdnCheckNotUsed )
  1814             }
       
  1815         else //(iSmsNoFdnCheckFlag == ESmsNoFdnCheckNotUsed)
  1812             {
  1816             {
  1813             //set ipc
  1817             //set ipc
  1814             sendData.iIpc = EMobileSmsMessagingSendMessage;        
  1818             sendData.iIpc = EMobileSmsMessagingSendMessage;
       
  1819             reqType = EMultimodeSmsSendMessage;
  1815             }
  1820             }
  1816 
  1821 
  1817         // Pack parameters
  1822         // Pack parameters
  1818         package.PackData( &sendData );
  1823         package.PackData( &sendData );
  1819 
  1824 
  1820         CSmsSendRequest* smsSendReq = new (ELeave) CSmsSendRequest();
  1825         iSmsSendReq = new (ELeave) CSmsSendRequest();
  1821         smsSendReq->SetSmsDataAndAttributes( sendData );
  1826         iSmsSendReq->SetSmsDataAndAttributes( sendData );
  1822 
  1827 
  1823         // save send request
       
  1824         iSmsSendReq = smsSendReq;
       
  1825 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMSMSTSY_SENDMESSAGEL_1, "TSY: CMmSmsTsy::SendMessageL: Send request saved");
  1828 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMSMSTSY_SENDMESSAGEL_1, "TSY: CMmSmsTsy::SendMessageL: Send request saved");
  1826 
  1829 
       
  1830 #ifdef REQHANDLE_TIMER
       
  1831         SetTypeOfResponse( reqType, aTsyReqHandle );
       
  1832 #else
       
  1833         iTsyReqHandleStore->SetTsyReqHandle( reqType, aTsyReqHandle );
       
  1834 #endif // REQHANDLE_TIMER
       
  1835 
       
  1836         TInt leaveCode( KErrNone );
  1827         // send request to DOS
  1837         // send request to DOS
  1828         // packed parameter: TSendSmsDataAndAttributes
  1838         // packed parameter: TSendSmsDataAndAttributes
  1829         if ( iSmsNoFdnCheckFlag == ESmsNoFdnCheckUsed )
  1839         TRAP(leaveCode, ret = iMmPhone->MessageManager()->HandleRequestL(sendData.iIpc, &package ););
  1830             {
  1840 
  1831             ret = iMmPhone->MessageManager()->HandleRequestL( 
  1841         if ( (leaveCode != KErrNone) || (ret != KErrNone) )
  1832                 EMobileSmsMessagingSendMessageNoFdnCheck, &package );
  1842             {
  1833             }
  1843             iTsyReqHandleStore->ResetTsyReqHandle( reqType );
  1834         if ( iSmsNoFdnCheckFlag == ESmsNoFdnCheckNotUsed )
  1844             delete iSmsSendReq;              // Delete object
  1835             {
       
  1836             ret = iMmPhone->MessageManager()->HandleRequestL( 
       
  1837                 EMobileSmsMessagingSendMessage, &package );
       
  1838             }
       
  1839 
       
  1840         if ( KErrNone == ret )
       
  1841             {  
       
  1842             if ( iSmsNoFdnCheckFlag == ESmsNoFdnCheckUsed )
       
  1843                 {
       
  1844                 //set request type
       
  1845                 iReqHandleType = EMultimodeSmsSendMessageNoFdnCheck;    
       
  1846                 }
       
  1847             if ( iSmsNoFdnCheckFlag == ESmsNoFdnCheckNotUsed )
       
  1848                 {
       
  1849                 //set request type
       
  1850                 iReqHandleType = EMultimodeSmsSendMessage;    
       
  1851                 }            
       
  1852             smsSendReq->IncreaseSendCounter();
       
  1853             }
       
  1854         else 
       
  1855             {
       
  1856             // Phonet returned error
       
  1857             delete smsSendReq;              // Delete object
       
  1858             iSmsSendReq = NULL; // Reset pointer
  1845             iSmsSendReq = NULL; // Reset pointer
  1859             // Message construction failed or phonet sender returned error
       
  1860             ReqCompleted( aTsyReqHandle, ret );
       
  1861             // reset pointer to client memory
  1846             // reset pointer to client memory
  1862             iSendMessageMsgAttrPckgPtr = NULL;
  1847             iSendMessageMsgAttrPckgPtr = NULL;
  1863             
       
  1864             iSmsNoFdnCheckFlag = ESmsNoFdnCheckUnknown;
  1848             iSmsNoFdnCheckFlag = ESmsNoFdnCheckUnknown;
       
  1849             if (leaveCode != KErrNone)
       
  1850                 {
       
  1851                 ReqCompleted( aTsyReqHandle, leaveCode );
       
  1852                 }
       
  1853             else
       
  1854                 {
       
  1855                 ReqCompleted( aTsyReqHandle, ret );
       
  1856                 }
       
  1857             }
       
  1858         else
       
  1859             {
       
  1860             iSmsSendReq->IncreaseSendCounter();
  1865             }
  1861             }
  1866         }
  1862         }
  1867 
  1863 
  1868     return KErrNone;
  1864     return KErrNone;
  1869     }
  1865     }
  1936             iSmsSendReq = NULL;   // Reset pointer
  1932             iSmsSendReq = NULL;   // Reset pointer
  1937             }
  1933             }
  1938         // reset req handle and complete request
  1934         // reset req handle and complete request
  1939         TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( 
  1935         TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( 
  1940                    EMultimodeSmsSendMessage );
  1936                    EMultimodeSmsSendMessage );
  1941         ReqCompleted( reqHandle, extendedError );
  1937 
  1942         // reset pointer to client memory
  1938         if ( EMultimodeSmsReqHandleUnknown < reqHandle ) 
  1943         iSendMessageMsgAttrPckgPtr = NULL;
  1939             {
  1944         iSmsNoFdnCheckFlag = ESmsNoFdnCheckUnknown;
  1940             ReqCompleted( reqHandle, extendedError );
       
  1941             // reset pointer to client memory
       
  1942             iSendMessageMsgAttrPckgPtr = NULL;
       
  1943             iSmsNoFdnCheckFlag = ESmsNoFdnCheckUnknown;
       
  1944             }
  1945         }        
  1945         }        
  1946     else if ( ( KErrNone != aError ) && ( KErrTimedOut != aError ) 
  1946     else if ( ( KErrNone != aError ) && ( KErrTimedOut != aError ) 
  1947         && ( KErrGsmSMSOperationNotAllowed != 
  1947         && ( KErrGsmSMSOperationNotAllowed != 
  1948             CMmCommonStaticUtility::ExtendedErrorCode ( aError ) )
  1948             CMmCommonStaticUtility::ExtendedErrorCode ( aError ) )
  1949             // FDB check failed
  1949             // FDB check failed