|
@@ -6,11 +6,36 @@
|
|
|
#include <Bild.h>
|
|
|
#include <Punkt.h>
|
|
|
|
|
|
+KartenLeser KartenLeser::instance;
|
|
|
+
|
|
|
+KartenLeser *KartenLeser::getInstance()
|
|
|
+{
|
|
|
+ return instance.getThis();
|
|
|
+}
|
|
|
+
|
|
|
+void KartenLeser::cleanUp()
|
|
|
+{
|
|
|
+ instance = KartenLeser();
|
|
|
+}
|
|
|
+
|
|
|
+KartenLeser &KartenLeser::operator=( const KartenLeser &l )
|
|
|
+{
|
|
|
+ if( kartenClient )
|
|
|
+ kartenClient->release();
|
|
|
+ letzterFehler->release();
|
|
|
+ letzterFehler = new Text( l.letzterFehler->getText() );
|
|
|
+ kartenClient = 0;
|
|
|
+ karteId = 0;
|
|
|
+ ref = 1;
|
|
|
+ return *this;
|
|
|
+}
|
|
|
+
|
|
|
// Inhalt der KartenLeser Klasse aus KartenLeser.h
|
|
|
// Konstruktor
|
|
|
KartenLeser::KartenLeser()
|
|
|
{
|
|
|
letzterFehler = new Text( "" );
|
|
|
+ kartenClient = 0;
|
|
|
karteId = 0;
|
|
|
ref = 1;
|
|
|
}
|
|
@@ -18,22 +43,39 @@ KartenLeser::KartenLeser()
|
|
|
// Destruktor
|
|
|
KartenLeser::~KartenLeser()
|
|
|
{
|
|
|
+ if( kartenClient )
|
|
|
+ kartenClient->release();
|
|
|
letzterFehler->release();
|
|
|
}
|
|
|
|
|
|
// nicht constant
|
|
|
void KartenLeser::setKarteId( int karteId )
|
|
|
{
|
|
|
+ cs.lock();
|
|
|
this->karteId = karteId;
|
|
|
+ if( kartenClient )
|
|
|
+ kartenClient->release();
|
|
|
+ kartenClient = infoClient->createKartenServerClient( karteId );
|
|
|
+ cs.unlock();
|
|
|
+}
|
|
|
+
|
|
|
+void KartenLeser::lock()
|
|
|
+{
|
|
|
+ cs.lock();
|
|
|
+}
|
|
|
+
|
|
|
+void KartenLeser::unlock()
|
|
|
+{
|
|
|
+ cs.unlock();
|
|
|
}
|
|
|
|
|
|
// constant
|
|
|
-Bild *KartenLeser::getKartenTitelBild( Schrift *zSchrift ) const
|
|
|
+Bild *KartenLeser::getKartenTitelBild( Schrift *zSchrift )
|
|
|
{
|
|
|
bool ok = 1;
|
|
|
int port = 0;
|
|
|
Text ip;
|
|
|
- KSGClient::KartenServerClient *kartenClient = infoClient->createKartenServerClient( karteId );
|
|
|
+ cs.lock();
|
|
|
if( !kartenClient->verbinde() )
|
|
|
{
|
|
|
letzterFehler->setText( kartenClient->getLetzterFehler() );
|
|
@@ -44,8 +86,8 @@ Bild *KartenLeser::getKartenTitelBild( Schrift *zSchrift ) const
|
|
|
letzterFehler->setText( kartenClient->getLetzterFehler() );
|
|
|
ok = 0;
|
|
|
}
|
|
|
- kartenClient->trenne( 1 );
|
|
|
- kartenClient->release();
|
|
|
+ kartenClient->trenne( 0 );
|
|
|
+ cs.unlock();
|
|
|
Bild *ret = 0;
|
|
|
if( ok )
|
|
|
{
|
|
@@ -72,11 +114,11 @@ Bild *KartenLeser::getKartenTitelBild( Schrift *zSchrift ) const
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-Bild *KartenLeser::getKartenVorschauBild() const
|
|
|
+Bild *KartenLeser::getKartenVorschauBild()
|
|
|
{
|
|
|
int port = 0;
|
|
|
Text ip;
|
|
|
- KSGClient::KartenServerClient *kartenClient = infoClient->createKartenServerClient( karteId );
|
|
|
+ cs.lock();
|
|
|
if( !kartenClient->verbinde() )
|
|
|
{
|
|
|
letzterFehler->setText( kartenClient->getLetzterFehler() );
|
|
@@ -87,8 +129,8 @@ Bild *KartenLeser::getKartenVorschauBild() const
|
|
|
letzterFehler->setText( kartenClient->getLetzterFehler() );
|
|
|
return 0;
|
|
|
}
|
|
|
- kartenClient->trenne( 1 );
|
|
|
- kartenClient->release();
|
|
|
+ kartenClient->trenne( 0 );
|
|
|
+ cs.unlock();
|
|
|
Text *pfad = getKartePfad();
|
|
|
pfad->append( "minimap.ltdb" );
|
|
|
Bild *ret = 0;
|
|
@@ -102,11 +144,11 @@ Bild *KartenLeser::getKartenVorschauBild() const
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-Bild *KartenLeser::getLadeBild() const
|
|
|
+Bild *KartenLeser::getLadeBild()
|
|
|
{
|
|
|
int port = 0;
|
|
|
Text ip;
|
|
|
- KSGClient::KartenServerClient *kartenClient = infoClient->createKartenServerClient( karteId );
|
|
|
+ cs.lock();
|
|
|
if( !kartenClient->verbinde() )
|
|
|
{
|
|
|
letzterFehler->setText( kartenClient->getLetzterFehler() );
|
|
@@ -117,8 +159,8 @@ Bild *KartenLeser::getLadeBild() const
|
|
|
letzterFehler->setText( kartenClient->getLetzterFehler() );
|
|
|
return 0;
|
|
|
}
|
|
|
- kartenClient->trenne( 1 );
|
|
|
- kartenClient->release();
|
|
|
+ kartenClient->trenne( 0 );
|
|
|
+ cs.unlock();
|
|
|
Text *pfad = getKartePfad();
|
|
|
pfad->append( "ladebild.ltdb" );
|
|
|
Bild *ret = 0;
|
|
@@ -132,11 +174,11 @@ Bild *KartenLeser::getLadeBild() const
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-bool KartenLeser::getKartenBeschreibung() const
|
|
|
+bool KartenLeser::getKartenBeschreibung()
|
|
|
{
|
|
|
int port = 0;
|
|
|
Text ip;
|
|
|
- KSGClient::KartenServerClient *kartenClient = infoClient->createKartenServerClient( karteId );
|
|
|
+ cs.lock();
|
|
|
if( !kartenClient->verbinde() )
|
|
|
{
|
|
|
letzterFehler->setText( kartenClient->getLetzterFehler() );
|
|
@@ -147,8 +189,8 @@ bool KartenLeser::getKartenBeschreibung() const
|
|
|
letzterFehler->setText( kartenClient->getLetzterFehler() );
|
|
|
return 0;
|
|
|
}
|
|
|
- kartenClient->trenne( 1 );
|
|
|
- kartenClient->release();
|
|
|
+ kartenClient->trenne( 0 );
|
|
|
+ cs.unlock();
|
|
|
return 1;
|
|
|
}
|
|
|
|