#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;
~StoreSession();
- std::pair<uint64_t, uint64_t> progress() const;
+ std::pair<int, int> progress() const;
const QString& error() const;
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;
};