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


C++ Metric::isNotInf方法代码示例

本文整理汇总了C++中Metric::isNotInf方法的典型用法代码示例。如果您正苦于以下问题:C++ Metric::isNotInf方法的具体用法?C++ Metric::isNotInf怎么用?C++ Metric::isNotInf使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Metric的用法示例。


在下文中一共展示了Metric::isNotInf方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: onNewPathSelectionEntry

void
VirtualPathSelection::createPeerLink(const wns::service::dll::UnicastAddress myself,
									 const wns::service::dll::UnicastAddress peer,
									 const Metric linkMetric)
{
    if(useStaticPS)
    {
	    if (wns::simulator::getEventScheduler()->getTime() > staticPSsnapshotTimeout)
	    {
		    return;
	    }
    }
	assure(mapper.knows(myself), "myself (" << myself << ") is not a known address");
	assure(mapper.knows(peer), "peer (" << peer << ") is not a known address");
	assure(isMeshPoint(myself) , "myself (" << myself << ") is not a known MP");
	assure(isMeshPoint(peer), "peer (" << peer << ") is not a known MP");
	assure(linkMetric.isNotInf(), "createPeerLink with metric == inf");

	if(isPortal(myself) && isPortal(peer))
	{
		MESSAGE_SINGLE(NORMAL, logger, "createPeerLink: Ignore wireless link between " << myself << " and " << peer << ", both are portals");
	}
	else
	{
        int myselfId = mapper.get(myself);
        int peerId = mapper.get(peer);

		assure(linkCosts[myselfId][peerId].isInf(), "createPeerLink with already known linkCosts");

        Metric newLinkMetric = linkMetric;
        if(preKnowledgeCosts[myselfId][peerId].isNotInf())
        {
            newLinkMetric = newLinkMetric * (1.0-preKnowledgeAlpha) + preKnowledgeCosts[myselfId][peerId] * preKnowledgeAlpha;
            MESSAGE_SINGLE(NORMAL, logger, "createPeerLink: " << myself << "->" << peer << " has preKnowledge of " << preKnowledgeCosts[myselfId][peerId] << ", " << linkMetric << "->" << newLinkMetric);
        }

        linkCosts[myselfId][peerId] = newLinkMetric;


        MESSAGE_SINGLE(NORMAL, logger, "createPeerLink: " << myself << " --> " << peer << " costs " << linkCosts[myselfId][peerId]);
		pathMatrixIsConsistent = false;
        onNewPathSelectionEntry();
	}
}
开发者ID:openwns,项目名称:wifimac,代码行数:44,代码来源:VirtualPathSelection.cpp


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