本文整理汇总了C++中Host::GetFailureTime方法的典型用法代码示例。如果您正苦于以下问题:C++ Host::GetFailureTime方法的具体用法?C++ Host::GetFailureTime怎么用?C++ Host::GetFailureTime使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Host
的用法示例。
在下文中一共展示了Host::GetFailureTime方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Handle
/** The JOIN message is answered by a JOINACK or a JOINNACK message.
* If the transmit time is too long, a JOINNACK is returned.
* If not, an JOINACK is answered, with all the peer's addresses
* that are in the leafset.
*/
void Handle (Chimera& chimera, const Host&, const Packet& pckt)
{
pf_addr addr = pckt.GetArg<pf_addr>(CHIMERA_JOIN_ADDRESS);
Host host = hosts_list.GetHost(addr);
double elapsed_time = time::dtime() - host.GetFailureTime();
if(elapsed_time < Chimera::GRACEPERIOD)
{
Packet join_nack(ChimeraJoinNAckType, chimera.GetMe().GetKey(), host.GetKey());
join_nack.SetArg(CHIMERA_JOIN_NACK_ADDRESS, addr);
chimera.Send(host, join_nack);
pf_log[W_ROUTING] << "JOIN request from node " << host << " rejected, "
<< "elapsed time since failure = " << elapsed_time << " sec";
return;
}
std::vector<Host> leafset = chimera.GetRouting()->getLeafset();
addr_list addresses;
for(std::vector<Host>::iterator it = leafset.begin(); it != leafset.end(); ++it)
addresses.push_back(it->GetAddr());
addresses.push_back(chimera.GetMe().GetAddr());
Packet join_ack(ChimeraJoinAckType, chimera.GetMe().GetKey(), host.GetKey());
join_ack.SetArg(CHIMERA_JOIN_ACK_ADDRESSES, addresses);
if(!chimera.Send(host, join_ack))
pf_log[W_ROUTING] << "Send join ACK message failed!";
}