当前位置: 首页>>代码示例>>C++>>正文


C++ Session::EraseRequest方法代码示例

本文整理汇总了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;
}
开发者ID:KingsleyYau,项目名称:CamShareMiddleware,代码行数:101,代码来源:SessionManager.cpp

示例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;
}
开发者ID:KingsleyYau,项目名称:CamShareMiddleware,代码行数:75,代码来源:SessionManager.cpp


注:本文中的Session::EraseRequest方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。