#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 : private Thread
{
private:
    HMODULE updateDll;
	UpdaterV *updater;
	FBalken *fortschritt;
	TextFeld *status;
	Knopf *play;
	bool *close;
	int ret;
	int ref;

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;
	// Reference Counting
	Patcher *getThis();
	Patcher *release();
};

#endif