本文整理汇总了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();
}
}