usergateway.cpp

来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 160 行

CPP
160
字号
#include "UserGateway.h"stringUserGateway::s_UserGatewayTypeToString[MAX_USER_GATEWAY_TYPE] = {	"IN_NORMAL" ,	"OUT_NORMAL" ,	"KICKED" ,	"I_I_ERROR" ,	"I_I_DISCONNECT" ,	"I_C_ERROR" ,	"I_C_DISCONNECT" ,	"I_O_ERROR" ,	"I_O_DISCONNECT" ,	"I_O_DISCONNECT2" ,	"I_EXCEPTION" ,	"ZPM_I_ERROR" ,	"ZPM_I_DISCONNECT" ,	"ZPM_I_DISCONNECT2" ,	"ZPM_C_PAYPLAY_END" ,	"ZPM_C_ERROR" ,	"ZPM_O_ERROR" ,	"ZPM_O_DISCONNECT" ,	"ZPM_O_DISCONNECT2" ,	"ZPM_EXCEPTION" ,};UserGateway::UserGateway()	throw (Error){	__BEGIN_TRY	m_Mutex.setName("UserGateway");	clear();	__END_CATCH}UserGateway::~UserGateway()	throw (Error){	__BEGIN_TRY	__END_CATCH}void 	UserGateway::clear()	throw (Error){	__BEGIN_TRY	__ENTER_CRITICAL_SECTION(m_Mutex)	m_UserInfos.clear();	m_UserInfos.reserve( MAX_USER_GATEWAY_TYPE );	for (int i=0; i<MAX_USER_GATEWAY_TYPE; i++)	{		m_UserInfos[i] = 0;	}	__LEAVE_CRITICAL_SECTION(m_Mutex)	__END_CATCH}void    UserGateway::passUser(UserGatewayType ugt)	throw (Error){	__BEGIN_TRY	__ENTER_CRITICAL_SECTION(m_Mutex)	m_UserInfos[ugt]++;	__LEAVE_CRITICAL_SECTION(m_Mutex)	__END_CATCH}int     UserGateway::getInfo(UserGatewayType ugt) const 	throw (Error){	__BEGIN_TRY	int userInfo = 0;	__ENTER_CRITICAL_SECTION(m_Mutex)	userInfo = m_UserInfos[ugt];	__LEAVE_CRITICAL_SECTION(m_Mutex)	return userInfo;	__END_CATCH}int     UserGateway::getTotalInfo() const 	throw (Error){	__BEGIN_TRY	int totalUserInfo = 0;	__ENTER_CRITICAL_SECTION(m_Mutex)	for (int i=0; i<MAX_USER_GATEWAY_TYPE; i++)	{		totalUserInfo += m_UserInfos[i];	}	__LEAVE_CRITICAL_SECTION(m_Mutex)	return totalUserInfo;	__END_CATCH}string	UserGateway::toString()	throw (Error){	__BEGIN_TRY	StringStream msg;	msg << "UserGateway( ";	__ENTER_CRITICAL_SECTION(m_Mutex)	bool bPreviousPrint = false;	for (int i=0; i<MAX_USER_GATEWAY_TYPE; i++)	{		if (m_UserInfos[i]>0)		{			if (bPreviousPrint)			{				msg << ", ";			}			msg << getUserGatewayTypeToString((UserGatewayType)i) << "="				<< m_UserInfos[i];			bPreviousPrint = true;		}	}	__LEAVE_CRITICAL_SECTION(m_Mutex)	msg << " )";	return msg.toString();	__END_CATCH}

⌨️ 快捷键说明

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