📄 ua_session.cpp
字号:
#include <iostream>
#include <UA_Session.hpp>
#include <stdexcept>
#include <stdio.h>
extern int G_trace;
extern int G_silent;
#ifdef __linux__
extern hrtime_t gethrtime();
#endif
unsigned long G_session_created = 0;
unsigned long G_session_closed = 0;
UA_Session::UA_Session ()
: state(CALL_INITIAL),
reqUri(0),
confirmedTime(0),
service(0),
providerCallId(-2),
providerDialogId(-2)
{
if (G_trace == 1)
std::cerr << "--UA_Session::UA_Session [ptr = 0x"
<< (void *)this << "]" <<std::endl;
G_session_created++;
if(!(G_session_created%1000)) {
printf("%lu created sessions, %lu closed sessions, %lu open sessions.\n",
G_session_created,
G_session_closed,
G_session_created - G_session_closed);
}
if(!G_silent) {
printf("Session created\n");
}
}
UA_Session::~UA_Session()
{
if (G_trace == 1)
std::cerr << "--UA_Session::~UA_Session [ptr = 0x"
<< (void *)this << "]" <<std::endl;
G_session_closed++;
if(!G_silent) {
printf("Session deleted\n");
}
}
const UA_Session::CallState UA_Session::getState () const
{
return state;
}
void UA_Session::setState (UA_Session::CallState value)
{
if (G_trace >= 1) std::cerr << "== Entering setState" << std::endl;
state = value;
if (value == CALL_CONFIRMED)
setConfirmedTime(gethrtime());
}
const sip_msg_uri_t* UA_Session::getReqUri () const
{
return reqUri;
}
void UA_Session::setReqUri (sip_msg_uri_t* value)
{
if (G_trace >= 1) std::cerr << "== Entering setReqUri" << std::endl;
reqUri = value;
}
void UA_Session::setService(SIP_Service& P_service) throw()
{
if (G_trace >= 1) std::cerr << "== Entering setService" << std::endl;
service = &P_service;
}
SIP_Service& UA_Session::getService() throw (std::exception)
{
if (service)
return *service;
else
throw std::runtime_error("service not set");
}
hrtime_t UA_Session::getConfirmedTime()
{
return confirmedTime;
}
void UA_Session::setConfirmedTime(hrtime_t P_time)
{
if (G_trace >= 1) std::cerr << "== Entering setConfirmedTime" << std::endl;
confirmedTime = P_time;
}
void UA_Session::storeProviderId(FF_SipMessageContainer& P_message)
{
providerCallId = P_message.getCallId().getProviderIdentifier();
providerDialogId = P_message.getDialogId().getProviderIdentifier();
providerSubscriptionId =
P_message.getSubscriptionId().getProviderIdentifier();
}
int UA_Session::getProviderCallId()
{
return providerCallId;
}
int UA_Session::getProviderDialogId()
{
return providerDialogId;
}
int UA_Session::getProviderSubscriptionId()
{
return providerSubscriptionId;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -