本文整理汇总了C++中Session::EraseRequest方法的典型用法代码示例。如果您正苦于以下问题:C++ Session::EraseRequest方法的具体用法?C++ Session::EraseRequest怎么用?C++ Session::EraseRequest使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Session
的用法示例。
在下文中一共展示了Session::EraseRequest方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: StartSession
//.........这里部分代码省略.........
identify.c_str()
);
} else {
session = new Session(livechat);
session->timeout = 1000 * miTimeout;
mLiveChat2SessionMap.Insert(livechat, session);
LogManager::GetLogManager()->Log(
LOG_MSG,
"SessionManager::StartSession( "
"[会话交互(Session), Client -> LiveChat, 开始新会话] "
"livechat : %p, "
"session : %p, "
"request : %p, "
"identify : %s "
")",
livechat,
session,
request,
identify.c_str()
);
}
LogManager::GetLogManager()->Log(
LOG_MSG,
"SessionManager::StartSession( "
"[会话交互(Session), Client -> LiveChat, 插入任务到会话], "
"livechat : %p, "
"session : %p, "
"request : %p, "
"identify : %s "
")",
livechat,
session,
request,
identify.c_str()
);
// 增加到等待返回的列表
if( session->AddRequest(identify, request) ) {
bRecord = true;
} else {
LogManager::GetLogManager()->Log(
LOG_WARNING,
"SessionManager::StartSession( "
"[会话交互(Session), Client -> LiveChat, 插入任务到会话, 任务已经存在, 丢弃], "
"livechat : %p, "
"session : %p, "
"request : %p, "
"identify : %s "
")",
livechat,
session,
request,
identify.c_str()
);
}
mLiveChat2SessionMap.Unlock();
}
// 判断请求是否需要返回,且是否重复请求
if ( bNeedReturn && !bRecord ) {
// 若是,则返回true,且删除请求object
bFlag = true;
delete request;
}
else {
// 否则开始请求
bFlag = request->StartRequest();
}
/**
* 清除任务
* 启动失败(包括请求不用返回, 或需要返回且不是重复)
*/
if( !bFlag ) {
if( bRecord ) {
// 需要返回且不是重复
mLiveChat2SessionMap.Lock();
Session* session = NULL;
LiveChat2SessionMap::iterator itr = mLiveChat2SessionMap.Find(livechat);
if( itr != mLiveChat2SessionMap.End() ) {
session = itr->second;
IRequest* theRequest = session->EraseRequest(identify);
delete theRequest;
}
mLiveChat2SessionMap.Unlock();
}
else {
// 请求不用返回,删除请求object
delete request;
}
}
return bFlag;
}
示例2: FinishSession
IRequest* SessionManager::FinishSession(
ILiveChatClient* livechat,
const string& identify
) {
IRequest* request = NULL;
LogManager::GetLogManager()->Log(
LOG_MSG,
"SessionManager::FinishSession( "
"[会话交互(Session), LiveChat -> Client, 返回响应到客户端], "
"livechat : %p, "
"identify : %s "
")",
livechat,
identify.c_str()
);
Session* session = NULL;
mLiveChat2SessionMap.Lock();
LiveChat2SessionMap::iterator itr = mLiveChat2SessionMap.Find(livechat);
if( itr != mLiveChat2SessionMap.End() ) {
LogManager::GetLogManager()->Log(
LOG_MSG,
"SessionManager::FinishSession( "
"[会话交互(Session), LiveChat -> Client, 返回响应到客户端, 找到对应会话], "
"livechat : %p, "
"identify : %s "
")",
livechat,
identify.c_str()
);
session = itr->second;
if( session != NULL ) {
request = session->EraseRequest(identify);
if( request != NULL ) {
LogManager::GetLogManager()->Log(
LOG_MSG,
"SessionManager::FinishSession( "
"[会话交互(Session), LiveChat -> Client, 返回响应到客户端, 找到对应请求], "
"livechat : %p, "
"identify : %s, "
"request : %p "
")",
livechat,
identify.c_str(),
request
);
// 标记完成任务, 执行成功
if( request ) {
request->FinisRequest(true);
}
} else {
LogManager::GetLogManager()->Log(
LOG_MSG,
"SessionManager::FinishSession( "
"[会话交互(Session), LiveChat -> Client, 返回响应到客户端, 找不到对应请求], "
"livechat : %p, "
"identify : %s "
")",
livechat,
identify.c_str()
);
}
// 不关闭会话, 等待livechat断开连接才关闭
}
}
mLiveChat2SessionMap.Unlock();
return request;
}