in analyzers/src/watch/nc_windows/statistics_window.cpp [137:172]
void StatisticsWindow::update(const ProtocolStatistic& d)
{
_statistic = d;
if(_statistic.empty() || _window == nullptr)
{
return;
}
unsigned int line = STATISTICS::FIRST_OPERATION_LINE;
for(unsigned int i = STATISTICS::DEFAULT_GROUP; i <= _activeProtocol->getGroups(); i++)
{
std::size_t m = 0; // sum of all counters
for(std::size_t tmp = _activeProtocol->getGroupBegin(i); tmp < _activeProtocol->getGroupBegin(i + 1); tmp++)
{
m += _statistic[tmp];
}
if(canWrite(line))
{
mvwprintw(_window, line - (_scrollOffset.at(_activeProtocol)), FIRST_CHAR_POS + 25, "%d", m);
}
line++;
for(unsigned int j = _activeProtocol->getGroupBegin(i); j < _activeProtocol->getGroupBegin(i + 1); j++)
{
if(canWrite(line))
{
mvwprintw(_window, line - _scrollOffset.at(_activeProtocol), COUNTERS_POS, "%lu ", _statistic[j]);
mvwprintw(_window, line - _scrollOffset.at(_activeProtocol), PERSENT_POS, "%-3.2f%% ",
m > 0 ? static_cast<double>(_statistic[j]) / static_cast<double>(m) * 100.0 : 0.0);
}
line++;
}
line++;
}
wrefresh(_window);
}