/** * Class writing the statistics to the database. */ #ifndef CPP_PCAPREADER_STATISTICSDB_H #define CPP_PCAPREADER_STATISTICSDB_H #include #include #include #include "statistics.h" #include class statistics_db { public: /* * Constructor: Creates new database / Opens existing database */ statistics_db(std::string database_path); /* * Database version: Increment number on every change in the C++ code! */ static const int DB_VERSION = 2; /* * Methods for writing values into database */ void writeStatisticsIP(std::unordered_map ipStatistics); void writeStatisticsTTL(std::unordered_map ttlDistribution); void writeStatisticsMSS(std::unordered_map mssDistribution); void writeStatisticsToS(std::unordered_map tosDistribution); void writeStatisticsWin(std::unordered_map winDistribution); void writeStatisticsProtocols(std::unordered_map protocolDistribution); void writeStatisticsPorts(std::unordered_map portsStatistics); void writeStatisticsIpMac(std::unordered_map IpMacStatistics); void writeStatisticsFile(int packetCount, float captureDuration, std::string timestampFirstPkt, std::string timestampLastPkt, float avgPacketRate, float avgPacketSize, float avgPacketsSentPerHost, float avgBandwidthIn, float avgBandwidthOut); void writeStatisticsConv(std::unordered_map convStatistics); void writeStatisticsInterval(std::unordered_map intervalStatistics); void writeDbVersion(); void writeStatisticsUntrackedPDUs(std::unordered_map untracked_PDUs); private: // Pointer to the SQLite database std::unique_ptr db; }; #endif //CPP_PCAPREADER_STATISTICSDB_H