summaryrefslogtreecommitdiffstats
path: root/mmc_updater/src/UpdateDialogAscii.h
blob: 138194c5dcebe191d915928e33d30d77e45d3356 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once

#include "UpdateDialog.h"

#include <fstream>
#include <thread>
#include <mutex>

/** A fallback auto-update progress 'dialog' for use on
  * Linux when the GTK UI cannot be loaded.
  *
  * The 'dialog' consists of an xterm tailing the contents
  * of a file, into which progress messages are written.
  */
class UpdateDialogAscii : public UpdateDialog
{
	public:
		// implements UpdateDialog
		virtual void init(int argc, char** argv);
		virtual void exec();
		virtual void quit();

		// implements UpdateObserver
		virtual void updateError(const std::string& errorMessage);
		virtual void updateProgress(int percentage);
		virtual void updateFinished();

	private:
		std::mutex m_mutex;
		std::ofstream m_output;
};