#ifndef Datenbank_H
#define Datenbank_H

#include <sql.h>
#include <Text.h>
#include <Array.h>
#include <InitDatei.h>

using namespace Framework;
using namespace sql;

namespace Admin_Recht
{
    const int NSStarten = 45;
    const int NSBeenden = 46;
    const int NSPausieren = 47;
    const int NSMCChange = 48;
}

class NSDatenbank : public virtual ReferenceCounter
{
private:
    Datenbank *datenbank;
    CRITICAL_SECTION cs;

public:
    // Konstruktor
    NSDatenbank( InitDatei *zIni );
    // Destruktor
    ~NSDatenbank();
    // nicht constant
    void lock();
    void unlock();
    int istAdministrator( const char *name, const char *passwort );
    bool adminHatRecht( int id, int recht );
    bool proveKlient( int num, int sNum );
    Text *getKlientKey( int cId );
    void unregisterKlient( int num, int sNum );
    bool setServerStatus( int id, int status );
    bool setMaxClients( int id, int maxC );
    bool serverIstNichtPausiert( int id );
    // constant
    Text *getLetzterFehler() const;
};

#endif