statistics_db.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /**
  2. *
  3. */
  4. #ifndef CPP_PCAPREADER_STATISTICSDB_H
  5. #define CPP_PCAPREADER_STATISTICSDB_H
  6. // Aidmar
  7. #include <iostream>
  8. #include <memory>
  9. #include <string>
  10. #include "statistics.h"
  11. #include <SQLiteCpp/SQLiteCpp.h>
  12. class statistics_db {
  13. public:
  14. /*
  15. * Constructor: Creates new database / Opens existing database
  16. */
  17. statistics_db(std::string database_path);
  18. /*
  19. * Methods for writing values into database
  20. */
  21. void writeStatisticsIP(std::unordered_map<std::string, entry_ipStat> ipStatistics);
  22. void writeStatisticsTTL(std::unordered_map<ipAddress_ttl, int> ttlDistribution);
  23. void writeStatisticsProtocols(std::unordered_map<ipAddress_protocol, int> protocolDistribution);
  24. void writeStatisticsPorts(std::unordered_map<ipAddress_inOut_port, int> portsStatistics);
  25. void writeStatisticsIpMac(std::unordered_map<std::string, std::string> IpMacStatistics);
  26. void writeStatisticsMss(std::unordered_map<std::string, int> mssStatistics);
  27. void writeStatisticsFile(int packetCount, float captureDuration, std::string timestampFirstPkt,
  28. std::string timestampLastPkt, float avgPacketRate, float avgPacketSize,
  29. float avgPacketsSentPerHost, float avgBandwidthIn, float avgBandwidthOut);
  30. // Aidmar
  31. void writeStatisticsMss_dist(std::unordered_map<ipAddress_mss, int> mssDistribution);
  32. void writeStatisticsWin(std::unordered_map<ipAddress_win, int> winDistribution);
  33. void writeStatisticsFlow(std::unordered_map<flow, entry_flowStat> flowStatistics);
  34. private:
  35. // Pointer to the SQLite database
  36. std::unique_ptr<SQLite::Database> db;
  37. };
  38. #endif //CPP_PCAPREADER_STATISTICSDB_H