#ifndef KartenLeser_H
#define KartenLeser_H

#include <Klient.h>
#include <Bild.h>
#include <Schrift.h>
#include <KSGNetwork.h>

using namespace Framework;

class KartenLeser
{
private:
    Text *letzterFehler;
    KSGClient::KartenServerClient *kartenClient;
	int karteId;
    Critical cs;
	int ref;

    static KartenLeser *instance;
    // Konstruktor
    KartenLeser();

    KartenLeser &operator=( const KartenLeser &l );
public:
    static KartenLeser *getInstance();
    static void cleanUp();

	// Destruktor
	~KartenLeser();
	// nicht constant
	void setKarteId( int karteId );
    void lock();
    void unlock();
	// constant
	Bild *getKartenTitelBild( Schrift *zSchrift );
	Bild *getKartenVorschauBild();
	Bild *getLadeBild();
	bool getKartenBeschreibung();
	int getSpielId() const;
	int getKarteId() const;
	Text *getSpielName() const;
	Text *getSpielPfad() const;
	Text *getKarteName() const;
	Text *getKartePfad() const;
	char *getLetzterFehler() const;
	// Reference Counting
	KartenLeser *getThis();
	KartenLeser *release();
};

#endif