void ProcessAddNetConnect() { std::list<ServerData>::iterator it = mxTempNetList.begin(); for (; it != mxTempNetList.end(); ++it) { const ServerData& xInfo = *it; NF_SHARE_PTR<ServerData> xServerData = mxServerMap.GetElement(xInfo.nGameID); if (xServerData) { //新的信息 if (xInfo.strIP != xServerData->strIP || xInfo.nPort != xServerData->nPort) { //断旧,连新 RemoveServerWeightData(xServerData); xServerData->nGameID = xInfo.nGameID; xServerData->eServerType = xInfo.eServerType; xServerData->strIP = xInfo.strIP; xServerData->strName = xInfo.strName; xServerData->eState = xInfo.eState; xServerData->nPort = xInfo.nPort; //智能指针自己释放 xServerData->mxNetModule = NF_SHARE_PTR<NFINetModule>(NF_NEW NFINetModule()); xServerData->mxNetModule->Initialization(NFIMsgHead::NF_Head::NF_HEAD_LENGTH, this, &NFIClusterClientModule::OnRecivePack, &NFIClusterClientModule::OnSocketEvent, xServerData->strIP.c_str(), xServerData->nPort); } } else { //正常,添加新服务器 xServerData = NF_SHARE_PTR<ServerData>(NF_NEW ServerData()); xServerData->nGameID = xInfo.nGameID; xServerData->eServerType = xInfo.eServerType; xServerData->strIP = xInfo.strIP; xServerData->strName = xInfo.strName; xServerData->eState = xInfo.eState; xServerData->nPort = xInfo.nPort; xServerData->mxNetModule = NF_SHARE_PTR<NFINetModule>(NF_NEW NFINetModule()); xServerData->mxNetModule->Initialization(NFIMsgHead::NF_Head::NF_HEAD_LENGTH, this, &NFIClusterClientModule::OnRecivePack, &NFIClusterClientModule::OnSocketEvent, xServerData->strIP.c_str(), xServerData->nPort); mxServerMap.AddElement(xInfo.nGameID, xServerData); } } mxTempNetList.clear(); }
bool NFCProxyServerNet_ServerModule::Init() { m_pNetModule = NF_NEW NFINetModule(pPluginManager); return true; }