#include "FactoryClient.h" using namespace Network; FactoryClient::FactoryClient() { client = 0; connected = 0; reader = 0; } FactoryClient::~FactoryClient() { if( client ) disconnect(); } bool FactoryClient::connect( Text ip, short port, int accountId, Text secret ) { if( client ) disconnect(); client = new SSLKlient(); if( !client->verbinde( port, ip ) ) return false; connected = 1; if( !client->sende( "\1", 1 ) ) return false; if( !client->sende( (char *)&accountId, 4 ) ) return false; unsigned char len = (unsigned char)secret.getLength(); if( !client->sende( (char *)&len, 1 ) ) return false; if( !client->sende( secret, len ) ) return false; char result = 0; if( !client->getNachricht( &result, 1 ) || result != 1 ) return false; reader = new NetworkReader( client ); return true; } void FactoryClient::disconnect() { if( client ) { if( connected ) client->sende( "\2", 1 ); delete reader; client->trenne(); client->release(); client = 0; } } NetworkReader *FactoryClient::getNextMessage() { if( !client ) return 0; if( !client->hatNachricht( 0 ) ) return 0; char type = 0; if( !client->getNachricht( &type, 1 ) ) return 0; if( type == 1 ) { client->trenne(); client->release(); client = 0; return 0; } if( !client->hatNachricht( 0 ) ) return 0; return reader; }