本文整理汇总了C++中mercury::EndPoint类的典型用法代码示例。如果您正苦于以下问题:C++ EndPoint类的具体用法?C++ EndPoint怎么用?C++ EndPoint使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了EndPoint类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: endpoint
//-------------------------------------------------------------------------------------
int TelnetServer::handleInputNotification(int fd)
{
KBE_ASSERT(listener_ == fd);
int tickcount = 0;
while(tickcount ++ < 1024)
{
Mercury::EndPoint* pNewEndPoint = listener_.accept();
if(pNewEndPoint == NULL){
if(tickcount == 1)
{
WARNING_MSG(fmt::format("TelnetServer::handleInputNotification: accept endpoint({}) {}!\n",
fd, kbe_strerror()));
}
break;
}
else
{
TelnetHandler* pTelnetHandler = new TelnetHandler(pNewEndPoint, this, pNetworkInterface_, passwd_.size() > 0 ?
TelnetHandler::TELNET_STATE_PASSWD : (TelnetHandler::TELNET_STATE)this->deflayer());
if(!pDispatcher_->registerFileDescriptor((*pNewEndPoint), pTelnetHandler))
{
ERROR_MSG(fmt::format("TelnetServer::start:: registerFileDescriptor(pTelnetHandler) is failed! addr={}\n",
pNewEndPoint->c_str()));
delete pTelnetHandler;
continue;
}
INFO_MSG(fmt::format("TelnetServer::handleInputNotification: new handler({})!\n",
pNewEndPoint->c_str()));
handlers_[(*pNewEndPoint)].reset(pTelnetHandler);
std::string s;
if(passwd_.size() > 0)
{
s = "password:";
}
else
{
s = pTelnetHandler->getWelcome();
}
pNewEndPoint->send(s.c_str(), s.size());
}
}
return 0;
}
示例2: initBaseappChannel
//-------------------------------------------------------------------------------------
Mercury::Channel* ClientObjectBase::initBaseappChannel()
{
Mercury::EndPoint* pEndpoint = new Mercury::EndPoint();
pEndpoint->socket(SOCK_STREAM);
if (!pEndpoint->good())
{
ERROR_MSG("ClientObjectBase::initBaseappChannel: couldn't create a socket\n");
delete pEndpoint;
return false;
}
u_int32_t address;
pEndpoint->convertAddress(ip_.c_str(), address);
if(pEndpoint->connect(htons(port_), address) == -1)
{
ERROR_MSG(boost::format("ClientObjectBase::initBaseappChannel: connect server is error(%1%)!\n") %
kbe_strerror());
delete pEndpoint;
return NULL;
}
Mercury::Address addr(ip_.c_str(), port_);
pEndpoint->addr(addr);
pServerChannel_->endpoint(pEndpoint);
pEndpoint->setnonblocking(true);
pEndpoint->setnodelay(true);
connectedGateway_ = true;
return pServerChannel_;
}
示例3: initLoginappChannel
//-------------------------------------------------------------------------------------
Mercury::Channel* ClientObjectBase::initLoginappChannel(std::string accountName, std::string passwd, std::string ip, KBEngine::uint32 port)
{
Mercury::EndPoint* pEndpoint = new Mercury::EndPoint();
pEndpoint->socket(SOCK_STREAM);
if (!pEndpoint->good())
{
ERROR_MSG("ClientObjectBase::initLoginappChannel: couldn't create a socket\n");
delete pEndpoint;
return NULL;
}
u_int32_t address;
pEndpoint->convertAddress(ip.c_str(), address);
if(pEndpoint->connect(htons(port), address) == -1)
{
ERROR_MSG(boost::format("ClientObjectBase::initLoginappChannel: connect server is error(%1%)!\n") %
kbe_strerror());
delete pEndpoint;
return NULL;
}
Mercury::Address addr(ip.c_str(), port);
pEndpoint->addr(addr);
pServerChannel_->endpoint(pEndpoint);
pEndpoint->setnonblocking(true);
pEndpoint->setnodelay(true);
password_ = passwd;
name_ = accountName;
return pServerChannel_;
}
示例4: initCreate
//-------------------------------------------------------------------------------------
bool ClientObject::initCreate()
{
Mercury::EndPoint* pEndpoint = new Mercury::EndPoint();
pEndpoint->socket(SOCK_STREAM);
if (!pEndpoint->good())
{
ERROR_MSG("ClientObject::initNetwork: couldn't create a socket\n");
delete pEndpoint;
error_ = C_ERROR_INIT_NETWORK_FAILED;
return false;
}
ENGINE_COMPONENT_INFO& infos = g_kbeSrvConfig.getBots();
u_int32_t address;
pEndpoint->convertAddress(infos.login_ip, address);
if(pEndpoint->connect(htons(infos.login_port), address) == -1)
{
ERROR_MSG(boost::format("ClientObject::initNetwork(%2%): connect server(%3%:%4%) is error(%1%)!\n") %
kbe_strerror() % name_ % infos.login_ip % infos.login_port);
delete pEndpoint;
// error_ = C_ERROR_INIT_NETWORK_FAILED;
state_ = C_STATE_INIT;
return false;
}
Mercury::Address addr(infos.login_ip, infos.login_port);
pEndpoint->addr(addr);
pServerChannel_->endpoint(pEndpoint);
pEndpoint->setnonblocking(true);
pEndpoint->setnodelay(true);
pServerChannel_->pMsgHandlers(&ClientInterface::messageHandlers);
Bots::getSingleton().pEventPoller()->registerForRead((*pEndpoint), this);
Mercury::Bundle* pBundle = Mercury::Bundle::ObjPool().createObject();
(*pBundle).newMessage(LoginappInterface::hello);
(*pBundle) << KBEVersion::versionString() << KBEVersion::scriptVersionString();
if(Mercury::g_channelExternalEncryptType == 1)
{
pBlowfishFilter_ = new Mercury::BlowfishFilter();
(*pBundle).appendBlob(pBlowfishFilter_->key());
}
else
{
std::string key = "";
(*pBundle).appendBlob(key);
}
pServerChannel_->pushBundle(pBundle);
this->pEndpoint_ = pEndpoint;
return true;
}
示例5: initLoginGateWay
//-------------------------------------------------------------------------------------
bool ClientObject::initLoginGateWay()
{
Bots::getSingleton().pEventPoller()->deregisterForRead(*pServerChannel_->endpoint());
Mercury::EndPoint* pEndpoint = new Mercury::EndPoint();
pEndpoint->socket(SOCK_STREAM);
if (!pEndpoint->good())
{
ERROR_MSG("ClientObject::initLogin: couldn't create a socket\n");
delete pEndpoint;
error_ = C_ERROR_INIT_NETWORK_FAILED;
return false;
}
u_int32_t address;
pEndpoint->convertAddress(ip_.c_str(), address);
if(pEndpoint->connect(htons(port_), address) == -1)
{
ERROR_MSG(boost::format("ClientObject::initLogin(%2%): connect server is error(%1%)!\n") %
kbe_strerror() % name_);
delete pEndpoint;
// error_ = C_ERROR_INIT_NETWORK_FAILED;
state_ = C_STATE_LOGIN_GATEWAY_CREATE;
return false;
}
Mercury::Address addr(ip_.c_str(), port_);
pEndpoint->addr(addr);
pServerChannel_->endpoint(pEndpoint);
pEndpoint->setnonblocking(true);
pEndpoint->setnodelay(true);
Bots::getSingleton().pEventPoller()->registerForRead((*pEndpoint), this);
connectedGateway_ = true;
Mercury::Bundle* pBundle = Mercury::Bundle::ObjPool().createObject();
(*pBundle).newMessage(BaseappInterface::hello);
(*pBundle) << KBEVersion::versionString() << KBEVersion::scriptVersionString();
if(Mercury::g_channelExternalEncryptType == 1)
{
pBlowfishFilter_ = new Mercury::BlowfishFilter();
(*pBundle).appendBlob(pBlowfishFilter_->key());
pServerChannel_->pFilter(NULL);
}
else
{
std::string key = "";
(*pBundle).appendBlob(key);
}
pServerChannel_->pushBundle(pBundle);
return true;
}
示例6: checkComponentUsable
//-------------------------------------------------------------------------------------
bool Components::checkComponentUsable(const Components::ComponentInfos* info)
{
Mercury::EndPoint epListen;
epListen.socket(SOCK_STREAM);
if (!epListen.good())
{
ERROR_MSG("Components::checkComponentUsable: couldn't create a socket\n");
return true;
}
int trycount = 0;
while(true)
{
if(epListen.connect(info->pIntAddr->port, info->pIntAddr->ip) == -1)
{
KBEngine::sleep(30);
trycount++;
if(trycount > 3)
{
ERROR_MSG("Components::checkComponentUsable: couldn't connect to:%s\n", info->pIntAddr->c_str());
return false;
}
}
break;
}
Mercury::Bundle* pBundle = Mercury::Bundle::ObjPool().createObject();
COMMON_MERCURY_MESSAGE(info->componentType, (*pBundle), lookApp);
epListen.send(pBundle->pCurrPacket()->data(), pBundle->pCurrPacket()->wpos());
Mercury::Bundle::ObjPool().reclaimObject(pBundle);
epListen.setnodelay(true);
epListen.setnonblocking(true);
fd_set fds;
struct timeval tv = { 0, 100000 }; // 100ms
FD_ZERO( &fds );
FD_SET((int)epListen, &fds);
int selgot = select(epListen+1, &fds, NULL, NULL, &tv);
if(selgot == 0)
{
return true; // 超时可能对方繁忙
}
else if(selgot == -1)
{
return true;
}
else
{
COMPONENT_TYPE ctype;
COMPONENT_ID cid;
Mercury::TCPPacket packet;
packet.resize(255);
int recvsize = sizeof(ctype) + sizeof(cid);
int len = epListen.recv(packet.data(), recvsize);
packet.wpos(len);
if(recvsize != len)
{
ERROR_MSG("Components::checkComponentUsable: packet invalid.\n");
return true;
}
packet >> ctype >> cid;
if(ctype != info->componentType || cid != info->cid)
{
ERROR_MSG("Components::checkComponentUsable: invalid component.\n");
return false;
}
}
return true;
}
示例7: connectComponent
//-------------------------------------------------------------------------------------
int Components::connectComponent(COMPONENT_TYPE componentType, int32 uid, COMPONENT_ID componentID)
{
Components::ComponentInfos* pComponentInfos = findComponent(componentType, uid, componentID);
KBE_ASSERT(pComponentInfos != NULL);
Mercury::EndPoint * pEndpoint = new Mercury::EndPoint;
pEndpoint->socket(SOCK_STREAM);
if (!pEndpoint->good())
{
ERROR_MSG("Components::connectComponent: couldn't create a socket\n");
delete pEndpoint;
return -1;
}
pEndpoint->addr(*pComponentInfos->pIntAddr);
int ret = pEndpoint->connect(pComponentInfos->pIntAddr->port, pComponentInfos->pIntAddr->ip);
if(ret == 0)
{
pComponentInfos->pChannel = new Mercury::Channel(*_pNetworkInterface, pEndpoint, Mercury::Channel::INTERNAL);
if(!_pNetworkInterface->registerChannel(pComponentInfos->pChannel))
{
ERROR_MSG("Components::connectComponent: registerChannel(%s) is failed!\n",
pComponentInfos->pChannel->c_str());
delete pComponentInfos->pChannel;
pComponentInfos->pChannel = NULL;
return -1;
}
else
{
Mercury::Bundle bundle(pComponentInfos->pChannel);
if(componentType == BASEAPPMGR_TYPE)
{
bundle.newMessage(BaseappmgrInterface::onRegisterNewApp);
BaseappmgrInterface::onRegisterNewAppArgs8::staticAddToBundle(bundle, getUserUID(), getUsername(),
Componentbridge::getSingleton().componentType(), Componentbridge::getSingleton().componentID(),
_pNetworkInterface->intaddr().ip, _pNetworkInterface->intaddr().port,
_pNetworkInterface->extaddr().ip, _pNetworkInterface->extaddr().port);
}
else if(componentType == CELLAPPMGR_TYPE)
{
bundle.newMessage(CellappmgrInterface::onRegisterNewApp);
CellappmgrInterface::onRegisterNewAppArgs8::staticAddToBundle(bundle, getUserUID(), getUsername(),
Componentbridge::getSingleton().componentType(), Componentbridge::getSingleton().componentID(),
_pNetworkInterface->intaddr().ip, _pNetworkInterface->intaddr().port,
_pNetworkInterface->extaddr().ip, _pNetworkInterface->extaddr().port);
}
else if(componentType == CELLAPP_TYPE)
{
bundle.newMessage(CellappInterface::onRegisterNewApp);
CellappInterface::onRegisterNewAppArgs8::staticAddToBundle(bundle, getUserUID(), getUsername(),
Componentbridge::getSingleton().componentType(), Componentbridge::getSingleton().componentID(),
_pNetworkInterface->intaddr().ip, _pNetworkInterface->intaddr().port,
_pNetworkInterface->extaddr().ip, _pNetworkInterface->extaddr().port);
}
else if(componentType == BASEAPP_TYPE)
{
bundle.newMessage(BaseappInterface::onRegisterNewApp);
BaseappInterface::onRegisterNewAppArgs8::staticAddToBundle(bundle, getUserUID(), getUsername(),
Componentbridge::getSingleton().componentType(), Componentbridge::getSingleton().componentID(),
_pNetworkInterface->intaddr().ip, _pNetworkInterface->intaddr().port,
_pNetworkInterface->extaddr().ip, _pNetworkInterface->extaddr().port);
}
else if(componentType == DBMGR_TYPE)
{
bundle.newMessage(DbmgrInterface::onRegisterNewApp);
DbmgrInterface::onRegisterNewAppArgs8::staticAddToBundle(bundle, getUserUID(), getUsername(),
Componentbridge::getSingleton().componentType(), Componentbridge::getSingleton().componentID(),
_pNetworkInterface->intaddr().ip, _pNetworkInterface->intaddr().port,
_pNetworkInterface->extaddr().ip, _pNetworkInterface->extaddr().port);
}
else if(componentType == MESSAGELOG_TYPE)
{
bundle.newMessage(MessagelogInterface::onRegisterNewApp);
MessagelogInterface::onRegisterNewAppArgs8::staticAddToBundle(bundle, getUserUID(), getUsername(),
Componentbridge::getSingleton().componentType(), Componentbridge::getSingleton().componentID(),
_pNetworkInterface->intaddr().ip, _pNetworkInterface->intaddr().port,
_pNetworkInterface->extaddr().ip, _pNetworkInterface->extaddr().port);
}
else if(componentType == RESOURCEMGR_TYPE)
{
bundle.newMessage(ResourcemgrInterface::onRegisterNewApp);
ResourcemgrInterface::onRegisterNewAppArgs8::staticAddToBundle(bundle, getUserUID(), getUsername(),
Componentbridge::getSingleton().componentType(), Componentbridge::getSingleton().componentID(),
_pNetworkInterface->intaddr().ip, _pNetworkInterface->intaddr().port,
_pNetworkInterface->extaddr().ip, _pNetworkInterface->extaddr().port);
}
else
{
KBE_ASSERT(false && "invalid componentType.\n");
}
//.........这里部分代码省略.........
示例8: process
//-------------------------------------------------------------------------------------
bool CreateAccountTask::process()
{
if(!enable)
{
return false;
}
// 如果没有设置第三方服务地址则我们默认为成功
if(strlen(serviceAddr()) == 0)
{
success = true;
getDatas = postDatas;
return false;
}
Mercury::EndPoint endpoint;
endpoint.socket(SOCK_STREAM);
if (!endpoint.good())
{
ERROR_MSG("BillingTask::process: couldn't create a socket\n");
return false;
}
if(postDatas.size() == 0)
{
ERROR_MSG(boost::format("BillingTask::process: %1% postData is NULL.\n") % commitName);
return false;
}
u_int32_t addr;
KBEngine::Mercury::EndPoint::convertAddress(serviceAddr(), addr);
if(endpoint.connect(htons(servicePort()), addr) == -1)
{
ERROR_MSG(boost::format("BillingTask::process: connect billingserver(%1%:%2%) is error(%3%)!\n") %
serviceAddr() % servicePort() % kbe_strerror());
endpoint.close();
return false;
}
endpoint.setnonblocking(true);
endpoint.setnodelay(true);
Mercury::Bundle::SmartPoolObjectPtr bundle = Mercury::Bundle::createSmartPoolObj();
(*(*bundle)).append(postDatas.data(), postDatas.size());
(*(*bundle)).send(endpoint);
Mercury::TCPPacket packet;
packet.resize(1024);
fd_set frds;
struct timeval tv = { 0, 5000000 }; // 5000ms
FD_ZERO( &frds );
FD_SET((int)endpoint, &frds);
int selgot = select(endpoint+1, &frds, NULL, NULL, &tv);
if(selgot <= 0)
{
ERROR_MSG(boost::format("BillingTask::process: %1% send(%2%).\n") % commitName % postDatas);
ERROR_MSG(boost::format("BillingTask::process: %1% recv is error(%2%).\n") % commitName % KBEngine::kbe_strerror());
endpoint.close();
return false;
}
int len = endpoint.recv(packet.data(), 1024);
if(len <= 0)
{
ERROR_MSG(boost::format("BillingTask::process: %1% recv is size<= 0.\n===>postdatas=%2%\n") % commitName % postDatas);
endpoint.close();
return false;
}
packet.wpos(len);
getDatas.assign((const char *)(packet.data() + packet.rpos()), packet.opsize());
try
{
std::string::size_type fi = getDatas.find("\r\n\r\n");
if(fi != std::string::npos)
{
fi += 4;
MemoryStream s;
s.append(getDatas.data() + fi, getDatas.size() - fi);
while(s.opsize() > 0)
{
int32 type, len;
s >> type >> len;
EndianConvertReverse<int32>(type);
EndianConvertReverse<int32>(len);
int32 error = 0;
switch(type)
{
//.........这里部分代码省略.........
示例9: checkComponentUsable
//-------------------------------------------------------------------------------------
bool Components::checkComponentUsable(const Components::ComponentInfos* info)
{
// 不对其他machine做处理
if(info->componentType == MACHINE_TYPE)
{
return true;
}
bool islocal = _pNetworkInterface->intaddr().ip == info->pIntAddr->ip ||
_pNetworkInterface->extaddr().ip == info->pIntAddr->ip;
// 如果是本机应用则判断是否还在运行中
if(islocal && info->pid > 0)
{
SystemInfo::PROCESS_INFOS sysinfos = SystemInfo::getSingleton().getProcessInfo(info->pid);
if(sysinfos.error)
{
WARNING_MSG(boost::format("Components::checkComponentUsable: not found pid(%1%)\n") % info->pid);
//return false;
}
else
{
Components::ComponentInfos* winfo = findComponent(info->cid);
if(winfo)
{
winfo->cpu = sysinfos.cpu;
winfo->usedmem = (uint32)sysinfos.memused;
winfo->mem = float((winfo->usedmem * 1.0 / SystemInfo::getSingleton().totalmem()) * 100.0);
}
}
}
Mercury::EndPoint epListen;
epListen.socket(SOCK_STREAM);
if (!epListen.good())
{
ERROR_MSG("Components::checkComponentUsable: couldn't create a socket\n");
return true;
}
epListen.setnonblocking(true);
while(true)
{
fd_set frds, fwds;
struct timeval tv = { 0, 300000 }; // 100ms
FD_ZERO( &frds );
FD_ZERO( &fwds );
FD_SET((int)epListen, &frds);
FD_SET((int)epListen, &fwds);
if(epListen.connect(info->pIntAddr->port, info->pIntAddr->ip) == -1)
{
int selgot = select(epListen+1, &frds, &fwds, NULL, &tv);
if(selgot > 0)
{
break;
}
ERROR_MSG(boost::format("Components::checkComponentUsable: couldn't connect to:%1%\n") % info->pIntAddr->c_str());
return false;
}
}
epListen.setnodelay(true);
Mercury::Bundle* pBundle = Mercury::Bundle::ObjPool().createObject();
// 由于COMMON_MERCURY_MESSAGE不包含client, 如果是bots, 我们需要单独处理
if(info->componentType != BOTS_TYPE)
{
COMMON_MERCURY_MESSAGE(info->componentType, (*pBundle), lookApp);
}
else
{
(*pBundle).newMessage(BotsInterface::lookApp);
}
epListen.send(pBundle->pCurrPacket()->data(), pBundle->pCurrPacket()->wpos());
Mercury::Bundle::ObjPool().reclaimObject(pBundle);
fd_set fds;
struct timeval tv = { 0, 300000 }; // 100ms
FD_ZERO( &fds );
FD_SET((int)epListen, &fds);
int selgot = select(epListen+1, &fds, NULL, NULL, &tv);
if(selgot == 0)
{
return true; // 超时可能对方繁忙
}
else if(selgot == -1)
{
return true;
}
else
//.........这里部分代码省略.........
示例10: connectComponent
//-------------------------------------------------------------------------------------
int Components::connectComponent(COMPONENT_TYPE componentType, int32 uid, COMPONENT_ID componentID)
{
Components::ComponentInfos* pComponentInfos = findComponent(componentType, uid, componentID);
KBE_ASSERT(pComponentInfos != NULL);
Mercury::EndPoint * pEndpoint = new Mercury::EndPoint;
pEndpoint->socket(SOCK_STREAM);
if (!pEndpoint->good())
{
ERROR_MSG("Components::connectComponent: couldn't create a socket\n");
delete pEndpoint;
return -1;
}
pEndpoint->addr(*pComponentInfos->pIntAddr);
int ret = pEndpoint->connect(pComponentInfos->pIntAddr->port, pComponentInfos->pIntAddr->ip);
if(ret == 0)
{
pComponentInfos->pChannel = new Mercury::Channel(*_pNetworkInterface, pEndpoint, Mercury::Channel::INTERNAL);
pComponentInfos->pChannel->componentID(componentID);
if(!_pNetworkInterface->registerChannel(pComponentInfos->pChannel))
{
ERROR_MSG(boost::format("Components::connectComponent: registerChannel(%1%) is failed!\n") %
pComponentInfos->pChannel->c_str());
pComponentInfos->pChannel->destroy();
pComponentInfos->pChannel = NULL;
return -1;
}
else
{
Mercury::Bundle* pBundle = Mercury::Bundle::ObjPool().createObject();
if(componentType == BASEAPPMGR_TYPE)
{
(*pBundle).newMessage(BaseappmgrInterface::onRegisterNewApp);
BaseappmgrInterface::onRegisterNewAppArgs11::staticAddToBundle((*pBundle), getUserUID(), getUsername(),
Componentbridge::getSingleton().componentType(), Componentbridge::getSingleton().componentID(),
g_componentGlobalOrder, g_componentGroupOrder,
_pNetworkInterface->intaddr().ip, _pNetworkInterface->intaddr().port,
_pNetworkInterface->extaddr().ip, _pNetworkInterface->extaddr().port, g_kbeSrvConfig.getConfig().externalAddress);
}
else if(componentType == CELLAPPMGR_TYPE)
{
(*pBundle).newMessage(CellappmgrInterface::onRegisterNewApp);
CellappmgrInterface::onRegisterNewAppArgs11::staticAddToBundle((*pBundle), getUserUID(), getUsername(),
Componentbridge::getSingleton().componentType(), Componentbridge::getSingleton().componentID(),
g_componentGlobalOrder, g_componentGroupOrder,
_pNetworkInterface->intaddr().ip, _pNetworkInterface->intaddr().port,
_pNetworkInterface->extaddr().ip, _pNetworkInterface->extaddr().port, g_kbeSrvConfig.getConfig().externalAddress);
}
else if(componentType == CELLAPP_TYPE)
{
(*pBundle).newMessage(CellappInterface::onRegisterNewApp);
CellappInterface::onRegisterNewAppArgs11::staticAddToBundle((*pBundle), getUserUID(), getUsername(),
Componentbridge::getSingleton().componentType(), Componentbridge::getSingleton().componentID(),
g_componentGlobalOrder, g_componentGroupOrder,
_pNetworkInterface->intaddr().ip, _pNetworkInterface->intaddr().port,
_pNetworkInterface->extaddr().ip, _pNetworkInterface->extaddr().port, g_kbeSrvConfig.getConfig().externalAddress);
}
else if(componentType == BASEAPP_TYPE)
{
(*pBundle).newMessage(BaseappInterface::onRegisterNewApp);
BaseappInterface::onRegisterNewAppArgs11::staticAddToBundle((*pBundle), getUserUID(), getUsername(),
Componentbridge::getSingleton().componentType(), Componentbridge::getSingleton().componentID(),
g_componentGlobalOrder, g_componentGroupOrder,
_pNetworkInterface->intaddr().ip, _pNetworkInterface->intaddr().port,
_pNetworkInterface->extaddr().ip, _pNetworkInterface->extaddr().port, g_kbeSrvConfig.getConfig().externalAddress);
}
else if(componentType == DBMGR_TYPE)
{
(*pBundle).newMessage(DbmgrInterface::onRegisterNewApp);
DbmgrInterface::onRegisterNewAppArgs11::staticAddToBundle((*pBundle), getUserUID(), getUsername(),
Componentbridge::getSingleton().componentType(), Componentbridge::getSingleton().componentID(),
g_componentGlobalOrder, g_componentGroupOrder,
_pNetworkInterface->intaddr().ip, _pNetworkInterface->intaddr().port,
_pNetworkInterface->extaddr().ip, _pNetworkInterface->extaddr().port, g_kbeSrvConfig.getConfig().externalAddress);
}
else if(componentType == MESSAGELOG_TYPE)
{
(*pBundle).newMessage(MessagelogInterface::onRegisterNewApp);
MessagelogInterface::onRegisterNewAppArgs11::staticAddToBundle((*pBundle), getUserUID(), getUsername(),
Componentbridge::getSingleton().componentType(), Componentbridge::getSingleton().componentID(),
g_componentGlobalOrder, g_componentGroupOrder,
_pNetworkInterface->intaddr().ip, _pNetworkInterface->intaddr().port,
_pNetworkInterface->extaddr().ip, _pNetworkInterface->extaddr().port, g_kbeSrvConfig.getConfig().externalAddress);
}
else
{
KBE_ASSERT(false && "invalid componentType.\n");
}
(*pBundle).send(*_pNetworkInterface, pComponentInfos->pChannel);
//.........这里部分代码省略.........