#include "EditorKlient.h" // Inhalt der EditorKlient Klasse aus EditorKlient.h // Konstruktor // k: Der zu verwendende Klient EditorKlient::EditorKlient( EditorKlientV *k ) { klient = k; ref = 1; } // Destruktor EditorKlient::~EditorKlient() { klient->release(); } // Initialisiert den Server // return: 1, falls erfolgreich // 2, falls bereits eine Sitzung existiert // 0, sonnst int EditorKlient::init() { klient->lock(); error = ""; Klient *k = klient->zKlient(); k->sendeEncrypted( "\x7", 1 ); char ret = 0; k->getNachrichtEncrypted( &ret, 1 ); if( ret == 1 ) { k->sendeEncrypted( "\xF", 1 ); k->getNachrichtEncrypted( &ret, 1 ); if( ret == 1 ) { k->sendeEncrypted( "\x0", 1 ); k->getNachrichtEncrypted( &ret, 1 ); } } if( ret == 3 ) { char l = 0; k->getNachrichtEncrypted( &l, 1 ); char *err = new char[ l + 1 ]; err[ l ] = 0; k->getNachrichtEncrypted( err, l ); error = err; delete[] err; ret = 0; } klient->unlock(); return ret; } // Gibt den Letzten Fehler zurück char *EditorKlient::getLastError() const { return error; } // Reference Counting EditorKlient *EditorKlient::getThis() { ref++; return this; } EditorKlient *EditorKlient::release() { if( !--ref ) delete this; return 0; }