#pragma once

#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;
};