server/game/src/p2p.h

71 lines
1.6 KiB
C
Raw Normal View History

2022-03-05 12:44:06 +02:00
#ifndef P2P_MANAGER_H_
#define P2P_MANAGER_H_
#include <unordered_map>
2022-03-05 12:44:06 +02:00
#include "input.h"
2022-03-05 19:59:39 +02:00
#include <common/stl.h>
2022-03-05 12:44:06 +02:00
typedef struct _CCI
{
char szName[CHARACTER_NAME_MAX_LEN + 1];
DWORD dwPID;
BYTE bEmpire;
int lMapIndex;
2022-03-05 12:44:06 +02:00
BYTE bChannel;
LPDESC pkDesc;
} CCI;
class P2P_MANAGER : public singleton<P2P_MANAGER>
{
public:
P2P_MANAGER();
~P2P_MANAGER();
// <20>Ʒ<EFBFBD> Register* Unregister* pair<69><72><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ƾ<EFBFBD><C6BE> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ǥ<><C7A5><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
void RegisterAcceptor(LPDESC d);
void UnregisterAcceptor(LPDESC d);
void RegisterConnector(LPDESC d);
void UnregisterConnector(LPDESC d);
void EraseUserByDesc(LPDESC d); // <20>ش<EFBFBD> desc<73><63> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
void FlushOutput();
void Boot(LPDESC d); // p2p ó<><C3B3><EFBFBD><EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>. (<28><> ij<><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>)
void Send(const void * c_pvData, int iSize, LPDESC except = NULL);
void Login(LPDESC d, const TPacketGGLogin * p);
void Logout(const char * c_pszName);
CCI * Find(const char * c_pszName);
CCI * FindByPID(DWORD pid);
int GetCount();
int GetEmpireUserCount(int idx);
int GetDescCount();
void GetP2PHostNames(std::string& hostNames);
private:
void Logout(CCI * pkCCI);
CInputProcessor * m_pkInputProcessor;
int m_iHandleCount;
typedef std::unordered_map<std::string, CCI *, stringhash> TCCIMap;
typedef std::unordered_map<DWORD, CCI*> TPIDCCIMap;
2022-03-05 12:44:06 +02:00
std::unordered_set<LPDESC> m_set_pkPeers;
2022-03-05 12:44:06 +02:00
TCCIMap m_map_pkCCI;
TPIDCCIMap m_map_dwPID_pkCCI;
int m_aiEmpireUserCount[EMPIRE_MAX_NUM];
};
#endif /* P2P_MANAGER_H_ */