telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmsmstsy.cpp
changeset 20 244d7c5f118e
parent 19 1f776524b15c
child 23 6b1d113cdff3
equal deleted inserted replaced
19:1f776524b15c 20:244d7c5f118e
    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: