#ifndef FILEREADER_HPP #define FILEREADER_HPP #include #include #include #include #include #include #include #include #include #include #include "cereal/gen/cpp/log.capnp.h" #include #include "channel.hpp" class FileReader : public QObject { Q_OBJECT public: FileReader(const QString& file_); void startRequest(const QUrl &url); ~FileReader(); virtual void readyRead(); void httpFinished(); virtual void done() {}; public slots: void process(); protected: QNetworkReply *reply; private: QNetworkAccessManager *qnam; QElapsedTimer timer; QString file; }; typedef QMultiMap Events; class LogReader : public FileReader { Q_OBJECT public: LogReader(const QString& file, Events *, QReadWriteLock* events_lock_, QMap > *eidx_); void readyRead(); void done() { is_done = true; }; bool is_done = false; private: bz_stream bStream; // backing store QByteArray raw; std::thread *parser; int event_offset; channel cdled; // global void mergeEvents(int dled); Events *events; QReadWriteLock* events_lock; QMap > *eidx; }; #endif