#ifndef LTSKlient_H
#define LTSKlient_H

#include <Klient.h>
#include <Text.h>

using namespace Network;
using namespace Framework;

class LTSKlient
{
protected:
	SSLKlient *k;
	CRITICAL_SECTION cs;
	Text *fehler;
	Text *ip;
	int port;
	bool verbunden;
	bool eingeloggt;
	int ref;

public:
	// Konstruktor
	LTSKlient( const char *ip, int port );
	// Destruktor
	~LTSKlient();
	// nicht constant
	void lock();
	void unlock();
	bool verbinden();
	bool login( const char *name, const char *passwort );
	bool logout();
	int getStatus();
	bool stop();
	bool pause();
	bool fortsetzen();
	bool start();
	bool setMaxTasks( int maxC );
	bool beenden();
	bool terminieren();
	bool trenne();
	void abbruch();
	// constant
	bool istVerbunden() const;
	bool istEingeloggt() const;
	const char *getLetzterFehler() const;
	SSLKlient *zKlient() const;
	// Reference Counting
	virtual LTSKlient *getThis() = 0;
	virtual LTSKlient *release() = 0;
};

#endif