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