GlobalObjects
Lade ...
Suche ...
Keine Treffer
glo::LocalThread Klassenreferenz

Dient als Schnittstelle zwischen Base bzw. PrivateBase und Manager. Wird mit dem ClientThread in der Dokumentation auch als Client-Kommunikator bezeichnet, wenn NICHT der Server-Kommunikator (ServerThread) gemeint ist. Mehr ...

#include <GloLocalThread.h>

Klassendiagramm für glo::LocalThread:

Öffentliche Methoden

 LocalThread (const std::string &rstrSchemaPath, const std::vector< std::string > &rAllowedSchemes)
 
 ~LocalThread ()
 
virtual int assignDBManager (OrderMsg *pOrderMsg) override
 
virtual void cancel () override
 
bool operator== (const LocalThread &rT) const
 
bool operator!= (const LocalThread &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

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

 LocalThread ()
 
 LocalThread (const LocalThread &)
 
LocalThreadoperator= (const LocalThread &)
 

Private Attribute

Managerm_pDBManager
 

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
 

Ausführliche Beschreibung

Dient als Schnittstelle zwischen Base bzw. PrivateBase und Manager. Wird mit dem ClientThread in der Dokumentation auch als Client-Kommunikator bezeichnet, wenn NICHT der Server-Kommunikator (ServerThread) gemeint ist.

Der LocalThread sendet Aufträge an den Manager und wartet bis der Auftrag ausgeführt wurde (oder auch nicht).

Der Manager übergiebt den abgearbeiteten Auftrag als Antwort an die hiesiege Auftrags- und Antwort-Queue. Objekte dieser Klasse sind notwendig, wenn die Base mit "LOCAL" aufgerufen wird und der Manager somit nicht als Server, sondern direkt zur Verfügungs steht.

Damit parallel auf die Datenbank zugegriffen werden kann, ist diese Klasse als Thread konzipiert (abgeleitet über Communicator von EuEndlessPThread).

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ LocalThread() [1/3]

glo::LocalThread::LocalThread ( )
private

Der Standard-Konstruktor steht nicht zur Verfügung.

◆ LocalThread() [2/3]

glo::LocalThread::LocalThread ( const std::string & rstrSchemaPath,
const std::vector< std::string > & rAllowedSchemes )

Konstruktor mit Parameterübergabe.

Parameter
[in]rstrSchemaPathDer vollständiger Pfadname (z.B. "C:/Pfad/"), in dem die Schemadateien liegen.
[in]rAllowedSchemesDie erlaubten Schemata (deren Bezeichnungen).
Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.

◆ ~LocalThread()

glo::LocalThread::~LocalThread ( )

Destruktor.

◆ LocalThread() [3/3]

glo::LocalThread::LocalThread ( const LocalThread & )
private

Der Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ assignDBManager()

virtual int glo::LocalThread::assignDBManager ( OrderMsg * pOrderMsg)
overridevirtual

Übergibt einen Auftrag an den Manager und wartet auf Antwort.

Parameter
[in]pOrderMsgDer Auftragan für den Manager.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

Erneute Implementation von glo::Communicator.

◆ cancel()

virtual void glo::LocalThread::cancel ( )
overridevirtual

Räumt den Speicher auf, bevor der Thread beendet wird. Wird im besitzenden PrivateBase vor beenden des Threads aufgerufen.

Da virtual, kann diese Methode nicht im Destructor aufgerufen werden.

Zu beachten
Diese Methode gibt es nur, wenn nicht mit POSIX-Threads kompiliert (defined (__PTHREADS)).

Erneute Implementation von eut::RepeatingThread.

◆ operator!=()

bool glo::LocalThread::operator!= ( const LocalThread & rT) const

Vergleichsoperator.

Parameter
[in]rTDas mit diesem zu vergleichende Objekt.

◆ operator=()

LocalThread & glo::LocalThread::operator= ( const LocalThread & )
private

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ operator==()

bool glo::LocalThread::operator== ( const LocalThread & rT) const

Vergleichsoperator.

Parameter
[in]rTDas mit diesem zu vergleichende Objekt.

◆ sendToDBManager()

virtual int glo::LocalThread::sendToDBManager ( OrderMsg * pOrderMsg) const
overrideprotectedvirtual

Übergibt einen Auftrag (bekommen über LocalThread::assignDBManager() ) direkt an den Manager.

Parameter
[in]pOrderMsgDer Auftrag für den Manager.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

Implementiert glo::Communicator.

Dokumentation der Datenelemente

◆ m_pDBManager

Manager* glo::LocalThread::m_pDBManager
private

Der Zeiger auf den Manager.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: