]> sigrok.org Git - pulseview.git/blobdiff - pv/storesession.h
Reimplement file save using the srzip output module.
[pulseview.git] / pv / storesession.h
index 5ef92a33f49d9df39b88bf66d20d9c92a3e9f4f0..d365730e5217adc3cb352a30770cc346884d8136 100644 (file)
 
 #include <stdint.h>
 
+#include <atomic>
+#include <mutex>
 #include <string>
-
-#include <boost/thread.hpp>
+#include <thread>
 
 #include <QObject>
 
+namespace sigrok {
+class Output;
+}
+
 namespace pv {
 
 class SigSession;
@@ -50,7 +55,7 @@ public:
 
        ~StoreSession();
 
-       std::pair<uint64_t, uint64_t> progress() const;
+       std::pair<int, int> progress() const;
 
        const QString& error() const;
 
@@ -61,20 +66,24 @@ public:
        void cancel();
 
 private:
-       void store_proc(boost::shared_ptr<pv::data::LogicSnapshot> snapshot);
+       void store_proc(std::shared_ptr<pv::data::LogicSnapshot> snapshot);
 
-signals:
+Q_SIGNALS:
        void progress_updated();
 
 private:
        const std::string _file_name;
        const SigSession &_session;
 
-       boost::thread _thread;
+       std::shared_ptr<sigrok::Output> _output;
+
+       std::thread _thread;
+
+       std::atomic<bool> _interrupt;
+
+       std::atomic<int> _units_stored, _unit_count;
 
-       mutable boost::mutex _mutex;
-       uint64_t _units_stored;
-       uint64_t _unit_count;
+       mutable std::mutex _mutex;
        QString _error;
 };