#ifndef SpielKlasse_H
#define SpielKlasse_H

#include "SSKlientV.h"
#include "SSDatenbankV.h"
#include "StatistikKlasse.h"
#include <Thread.h>

using namespace Framework;

class SpielKlasse
{
private:

public:
	virtual ~SpielKlasse()
	{
	}
	// nicht constant
	virtual void setPSQLK( SSDatenbankV *psqldb ) = 0;
	virtual void setSpielId( int id ) = 0;
    virtual void setKarteId( int karteId ) = 0;
    virtual void setTempPfad( char *pfad ) = 0;
	virtual void setAccounts( int anzahl, Array< int > *zAccounts ) = 0;
	virtual void setKlients( int anzahl, RCArray< SSKlientV > *zKlients ) = 0;
	virtual void setSpielerNummern( int anzahl, Array< int > *spielerNummern ) = 0;
	virtual void klientOffline( int accountId ) = 0;
	virtual void klientOnline( int accountId, SSKlientV *zKlient ) = 0;
	virtual void nachricht( int accountId, int len, char *bytes ) = 0;
	virtual void run() = 0;
	// constant
	virtual StatistikV *getStatistik() const = 0;
	// Reference Counting 
	virtual SpielKlasse *getThis() = 0;
	virtual SpielKlasse *release() = 0;
};

#endif