equal
deleted
inserted
replaced
32 #include <etelsat.h> // for Sat MO SM Control error values |
32 #include <etelsat.h> // for Sat MO SM Control error values |
33 |
33 |
34 |
34 |
35 // ======== MEMBER FUNCTIONS ======== |
35 // ======== MEMBER FUNCTIONS ======== |
36 |
36 |
37 CMmSmsTsy::CMmSmsTsy() |
37 CMmSmsTsy::CMmSmsTsy(): |
|
38 iReqHandleType(EMultimodeSmsReqHandleUnknown) |
38 { |
39 { |
39 TFLOGSTRING("TSY: CMmSmsTsy::CMmSmsTsy: constructor"); |
40 TFLOGSTRING("TSY: CMmSmsTsy::CMmSmsTsy: constructor"); |
40 } |
41 } |
41 |
42 |
42 void CMmSmsTsy::ConstructL() |
43 void CMmSmsTsy::ConstructL() |
283 ret = ReadSmspListPhase2( aTsyReqHandle, reinterpret_cast< |
284 ret = ReadSmspListPhase2( aTsyReqHandle, reinterpret_cast< |
284 RMobilePhone::TClientId*>( dataPtr ), aPackage.Des2n() ); |
285 RMobilePhone::TClientId*>( dataPtr ), aPackage.Des2n() ); |
285 break; |
286 break; |
286 // SMS messaging requests that need trapping |
287 // SMS messaging requests that need trapping |
287 default: |
288 default: |
288 // reset last tsy request type |
289 // Ensure the ReqHandleType is unset. |
289 iReqHandleType = EMultimodeSmsReqHandleUnknown; |
290 // This will detect cases where this method indirectly calls itself |
|
291 // (e.g. servicing a client call that causes a self-reposting notification to complete and thus repost). |
|
292 // Such cases are not supported because iReqHandleType is in the context of this class instance, |
|
293 // not this request, and we don't want the values set by the inner request and the outer request |
|
294 // interfering with each other. |
|
295 __ASSERT_DEBUG(iReqHandleType==EMultimodeSmsReqHandleUnknown, User::Invariant()); |
290 |
296 |
291 TInt leaveCode( KErrNone ); |
297 TInt leaveCode( KErrNone ); |
292 TRAP( leaveCode, ret = DoExtFuncL( aTsyReqHandle, aIpc, |
298 TRAP( leaveCode, ret = DoExtFuncL( aTsyReqHandle, aIpc, |
293 aPackage ); ); |
299 aPackage ); ); |
294 |
300 |
306 #else |
312 #else |
307 //Never comes here. See SetTypeOfResponse. |
313 //Never comes here. See SetTypeOfResponse. |
308 iTsyReqHandleStore->SetTsyReqHandle( iReqHandleType, |
314 iTsyReqHandleStore->SetTsyReqHandle( iReqHandleType, |
309 aTsyReqHandle ); |
315 aTsyReqHandle ); |
310 #endif // REQHANDLE_TIMER |
316 #endif // REQHANDLE_TIMER |
|
317 // We've finished with this value now. Clear it so it doesn't leak |
|
318 // up to any other instances of this method down the call stack |
|
319 iReqHandleType = EMultimodeSmsReqHandleUnknown; |
311 } |
320 } |
312 break; |
321 break; |
313 } |
322 } |
314 } |
323 } |
315 |
324 |
743 if ( iNotifyReceiveModeChangePtr ) |
752 if ( iNotifyReceiveModeChangePtr ) |
744 { |
753 { |
745 *iNotifyReceiveModeChangePtr = iMobileSmsReceiveMode; |
754 *iNotifyReceiveModeChangePtr = iMobileSmsReceiveMode; |
746 } |
755 } |
747 ReqCompleted( reqHandle, KErrNone ); |
756 ReqCompleted( reqHandle, KErrNone ); |
748 iNotifyReceiveModeChangePtr = NULL; |
|
749 } |
757 } |
750 } |
758 } |
751 |
759 |
752 //---------------------------------------------------------------------------- |
760 //---------------------------------------------------------------------------- |
753 // CMmSmsTsy::ReceiveMessageL |
761 // CMmSmsTsy::ReceiveMessageL |
2785 TInt timeOut( 0 ); |
2793 TInt timeOut( 0 ); |
2786 |
2794 |
2787 switch ( aReqHandleType ) |
2795 switch ( aReqHandleType ) |
2788 { |
2796 { |
2789 // SMS specific requests |
2797 // SMS specific requests |
2790 case EMultimodeSmsSetReceiveMode: |
|
2791 timeOut = KMmSmsSetReceiveMode; |
|
2792 break; |
|
2793 case EMultimodeSmsAckStored: |
2798 case EMultimodeSmsAckStored: |
2794 case EMultimodeSmsNackStored: |
2799 case EMultimodeSmsNackStored: |
2795 timeOut = KMmSmsAckNackMessage; |
2800 timeOut = KMmSmsAckNackMessage; |
2796 break; |
2801 break; |
2797 case EMultimodeSmsSendMessage: |
2802 case EMultimodeSmsSendMessage: |