本文整理汇总了C++中SockAddr::isv6方法的典型用法代码示例。如果您正苦于以下问题:C++ SockAddr::isv6方法的具体用法?C++ SockAddr::isv6怎么用?C++ SockAddr::isv6使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SockAddr
的用法示例。
在下文中一共展示了SockAddr::isv6方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CountIP
void ExternalIPCounter::CountIP( const SockAddr& addr, int weight ) {
// ignore anyone who claims our external IP is
// INADDR_ANY or on a local network
if(addr.is_addr_any() || is_ip_local(addr))
return;
// timestamp the first time we get a vote
if(! _HeatStarted)
_HeatStarted = time(NULL);
// attempt to insert this vote
std::pair<candidate_map::iterator, bool> inserted = _map.insert(std::make_pair(addr, weight));
// if the new IP wasn't inserted, it's already in there
// increase the vote counter
if (!inserted.second)
inserted.first->second += weight;
// if the IP vout count exceeds the current leader, replace it
if(addr.isv4() && (_winnerV4 == _map.end() || inserted.first->second > _winnerV4->second))
_winnerV4 = inserted.first;
if(addr.isv6() && (_winnerV6 == _map.end() || inserted.first->second > _winnerV6->second))
_winnerV6 = inserted.first;
_TotalVotes += weight;
Rotate();
}