Ein CommunicaterThread nimmt Aufträge für sein TableReaderInterface an.
Mehr ...
#include <GloCommunicaterThread.h>
Ein CommunicaterThread nimmt Aufträge für sein TableReaderInterface an.
Mehrere TableReaderInterface'es können somit parallel auf eine Tabelle zugreifen (machen ja nichts kaput).
Wird vom Manager genutzt und von dem an die jeweiligen Manager::Receiver übergeben.
- Copyright
- © 2010 Helmut Jakoby
- Autor
- Helmut Jakoby
◆ CommunicaterThread() [1/3]
glo::CommunicaterThread::CommunicaterThread |
( |
| ) |
|
|
private |
Der Standard-Konstruktor steht niccht zur Verfügung.
◆ CommunicaterThread() [2/3]
Konstruktor mit Parameterübergabe.
- Parameter
-
[in] | pSchema | Wird benötigt um ein Tabellenleser zu instantiieren. |
[in] | pRealIndexPool | Wird benötigt um ein Tabellenleser zu instantiieren. |
- Siehe auch
- TableReaderInterface
- Ausnahmebehandlung
-
◆ ~CommunicaterThread()
glo::CommunicaterThread::~CommunicaterThread |
( |
| ) |
|
Destruktor, es wird der Speicher aufgeräumt.
◆ CommunicaterThread() [3/3]
Der Copy-Konstruktor steht niccht zur Verfügung.
◆ cancel()
virtual void glo::CommunicaterThread::cancel |
( |
| ) |
|
|
overridevirtual |
Räumt den Speicher auf, bevor der Thread beendet wird. Wird vom besitzenden Manager::Receiver vor destruieren 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.
◆ checkStored()
void glo::CommunicaterThread::checkStored |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
Lässt seinen Tabellenleser prüfen, ob ein persistentes Objekt in der Datenbank gespeichert ist. Das Ergebnis der Abfrage wird im Auftrag abgelegt.
Diese Methode wird in work() durch Auswertung des Auftrags aufgerufen.
- Parameter
-
[in,out] | pOrderMsg | Der Auftrag. |
- Siehe auch
- OrderMsg, TableReaderInterface::objIDInBase().
◆ clearMsgQueue()
void glo::CommunicaterThread::clearMsgQueue |
( |
| ) |
|
Leert die Auftrags-Queue.
◆ closeAllSet()
void glo::CommunicaterThread::closeAllSet |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
Lässt seinen Tabellenleser eine Repräsentation eines AllSets zerstören. Das Ergebnis der Abfrage wird im Auftrag abgelegt.
Diese Methode wird in work() durch Auswertung des Auftrags aufgerufen.
- Parameter
-
[in,out] | pOrderMsg | Der Auftrag. |
- Siehe auch
- OrderMsg, TableReaderInterface::closeAllSet().
◆ getAnyIndexedObjIdListFromAllSet()
Hilfsmethode für getIndexedObjIdListBySearchValueFromAllSet (...), getIndexedObjIdListByComparingFromAllSet (...) und getIndexedObjIdListByRangeFromAllSet (...).
Da sich die Aufträge nur in ihrer Auftragsstruktur unterscheiden, wird diese hier ausgewertet und die jeweiligen Tabellenleser-Methoden aufgerufen.
- Parameter
-
- Siehe auch
- OrderMsg, TableReaderInterface::getIndexedObjIdListFromAllSet (...).
◆ getIndexedObjIdListByComparingFromAllSet()
void glo::CommunicaterThread::getIndexedObjIdListByComparingFromAllSet |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
◆ getIndexedObjIdListByRangeFromAllSet()
void glo::CommunicaterThread::getIndexedObjIdListByRangeFromAllSet |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
Gibt einen Leseauftrag für Objekt-IDs in einem AllSet, dessen Objekte indiziert sind, über einen Bereichssuch-Auftrag (in dem das Leseergebnis abgelegt wird) an seinen Tabellenleser weiter.
Diese Methode wird in work() durch Auswertung des Auftrags aufgerufen.
- Parameter
-
[in,out] | pOrderMsg | Der Auftrag. |
- Siehe auch
- RangeIndexQueryStruct, GloOrderMsgm, TableReaderInterface::getIndexedObjIdListFromAllSet (...).
◆ getIndexedObjIdListBySearchValueFromAllSet()
void glo::CommunicaterThread::getIndexedObjIdListBySearchValueFromAllSet |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
Gibt einen Leseauftrag für Objekt-IDs in einem AllSet, dessen Objekte indiziert sind, über einen Stringsuch-Auftrag (in dem das Leseergebnis abgelegt wird) an seinen Tabellenleser weiter.
Diese Methode wird in work() durch Auswertung des Auftrags aufgerufen.
- Parameter
-
[in,out] | pOrderMsg | Der Auftrag. |
- Siehe auch
- IndexQueryStruct, GloOrderMsgm, TableReaderInterface::getIndexedObjIdListFromAllSet (...).
◆ getObjectData()
void glo::CommunicaterThread::getObjectData |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
◆ getObjIdFromAllSet()
void glo::CommunicaterThread::getObjIdFromAllSet |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
Gibt einen Leseauftrag für eine Objekt-ID über einen Auftrag (in dem das Leseergebnis abgelegt wird) an seinen Tabellenleser weiter.
Diese Methode wird in work() durch Auswertung des Auftrags aufgerufen.
- Parameter
-
[in,out] | pOrderMsg | Der Auftrag. |
- Siehe auch
- GloOrderMsgm, TableReaderInterface::getObjIdFromAllSet (...), TableReaderInterface::getIndexedObjIdFromAllSet (...).
◆ getReader()
Liefert Zeiger auf seinen Tabellenleser.
- Rückgabe
- Der Zeiger auf seinen Tabellenleser.
- Achtung
- Das gelieferte TableReaderInterface lebt nur so lange wie dieses Objekt, die aufrufende Instanz darf das gelieferte Objekt nicht aus dem Speicher entfernen.
◆ getRecord()
void glo::CommunicaterThread::getRecord |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
◆ getSizeFromAllSet()
void glo::CommunicaterThread::getSizeFromAllSet |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
Läst die Größe eine Repräsentation eines AllSets von seinem Tabellenleser erfragen. Das Ergebnis der Abfrage wird im Auftrag abgelegt.
Diese Methode wird in work() durch Auswertung des Auftrags aufgerufen.
- Parameter
-
[in,out] | pOrderMsg | Der Auftrag. |
- Siehe auch
- OrderMsg, TableReaderInterface::getSizeFromAllSet().
◆ objIDInAllSet()
void glo::CommunicaterThread::objIDInAllSet |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
Lässt seine Tabellenleser prüfen, ob ein persistentes Objekt in der Datenbank vorhanden ist. Das Ergebnis der Abfrage wird im Auftrag abgelegt.
Diese Methode wird in work() durch Auswertung des Auftrags aufgerufen.
- Parameter
-
[in,out] | pOrderMsg | Der Auftrag. |
- Siehe auch
- OrderMsg, TableReaderInterface::objIDInAllSet().
◆ openAllSet()
void glo::CommunicaterThread::openAllSet |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
Lässt seinen Tabellenleser eine Repräsentation eines AllSets instanziieren. Das Ergebnis der Abfrage wird im Auftrag abgelegt.
Diese Methode wird in work() durch Auswertung des Auftrags aufgerufen.
- Parameter
-
[in,out] | pOrderMsg | Der Auftrag. |
- Siehe auch
- OrderMsg, TableReaderInterface::openAllSet().
◆ operator!=()
Vergleichsoperator.
- Parameter
-
[in] | rT | Das mit diesem zu vergleichende Objekt. |
◆ operator=()
Der Zuweisungsoperator steht nicht zur Verfügung.
◆ operator==()
Vergleichsoperator.
- Parameter
-
[in] | rT | Das mit diesem zu vergleichende Objekt. |
◆ removeIndexFilter()
void glo::CommunicaterThread::removeIndexFilter |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
Gibt einen Filter-Erntfern-Auftrag an einen AllSet, dessen Objekte indiziert sind, an seinen Tabellenleser weiter.
Diese Methode wird in work() durch Auswertung des Auftrags aufgerufen.
- Parameter
-
- Siehe auch
- GloOrderMsgm, TableReaderInterface::removeFilterInAllSet (...).
◆ setAnyIndexFilterInAllSet()
Hilfsmethode für setIndexFilterBySearchValueInSet (...), setIndexFilterByComparingInSet (...) und setIndexFilterByRangeInSet (...).
Da sich die Aufträge nur in ihrer Auftragsstruktur unterscheiden, wird diese hier ausgewertet und die jeweiligen Tabellenleser-Methoden aufgerufen.
- Parameter
-
- Siehe auch
- GloOrderMsgm, TableReaderInterface::getIndexedObjIdListFromAllSet (...).
◆ setCurrentObjectInAllSet()
void glo::CommunicaterThread::setCurrentObjectInAllSet |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
Läst in einer Repräsentation eines AllSets von seinem Tabellenleser den dortigen Iterator auf ein bestimmtes Objekt setzen. Das Ergebnis der Abfrage wird im Auftrag abgelegt.
Diese Methode wird in work() durch Auswertung des Auftrags aufgerufen.
- Parameter
-
[in,out] | pOrderMsg | Der Auftrag. |
- Siehe auch
- OrderMsg, TableReaderInterface::setCurrentObjectInAllSet().
◆ setIndexFilterByComparingInSet()
void glo::CommunicaterThread::setIndexFilterByComparingInSet |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
◆ setIndexFilterByRangeInSet()
void glo::CommunicaterThread::setIndexFilterByRangeInSet |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
◆ setIndexFilterBySearchValueInSet()
void glo::CommunicaterThread::setIndexFilterBySearchValueInSet |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
◆ setPositionInAllSet()
void glo::CommunicaterThread::setPositionInAllSet |
( |
OrderMsg * | pOrderMsg | ) |
|
|
protected |
Läst in einer Repräsentation eines AllSets von seinem Tabellenleser den dortigen Iterator auf eine bestimmte Position setzen. Das Ergebnis der Abfrage wird im Auftrag abgelegt.
Diese Methode wird in work() durch Auswertung des Auftrags aufgerufen.
- Parameter
-
[in,out] | pOrderMsg | Der Auftrag. |
- Siehe auch
- OrderMsg, TableReaderInterface::setPositionInAllSet().
◆ takeOrder()
void glo::CommunicaterThread::takeOrder |
( |
OrderMsg * | pOrderMsg | ) |
|
Übernimmt einen Auftrag in seine Auftrags-Queue. Sendet ein Aufwachsignal für den Thread.
- Parameter
-
[in] | pOrderMsg | Der abzuarbeitende Auftrag. |
- Siehe auch
- signalInput()
◆ transformIndexStrings()
void glo::CommunicaterThread::transformIndexStrings |
( |
IndexQueryBaseStruct & | rGloIndexQueryBaseStruct | ) |
|
|
protected |
Hilfsmethode für getAnyIndexedObjIdListFromAllSet (...), und setAnyIndexFilterInAllSet (...).
Obige Methoden bekommen über die übergebene IndexQueryBaseStruct einen bzw. zwei Indexstrings übergeben. In dieser Methode werden diese so formattiert, wie in der Indexspezifizierung vorgegeben. Wenn z.B. der Index nicht 'CaseSensitive' sein soll und der Index "aBc" ist, wird dieser Eintrag in die IndexQueryBaseStruct in "ABC" geändert.
- Parameter
-
◆ work()
virtual void glo::CommunicaterThread::work |
( |
| ) |
|
|
overrideprotectedvirtual |
Diese Methode wird als Thread ausgeführt. Es wird die Nachrichten-Queue nach Aufträgen abgefragt (es wird 'geschlafen' bis eine Nachricht in die Queue gestellt wird) und nach Auswertung des Auftrags eine passende Methode aufgerufen.
- Siehe auch
- waitForInput()
Implementiert eut::RepeatingThread.
◆ m_MsgQueue
std::queue<OrderMsg *> glo::CommunicaterThread::m_MsgQueue |
|
private |
Die Auftrags-Queue für diesen Thread.
- Siehe auch
- work()
◆ m_pTableReader
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: