2022-03-05 12:44:06 +02:00
|
|
|
|
|
|
|
|
|
#ifndef P2P_MANAGER_H_
|
|
|
|
|
#define P2P_MANAGER_H_
|
|
|
|
|
|
2022-03-06 00:01:03 +02:00
|
|
|
|
#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;
|
|
|
|
|
long lMapIndex;
|
|
|
|
|
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;
|
|
|
|
|
|
2022-03-06 00:01:03 +02:00
|
|
|
|
typedef std::unordered_map<std::string, CCI *, stringhash> TCCIMap;
|
|
|
|
|
typedef std::unordered_map<DWORD, CCI*> TPIDCCIMap;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
|
2022-03-06 00:01:03 +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_ */
|
|
|
|
|
|