version 0.0.1
This commit is contained in:
55
source/Threads/StatisticsThread.cpp
Normal file
55
source/Threads/StatisticsThread.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
#include "Threads/StatisticsThread.hpp"
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
//-------------------------- StatisticsThread -----------------------------
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
rte_ring* StatisticsThread::_s_queue[16];
|
||||
|
||||
int StatisticsThread::s_run(void* thread_vptr) {
|
||||
StatisticsThread* thread = static_cast<StatisticsThread*>(thread_vptr);
|
||||
thread->run();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void StatisticsThread::run() {
|
||||
// Check for new statistics in each rte_ring
|
||||
while (_quit != false) {
|
||||
for (rte_ring* ring : _s_queue) {
|
||||
// Get stats from queue and update them
|
||||
Stats* out;
|
||||
rte_ring_dequeue(ring, (void**)&out);
|
||||
|
||||
if (true) { // \TODO test if empty
|
||||
update_statistics(out);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void StatisticsThread::enqueue_statistics(int& id, Stats* new_stats) {
|
||||
// enqueue statistics
|
||||
rte_ring* ring = _s_queue[id];
|
||||
rte_ring_enqueue(ring, new_stats);
|
||||
}
|
||||
|
||||
Stats* StatisticsThread::_s_stats;
|
||||
|
||||
void StatisticsThread::update_statistics(Stats* new_stats) {
|
||||
//_s_stats += new_stats;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
//-------------------------- Stats ----------------------------------------
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
Stats* Stats::operator+=(const Stats* new_stats) {
|
||||
this->attacks += new_stats->attacks;
|
||||
this->bytes += new_stats->bytes;
|
||||
this->dropped += new_stats->dropped;
|
||||
this->packets += new_stats->packets;
|
||||
this->work_time += new_stats->work_time;
|
||||
this->syn_level += new_stats->syn_level;
|
||||
|
||||
return this;
|
||||
}
|
||||
Reference in New Issue
Block a user