1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /**
- * Class for processing PCAPs to collect statistical data.
- */
- #ifndef CPP_PCAPREADER_MAIN_H
- #define CPP_PCAPREADER_MAIN_H
- #include <algorithm>
- #include <iomanip>
- #include <tins/tins.h>
- #include <iostream>
- #include <pybind11/pybind11.h>
- #include <time.h>
- #include <stdio.h>
- #include <sys/stat.h>
- #include <unordered_map>
- #include "statistics.h"
- #include "statistics_db.h"
- namespace py = pybind11;
- using namespace Tins;
- class pcap_processor {
- public:
- /*
- * Class constructor
- */
- pcap_processor(std::string path, std::string extraTests, std::string resource_path, std::string database_path);
- /*
- * Attributes
- */
- statistics stats;
- std::string filePath;
- std::string databasePath;
- std::string resourcePath;
- bool hasUnrecognized;
- std::chrono::duration<int, std::micro> timeInterval;
- /*
- * Methods
- */
- inline bool file_exists(const std::string &filePath);
- void process_packets(const Packet &pkt);
- long double get_timestamp_mu_sec(const int after_packet_number);
- std::string merge_pcaps(const std::string pcap_path);
- bool read_pcap_info(const std::string &filePath, std::size_t &totalPakets);
- void collect_statistics(py::list& intervals);
- void write_to_database(std::string database_path, const py::list& intervals, bool del);
- void write_new_interval_statistics(std::string database_path, const py::list& intervals);
- static int get_db_version() { return statistics_db::DB_VERSION; }
- };
- #endif //CPP_PCAPREADER_MAIN_H
|