66 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
This file is part of Telegram Desktop,
 | 
						|
the official desktop application for the Telegram messaging service.
 | 
						|
 | 
						|
For license and copyright information please follow this link:
 | 
						|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
 | 
						|
*/
 | 
						|
#pragma once
 | 
						|
 | 
						|
namespace MTP {
 | 
						|
class Instance;
 | 
						|
} // namespace MTP
 | 
						|
 | 
						|
namespace Core {
 | 
						|
 | 
						|
#ifndef TDESKTOP_DISABLE_AUTOUPDATE
 | 
						|
 | 
						|
class Updater;
 | 
						|
 | 
						|
class UpdateChecker {
 | 
						|
public:
 | 
						|
	enum class State {
 | 
						|
		None,
 | 
						|
		Download,
 | 
						|
		Ready,
 | 
						|
	};
 | 
						|
	struct Progress {
 | 
						|
		int64 already;
 | 
						|
		int64 size;
 | 
						|
	};
 | 
						|
 | 
						|
	UpdateChecker();
 | 
						|
 | 
						|
	rpl::producer<> checking() const;
 | 
						|
	rpl::producer<> isLatest() const;
 | 
						|
	rpl::producer<Progress> progress() const;
 | 
						|
	rpl::producer<> failed() const;
 | 
						|
	rpl::producer<> ready() const;
 | 
						|
 | 
						|
	void start(bool forceWait = false);
 | 
						|
	void stop();
 | 
						|
	void test();
 | 
						|
 | 
						|
	void setMtproto(const QPointer<MTP::Instance> &mtproto);
 | 
						|
 | 
						|
	State state() const;
 | 
						|
	int already() const;
 | 
						|
	int size() const;
 | 
						|
 | 
						|
private:
 | 
						|
	const std::shared_ptr<Updater> _updater;
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
bool checkReadyUpdate();
 | 
						|
 | 
						|
#else // TDESKTOP_DISABLE_AUTOUPDATE
 | 
						|
class UpdateChecker {
 | 
						|
};
 | 
						|
 | 
						|
#endif // TDESKTOP_DISABLE_AUTOUPDATE
 | 
						|
 | 
						|
void UpdateApplication();
 | 
						|
QString countBetaVersionSignature(uint64 version);
 | 
						|
 | 
						|
} // namespace Core
 |