#ifndef Statistik_H
#define Statistik_H

#include "StatistikKlasse.h"
#include "Spieler.h"
#include "SSDatenbankV.h"
#include "GesamtSpielerStatistik.h"
#include "GesamtTeamStatistik.h"
#include "RundenRundenStatistik.h"

class Statistik : public StatistikV
{
private:
	int spielId;
	int karteId;
	SSDatenbankV *db;
	int spielerAnzahl;
	RCArray< Spieler > *spieler;
	bool erstellt;
	Array< bool > *sOnline;
	Array< bool > *sBereit;
	RCArray< GesamtSpielerStatistik > *gss;
	RCArray< GesamtTeamStatistik > *gts;
	RCArray< RundenRundenStatistik > *rrs;
	RCArray< Text > *teamNamen;
	Array< int > *gewinnerTeam;
	Array< int > *rundenDauer;
	RCArray< Bild > *rundenBild;
	int ref;

	void sendeStatistik( int index );

public:
	// Konstruktor
	Statistik();
	// Destruktor
	~Statistik();
	// nicht constant
	void setSpielId( int id );
	void setKarteId( int id );
	void setPSQLDB( SSDatenbankV *db );
	void setTeamNamen( RCArray< Text > *namen );
	void rundenEnde( int team, int dauer, Bild *b );
	void setSpieler( int anzahl, RCArray< Spieler > *zSpieler );
	virtual void klientOffline( int accountId );
	virtual void statistikAnfrage( int accountId, short len, char *bytes );
	virtual void run();
	// constant

	// Reference Counting
	virtual StatistikV *getThis();
	virtual StatistikV *release();
};

#endif