GlobalObjects
|
Objekte dieser Klasse dienen als Schnittstelle zwischen Base bzw. PrivateBase und Manager. Wird mit dem LocalThread in der Dokumentation auch als Client-Kommunikator bezeichnet, wenn NICHT der Server-Kommunikator (ServerThread) gemeint ist. Mehr ...
#include <GloClientThread.h>
Öffentliche Methoden | |
ClientThread (const std::string &rstrHostname, unsigned int uiPort, int iSecTimeOut) | |
~ClientThread () | |
virtual int | assignDBManager (OrderMsg *pOrderMsg) override |
virtual void | cancel () override |
const std::map< unsigned long, ClassInfo * > * | getSchemaMap () |
bool | Orderstop () const |
void | setOrderstop (bool bOrderstop=true) |
void | setSchemaMap (std::map< unsigned long, ClassInfo * > *pSchemaMap) |
Client * | tcpClient () |
bool | operator== (const ClientThread &rT) const |
bool | operator!= (const ClientThread &rT) const |
Öffentliche Methoden geerbt von glo::Communicator | |
Communicator () | |
virtual | ~Communicator () |
std::string | getClientName () const |
const std::string & | getClientNameAsRef () |
unsigned int | getCommunicatorID () const |
virtual void | setClientName (const std::string &rstrClientName) |
virtual void | setCommunicatorID (unsigned int uiID) |
virtual int | takeOverResult (OrderMsg *pOrderMsg) |
bool | operator== (const Communicator &rT) const |
bool | operator!= (const Communicator &rT) const |
Öffentliche Methoden geerbt von eut::RepeatingThread | |
RepeatingThread () | |
virtual | ~RepeatingThread () |
virtual void | finishBreak () |
int | getBreakCounter () |
bool | isInExclusiveAccess () const |
void | setExclusiveAccess () |
void | signalInput () |
virtual int | start () |
RepeatingThread::STATUS | status () const |
virtual void | takeABreak () |
bool | testCancel () |
void | unsetExclusiveAccess () |
void | waitForInput () |
Geschützte Methoden | |
void | deleteSchemaMap () |
virtual int | sendToDBManager (OrderMsg *pOrderMsg) const override |
Geschützte Methoden geerbt von glo::Communicator | |
virtual void | processServerMsg (OrderMsg *pOrderMsg) const |
virtual void | work () override |
Geschützte Methoden geerbt von eut::RepeatingThread | |
ORDER | getOrder () |
STATUS | getStatus () |
void | setStatus (STATUS eStatus) |
void | threadWork () |
void | toOrder (ORDER eOrder) |
Private Methoden | |
ClientThread () | |
ClientThread (const ClientThread &) | |
int | initTcpClient (const std::string &rstrHostname, unsigned int uiPort, int iSecTimeOut) |
ClientThread & | operator= (const ClientThread &) |
Private Attribute | |
bool | m_bOrderstop |
std::map< unsigned long, ClassInfo *, std::less< unsigned long > > * | m_pSchemaMap |
Client * | m_pTcpClient |
Weitere Geerbte Elemente | |
Öffentliche Typen geerbt von eut::RepeatingThread | |
enum | EuTHREADERROR { EuTHREAD_ERR_NO_THREAD = -10301 , EuTHREAD_ERR_THREAD_ALREADY_WORKING = -10302 , EuTHREAD_ERR_THREAD_BREAK_COUNT_LESS_THAN_ZERO = -10303 , EuTHREAD_ERR_UNKNOWN = -10400 } |
Fehlerbereich = -10301 bis -10400 Mehr ... | |
enum | ORDER { eUNDEFINED , eDO_WORK , eEXIT } |
enum | STATUS { eAT_THE_START , eWORKING , ePAUSING , eENDING , eCOMPLETED } |
Öffentliche Attribute geerbt von eut::RepeatingThread | |
std::string | m_strDebugInfo |
Geschützte Attribute geerbt von glo::Communicator | |
unsigned int | m_uiOrderCounter |
Objekte dieser Klasse dienen als Schnittstelle zwischen Base bzw. PrivateBase und Manager. Wird mit dem LocalThread in der Dokumentation auch als Client-Kommunikator bezeichnet, wenn NICHT der Server-Kommunikator (ServerThread) gemeint ist.
Gegenstelle ist über die TCP-Kommunikatoren der ServerThread.
Der ClientThread sendet Aufträge über seinen Client an den Manager und wartet bis der Auftrag ausgeführt wurde (oder auch nicht).
Der Manager (als Server) übergiebt den abgearbeiteten Auftrag über seinen korrespondierenden ServerThread an den ClientThread, welcher den Auftrag in hiesiege Auftragsliste gibt.
Objekte dieser Klasse sind notwendig, wenn die Base mit einem Servernamen oder einer IP-Adresse aufgerufen wird und der Manager als Server läuft.
Damit parallel auf die Datenbank zugegriffen werden kann, ist diese Klasse als Thread konzipiert (abgeleitet über Communicator von EuEndlessPThread).
|
private |
Der Standard-Konstruktor steht nicht zur Verfügung.
glo::ClientThread::ClientThread | ( | const std::string & | rstrHostname, |
unsigned int | uiPort, | ||
int | iSecTimeOut ) |
Konstruktor mit Parameterübergabe.
[in] | rstrHostname | Der Host- bzw, Servername oder die IP-Adresse (z.B. "192.165.0.1"). |
[in] | uiPort | Der Port, auf dem der Server ansprechbar ist. |
[in] | iSecTimeOut | Die max. Wartezeit auf den Server. |
eut::ErrorNException | Bei einem Fehler wird eine Exception geworfen. |
glo::ClientThread::~ClientThread | ( | ) |
Destruktor.
|
private |
Der Copy-Konstruktor steht niccht zur Verfügung.
|
overridevirtual |
Versendet einen Auftrag an den Manager und wartet auf Antwort.
[in] | pOrderMsg | Der Auftragan für den Manager. |
Erneute Implementation von glo::Communicator.
|
overridevirtual |
Räumt den Speicher auf und beendet eine vorhandene Verbindung zu einem Server, bevor der Thread beendet wird. Wird im besitzenden PrivateBase vor beenden des Threads aufgerufen.
Da virtual, kann diese Methode nicht im Destructor aufgerufen werden.
Erneute Implementation von eut::RepeatingThread.
|
protected |
Entfernt die Liste mit den Klasseninformations-Objekten aus dem Speicher.
const std::map< unsigned long, ClassInfo * > * glo::ClientThread::getSchemaMap | ( | ) |
Liefert einen Zeiger auf die eigenen Klasseninformations-Objekte.
|
private |
Initialisiert den TCP-Client, welcher mit einm TCP-Server kommuniziert.
[in] | rstrHostname | Der Host- bzw, Servername oder die IP-Adresse (z.B. "192.165.0.1"). |
[in] | uiPort | Der Port, auf dem der Server ansprechbar ist. |
[in] | iSecTimeOut | Die max. Wartezeit auf den Server. |
bool glo::ClientThread::operator!= | ( | const ClientThread & | rT | ) | const |
Vergleichsoperator.
[in] | rT | Das mit diesem zu vergleichende Objekt. |
|
private |
Der Zuweisungsoperator steht nicht zur Verfügung.
bool glo::ClientThread::operator== | ( | const ClientThread & | rT | ) | const |
Vergleichsoperator.
[in] | rT | Das mit diesem zu vergleichende Objekt. |
bool glo::ClientThread::Orderstop | ( | ) | const |
Liefert, ob ein Auftragsannahmestop vorliegt.
|
overrideprotectedvirtual |
Versendet einen Auftrag (bekommen über ClientThread::assignDBManager() ) über seinen TCP-Client an den Manager.
[in] | pOrderMsg | Der Auftragan für den Manager. |
Implementiert glo::Communicator.
void glo::ClientThread::setOrderstop | ( | bool | bOrderstop = true | ) |
Setzt den Auftragsannahmestop.
[in] | bOrderstop | Wenn true, werden keine Aufträge mehr angenommen. |
void glo::ClientThread::setSchemaMap | ( | std::map< unsigned long, ClassInfo * > * | pSchemaMap | ) |
Übernimmt die Klasseninformations-Objekte, nachdem die aktuellen aus dem Speicher entfernt wurden.
[in] | pSchemaMap | Die neuen Klasseninformations-Objekte. |
Client * glo::ClientThread::tcpClient | ( | ) |
Liefert m_pTcpClient.
|
private |
Wenn true, werden keine Aufträge mehr angenommen.
|
private |
Die Klasseninformationen des zugrundeliegenden Schemas.
|
private |
Der TCP-Client, welcher mit einm TCP-Server kommuniziert.