当前位置: 首页>>代码示例>>C++>>正文


C++ Host::GetFailureTime方法代码示例

本文整理汇总了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!";
	}
开发者ID:,项目名称:,代码行数:35,代码来源:


注:本文中的Host::GetFailureTime方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。