Files
Sun1602/Tools/WiseClient/Information/Auth/AuthInfo.h
T
2022-10-26 12:25:11 +08:00

107 lines
3.2 KiB
C++

#pragma once
#include <SunAuth/AuthProtocol_CF.h>
typedef util::cSTRING_BUFFER<MAX_WORLD_NAME_LEN+1> AUTH_WORLD_NAME_T;
typedef DWORD AUTH_WORLD_ID_T;
typedef util::cSTRING_BUFFER<MAX_CHANNEL_NAME_LEN> AUTH_CHANNEL_NAME_T;
typedef DWORD AUTH_CHANNEL_ID_T;
typedef DWORD AUTH_USER_KEY_T;
typedef util::cSTRING_BUFFER<MAX_IPADDRESS_SIZE+1> AUTH_GAMESERVER_IP;
enum eAGE_T
{
eAGE_NONE = 0,
eAGE_15 = 15,
eAGE_18 = 18,
};
struct sWorldInfoByAuth;
struct sChannelInfoByAuth;
//////////////////////////////////////////////////////////////////////////
//
class AuthInfo
{
public:
DECL_CONST_MEMBER INVALID_IDX = (DWORD)-1;
public:
AuthInfo() { _Release(); }
~AuthInfo() { _Release(); }
public:
void Initialize(AUTH_WORLD_ID_T maxWorldCount);
bool AddGroupInfo(const GROUP_DATA& group_data);
bool AddServerInfo(const SERVER_DATA& server_data);
bool GetServer(SERVER_DATA* server_data, int group_index, int server_index);
//sWorldInfoByAuth* GetWorldByIndex(AUTH_WORLD_ID_T worldIDX);
//sChannelInfoByAuth* GetChannelByIndex(AUTH_WORLD_ID_T worldIDX, AUTH_CHANNEL_ID_T channelIDX);
//sWorldInfoByAuth* AddWorldInfo(AUTH_WORLD_ID_T worldIDX, AUTH_WORLD_NAME_T& rWORLD_NAME);
//BOOL AddChannelInfo(BYTE byUniqueIdx, AUTH_WORLD_ID_T worldIDX, AUTH_CHANNEL_NAME_T& rCHANNEL_NAME);
//BYTE* GetAuthChannelStatusList() { return m_byAuthChannelList; }
BOOL SetConnectingGameServerInfo(
AUTH_USER_KEY_T authKey,
BYTE pSerialKey[AUTH_SERIAL_KEY_LEN],
CHAR* pGameServerIP,
WORD wGameServerPort);
BOOL GetConnectingGameServerInfo(
AUTH_USER_KEY_T* OUT pAuthKey,
BYTE* OUT pSerialKey,
util::cSTRING_REF_RW* pStrIP,
WORD* OUT pwGameServerPort);
private:
void _Release();
struct {
BYTE group_data_num_;
GROUP_DATA group_data_list_[MAX_GROUP];
};
struct {
BYTE channel_list_num_;
GROUP_DATA* group_link_[MAX_SVR];
SERVER_DATA server_list_[MAX_SVR];
};
struct
{ // 서버 인증 정보 관련
AUTH_USER_KEY_T m_dwAuthUserKey;
BYTE m_SerialKey[AUTH_SERIAL_KEY_LEN];
AUTH_GAMESERVER_IP m_strGameServerIP;
WORD m_wGameServerPort;
};
// 서버 상태 관련
BYTE m_byAuthChannelList[MAX_SVR];
};
////////////////////////////////////////////////////////////////////////////
//struct sChannelInfoByAuth
//{
// BYTE UNIQUEIDX;
// AUTH_WORLD_ID_T WORLDIDX;
// AUTH_CHANNEL_ID_T CHANNELIDX;
// AUTH_CHANNEL_NAME_T NAME;
//
// sChannelInfoByAuth() : UNIQUEIDX(-1), WORLDIDX(AuthInfo::INVALID_IDX), CHANNELIDX(AuthInfo::INVALID_IDX) {}
//};
//
//typedef STLX_VECTOR<sChannelInfoByAuth> CHANNEL_LIST;
//
//struct sWorldInfoByAuth
//{
// AUTH_WORLD_ID_T WORLDIDX;
// eAGE_T AGE;
// CHANNEL_LIST CHANNELS;
// AUTH_WORLD_NAME_T NAME;
//
// sWorldInfoByAuth() : WORLDIDX(AuthInfo::INVALID_IDX), AGE(eAGE_NONE) {}
//};