⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sipretransmitmanager.cxx

📁 一个SIP协议栈
💻 CXX
字号:
#include "SIPRetransmitManager.h"namespace msip{    //----------------------------------------------------------------------------------    RetransmitManager::RetransmitManager(long t1, long t2, double exp_val)    : tr_T1(t1),      tr_T2(t2),      tr_Exp(exp_val),      tr_Interval(t1),       tr_Status(trIdle)    {    }    //----------------------------------------------------------------------------------    void     RetransmitManager::setTimeoutValues(long t1, long t2, double exp_val)    {        tr_T1 = t1;        tr_T2 = t2;        tr_Exp = exp_val;    }    //----------------------------------------------------------------------------------    void     RetransmitManager::start()    {        tr_Interval = tr_T1;        tr_Timer1.setInterval(long(tr_Interval));        tr_Timer2.setInterval(tr_T2);        tr_Status = trPending;    }    //----------------------------------------------------------------------------------    void     RetransmitManager::cancel()    {        tr_Status = trIdle;    }    //----------------------------------------------------------------------------------    RetransmitManager::Status     RetransmitManager::poll()    {        Status st = tr_Status;        if(tr_Status == trPending)        {            Timer tm;            tm.setCurrent();            if(tr_Timer2.outOfInterval(tm))            {                st = tr_Status = trTimeoutReached;            }            else            {                if(tr_Timer1.outOfInterval(tm))                {                    tr_Interval = int(tr_Interval * tr_Exp);                    tr_Timer1.setInterval(long(tr_Interval));                    st = trTransmitIndicated;                }            }        }        return st;    }    //----------------------------------------------------------------------------------    long     RetransmitManager::getTimeLeft() const    {        long interval = 0x7FFFFFFFl; //MAX_LONG        if(tr_Status == trPending)        {            interval = tr_Timer1.getInterval();            if(interval < 0) interval = 0;        }        return interval;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -