});
-
+ g_lua.writeFunction("topBandwidth", [](unsigned int top) {
+ auto res = g_rings.getTopBandwidth(top);
+ boost::format fmt("%7d %s\n");
+ for(const auto& l : res) {
+ g_outputBuffer += (fmt % l.first % l.second.toString()).str();
+ }
+ });
}
return s.size();
}
-vector<pair<unsigned int,ComboAddress> > Rings::getTopBandwidth(int numentries)
+vector<pair<unsigned int,ComboAddress> > Rings::getTopBandwidth(unsigned int numentries)
{
map<ComboAddress, unsigned int, ComboAddress::addressOnlyLessThan> counts;
{
ret_t ret;
for(const auto& p : counts)
ret.push_back({p.second, p.first});
+ numentries = ret.size() < numentries ? ret.size() : numentries;
partial_sort(ret.begin(), ret.begin()+numentries, ret.end(), [](const ret_t::value_type&a, const ret_t::value_type&b)
{
return(b.second < a.second);
std::mutex respMutex;
pthread_rwlock_t queryLock;
- vector<pair<unsigned int, ComboAddress> > getTopBandwidth(int numentries);
+ vector<pair<unsigned int, ComboAddress> > getTopBandwidth(unsigned int numentries);
unsigned int numDistinctRequestors();
};