本文整理汇总了C++中CTransaction::ChangeState方法的典型用法代码示例。如果您正苦于以下问题:C++ CTransaction::ChangeState方法的具体用法?C++ CTransaction::ChangeState怎么用?C++ CTransaction::ChangeState使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CTransaction
的用法示例。
在下文中一共展示了CTransaction::ChangeState方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReceiveL
// -----------------------------------------------------------------------------
// CInviteClientTa_Calling::ReceiveL
// If 2xx is received, UAC terminates the transaction. Stop timers when
// transaction can't return to previous state (ReceiveResponseL has returned).
// -----------------------------------------------------------------------------
//
void CInviteClientTa_Calling::ReceiveL(CTransaction& aTransaction,
CSIPResponse* aResponse) const
{
__SIP_ASSERT_LEAVE(aResponse, KErrArgument);
CInviteClientTransaction& ta = CInviteClientTransaction::Ptr(aTransaction);
if (ta.ShouldTaHandleResponse(aResponse))
{
CTransactionTimer* proceedingTimer = NULL;
CTransactionTimer* natTimer = NULL;
if (!CSIPMessageUtility::IsFinalResponse(*aResponse))
{
proceedingTimer = ta.StartTimerProceedingL();
natTimer = ta.StartTimerNATL();
aTransaction.ChangeState(*iProceeding);
}
ta.ReceiveResponseL(aResponse,
*this,
*iCompleted,
proceedingTimer,
natTimer);
//Stop retransmission timer A. Timer B has only effect in Calling state
ta.StopTimerA();
ta.StopTimerB();
}
}