#ifndef Patcher_H
#define Patcher_H

#include <Update.h>
#include <Thread.h>
#include <Textfeld.h>
#include <Knopf.h>
#include <Thread.h>
#include <KSGNetwork.h>

using namespace Framework;

class Patcher : public Thread
{
private:
    HMODULE updateDll;
	UpdaterV *updater;
	FBalken *fortschritt;
	TextFeld *status;
	Knopf *play;
	bool *close;
	int ret;

public:
	// Konstruktor
	Patcher( FBalken *fortschritt, TextFeld *status, Knopf *play, bool *close, KSGClient::PatchServerClient *client );
	// Destruktor
	~Patcher();
	// nicht constant
	void startPatch();
	void thread();
	// constant
	bool läuftPatch() const;
	int getReturn() const;
	void warteAufPatch( int zeit );
	int getDownload() const;
    // löscht das objekt wenn es nicht mehr gebraucht wird und beendet den Thread
    Thread *release() override;
};

#endif