sipretransmitmanager.h
来自「一个SIP协议栈」· C头文件 代码 · 共 80 行
H
80 行
#ifndef __SIPRETRANSMITMANAGER_H__#define __SIPRETRANSMITMANAGER_H__#include "SIPTimer.h"#include "IPAddress.h"#include "UDPSocket.h"#include "SIPTimer.h"namespace msip{ ///Retransmit Manager via UDP class RetransmitManager { public: ///Current State enum Status { trIdle, trPending, trTransmitIndicated, trTimeoutReached }; private: ///Timer1 0.5s, 1.0s, 2.0s, 4.0s Timer tr_Timer1; ///Timer2 4.0s Timer tr_Timer2; ///Current Interval in milliseconds double tr_Interval; ///Current State Status tr_Status; ///Timer1 Value T1 (0.5s) long tr_T1; ///Timer2 Value T2 (4.0s) long tr_T2; ///Exponetial Value (2.0) double tr_Exp; public: ///Constructor RetransmitManager(long t1=500, long t2=4000, double exp_val=2.0); ///Set the timeout values and the exponent value void setTimeoutValues(long t1=500, long t2=4000, double exp_val=2.0); ///Start timers void start(); ///Cancel retransmittion void cancel(); ///Poll timers and return status. Status poll(); ///Returns the time in milliseconds that left to the nearest retransmittion long getTimeLeft() const; /**Get Current Status. Note, that the function will never return the status trTransmitIndicated. Only the function "poll" will return this status when retransmittion is necessary. */ Status getStatus() { return tr_Status; } };}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?