void RealtimeModel::InsertPacket(PacketInfoEx *pi) { // One day is 86400 seconds, each second 4 bytes, which sums up to be 337.5KB. // 10 processed with tx/rx rate: 6.75MB // Insert a RtModelItem if PUID not Exist Lock(); if( _items.count(pi->puid) == 0 ) { _items[pi->puid] = RtModelItem(); } Unlock(); // Fill Vectors Fill(); // Add the Packet's Size to Vectors Lock(); RtModelItem &item = _items[pi->puid]; RtModelItem &itemAll = _items[PROCESS_ALL]; if( pi->dir == DIR_UP ) { item.rate_tx_1s.back() += pi->size; item.rate_tx_10s.back() += pi->size; item.rate_tx_60s.back() += pi->size; itemAll.rate_tx_1s.back() += pi->size; itemAll.rate_tx_10s.back() += pi->size; itemAll.rate_tx_60s.back() += pi->size; } else if( pi->dir == DIR_DOWN ) { item.rate_rx_1s.back() += pi->size; item.rate_rx_10s.back() += pi->size; item.rate_rx_60s.back() += pi->size; itemAll.rate_rx_1s.back() += pi->size; itemAll.rate_rx_10s.back() += pi->size; itemAll.rate_rx_60s.back() += pi->size; } Unlock(); }
void RealtimeModel::InsertPacket(PacketInfoEx *pi) { // Each process uses about 4k * 6 * 4B = 96 KB memoory // 100 processes use about 9.6 MB // Insert a RtModelItem if PUID not Exist Lock(); if (_items.count(pi->puid) == 0 ) { _items[pi->puid] = RtModelItem(); } Unlock(); // Fill Vectors Fill(); // Add the Packet's Size to Vectors Lock(); RtModelItem &item = _items[pi->puid]; RtModelItem &itemAll = _items[PROCESS_ALL]; if (pi->dir == DIR_UP ) { item.rate_tx_1s.back() += pi->size; item.rate_tx_10s.back() += pi->size; item.rate_tx_60s.back() += pi->size; itemAll.rate_tx_1s.back() += pi->size; itemAll.rate_tx_10s.back() += pi->size; itemAll.rate_tx_60s.back() += pi->size; } else if (pi->dir == DIR_DOWN ) { item.rate_rx_1s.back() += pi->size; item.rate_rx_10s.back() += pi->size; item.rate_rx_60s.back() += pi->size; itemAll.rate_rx_1s.back() += pi->size; itemAll.rate_rx_10s.back() += pi->size; itemAll.rate_rx_60s.back() += pi->size; } Unlock(); }
RealtimeModel::RealtimeModel() { _startTime = (int)time(0); _items[PROCESS_ALL] = RtModelItem(); }