GlobalObjects
|
Klassen um persistente Objekte überwachen zu können und bei Änderungen die jeweiligen Clients zu beanchrichtigen. Mehr ...
#include <GloWatchNotifyManager.h>
Klassen | |
class | ClassWatch |
Überwachungsklasse für AllSets. Mehr ... | |
class | ClientWatch |
Überwachungsklasse für Client-An- bzw. Abmeldungen. Mehr ... | |
class | CommunicatorCallBackClassIndex |
Ist ein eindeutiger Index für Maps von CommunicatorClassNotifyModes und als Index für die statischen Aktionslisten. Mehr ... | |
class | CommunicatorCallBackClientIndex |
Ist ein eindeutiger Index für Maps von CommunicatorClientNotifyModes und als Index für die statischen Aktionslisten. Mehr ... | |
class | CommunicatorCallBackIndex |
Basisklasse eines eindeutiger Index für Maps von abgeleitetn Klassen von CommunicatorNotifyModes und als Index für die statischen Aktionslisten. Mehr ... | |
class | CommunicatorCallBackIndexReadWriteIndex |
Ist ein eindeutiger Index für Maps von CommunicatorCallBackIndexReadWriteIndex und als Index für die statischen Aktionslisten. Mehr ... | |
class | CommunicatorCallBackObjIndex |
Ist ein eindeutiger Index für Maps von CommunicatorObjNotifyModes und als Index für die statischen Aktionslisten. Mehr ... | |
class | CommunicatorClassNotifyModes |
Überwachungs- bzw. Benachrichtigungs-Modus von AllSets. Mehr ... | |
class | CommunicatorClientNotifyModes |
Überwachungs- bzw. Benachrichtigungs-Modus von Client An- bzw. Abmeldungen. Mehr ... | |
class | CommunicatorIndexReadWriteNotifyModes |
Überwachungs- bzw. Benachrichtigungs-Modus für Lese-Index-, Schreibe-Index- und Reindex-Aktionen der Datenbank. Mehr ... | |
class | CommunicatorNotifyModes |
Basisklasse der einzelnen Überwachungs- bzw. Benachrichtigungs-Modi. Mehr ... | |
class | CommunicatorObjNotifyModes |
Überwachungs- bzw. Benachrichtigungs-Modus von Objekten mit deren abhängigen Objekten. Abhängige Objekte sind die eingebetteten bzw. direkt mitgeladenen Objekte in Zeigern und Zeigerlisten. Mehr ... | |
class | IndexReadWriteWatch |
Überwachungsklasse für Lese-Index-, Schreibe-Index- und Reindex-Aktionen der Datenbank. Mehr ... | |
class | NotifyClientInfo |
Wird für Notify-Infos über Clients in einem Auftrag an den WatchNotifyManager genutzt. Mehr ... | |
class | NotifyIndexReadWriteInfo |
Wird für Notify-Infos zum überwachen des Lesens, Schreibens und reindizieren der Indexe in einem Auftrag an den WatchNotifyManager genutzt. Mehr ... | |
class | NotifyInfo |
Basisklasse für unterschiedliche Notify-Infos, welche in einem Auftrag an den WatchNotifyManager genutzt werden. Mehr ... | |
class | NotifyObjInfo |
Wird für Notify-Infos über Objekte in einem Auftrag an den WatchNotifyManager genutzt. Mehr ... | |
class | ObjectWatch |
Überwachungsklasse für Objekte. Mehr ... | |
Öffentliche Methoden | |
WatchNotifyManager (Manager *pMyDBManager) | |
virtual | ~WatchNotifyManager () |
virtual void | cancel () override |
void | deleteCommunicatorWatches (Communicator *pCommunicator) |
bool | hasObjectWatching (TdWatchNotifyMode tdWatchNotifyMode) const |
void | takeOrder (OrderMsg *pOrderMsg) |
Ö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 | |
WatchNotifyManager () | |
void | deleteAllAction (Communicator *pCommunicator, std::list< CommunicatorCallBackIndex * > &rActionList) |
void | deleteCommunicatorWatches (OrderMsg *pOrderMsg) |
bool | getClassWatch (ClassWatch *&prClassWatch, unsigned long ulClassID, bool bAlsoGenerate) |
void | processNotify (OrderMsg *pOrderMsg) const |
void | processNotify (OrderMsg *pOrderMsg, std::list< CommunicatorCallBackIndex * > &rActionList) const |
int | processObjectSetWatch (Communicator *pCommunicator, const WatchSpecification &rWatchSpecification, std::list< Manager::ObjIdWithDepends * > &rInputList) |
int | processObjectUnsetWatch (Communicator *pCommunicator, const WatchSpecification &rWatchSpecification, std::list< ObjID > &rInputList) |
int | processWatch (const std::string &rsSchemaName, Communicator *pCommunicator, OrderMsg::EnOrderType eOrderType, void *pOrderObject, void *pAdditionalInfo) |
void | processWatch (OrderMsg *pOrderMsg) |
void | removeClassWatch (unsigned long ulClassID) |
int | setInternWatch (Communicator *pCommunicator, NUM_PTR ipCallBack, const ObjID &rObjID, std::map< ObjID, Record *, std::less< ObjID > > &rDependObjectsMap, TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode) |
int | setInternWatch (Communicator *pCommunicator, NUM_PTR ipCallBack, TdWatchNotifyMode tdWatchNotifyMode) |
int | setInternWatch (Communicator *pCommunicator, NUM_PTR ipCallBack, unsigned long ulClassID, TdWatchNotifyMode tdWatchNotifyMode) |
int | unsetInternWatch (Communicator *pCommunicator, NUM_PTR ipCallBack, const ObjID &rObjID, TdWatchNotifyMode tdWatchNotifyMode, EnDeepMode eDeepMode, bool bSimulate=false) |
int | unsetInternWatch (Communicator *pCommunicator, NUM_PTR ipCallBack, TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false) |
int | unsetInternWatch (Communicator *pCommunicator, NUM_PTR ipCallBack, unsigned long ulClassID, TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate=false) |
int | unsetWatchDependObjects (Communicator *pCommunicator, NUM_PTR ipCallBack, std::stack< ObjID > &rDependObjIdStack, TdWatchNotifyMode tdWatchNotifyMode, bool bSimulate) |
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) |
Geschützte, statische Methoden | |
static void | insertAction (CommunicatorCallBackIndex *pCommunicatorCallBackIndex, std::list< CommunicatorCallBackIndex * > &rActionList) |
static void | removeAction (CommunicatorCallBackIndex *pCommunicatorCallBackIndex, std::list< CommunicatorCallBackIndex * > &rActionList) |
Private Methoden | |
WatchNotifyManager (const WatchNotifyManager &) | |
WatchNotifyManager & | operator= (const WatchNotifyManager &) |
Private Attribute | |
std::unordered_map< unsigned long, ClassWatch * > | m_ClassWatchMap |
ClientWatch | m_ClientWatch |
eut::CriticalSection | m_ExclusiveProcessingSection |
IndexReadWriteWatch | m_IndexReadWriteWatch |
std::queue< OrderMsg * > | m_MsgQueue |
Manager * | m_pMyDBManager |
int | m_iWNM_WRITE |
Zur Steigerung der Performance werden die einzelnen Überwachungen gezählt. | |
int | m_iWNM_DELETE |
Zur Steigerung der Performance werden die einzelnen Überwachungen gezählt. | |
int | m_iWNM_LOCK |
Zur Steigerung der Performance werden die einzelnen Überwachungen gezählt. | |
int | m_iWNM_UNLOCK |
Zur Steigerung der Performance werden die einzelnen Überwachungen gezählt. | |
int | m_iWNM_INSERT |
Zur Steigerung der Performance werden die einzelnen Überwachungen gezählt. | |
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 |
Klassen um persistente Objekte überwachen zu können und bei Änderungen die jeweiligen Clients zu beanchrichtigen.
Es können Objekte, ObjektSets und AllSets zum Überwachen angemeldet werden.
Überwacht werden kann das 'Schreiben', 'Löschen', 'Sperren', 'Freigeben' und bei AllSets das 'Einfügen' eines Objektes.
Es kann das an- bzw. abmelden eines Clients an eine Datenbank bzw. GloServer's überwacht werden.
Es kann das Fortschreiten des Einlesens bzw. Schreibens und das Reindizieren der Indexe sowie das Fortschreiten des Komprimierens einer Datenbank überwacht werden.
- AllSet
Für jedes zu überwachende Objekt (Objekt-ID) bzw. AllSet (Klassen-ID) wird ein ClassWatch, welcher selbst eine Benachrichtigungs-Liste von CommunicatorClassNotifyModes besitzt, instanziiert und in die m_ClassWatchMap eingefügt.
- Objekt
Wenn ein Objekt beobachtet werden soll, wird zusätzlich ein ObjectWatch, welcher selbst eine Benachrichtigungs-Liste von CommunicatorObjNotifyModes besitzt, instanziiert und in die ClassWatch::m_ObjectWatchMap eingefügt.
- Client
Wenn das an- bzw. abmelden eines Clients an eine GloServer bzw. an eine Datenbank beobachtet werden soll, wird ein ClientWatch, welcher selbst eine Benachrichtigungs-Liste von CommunicatorClientNotifyModes besitzt, instanziiert und in die m_ClientWatch eingefügt.
- Index
Wenn das Fortschreiten des Einlesens bzw. Schreibens der Indexe beobachtet werden soll, wird ein IndexReadWriteWatch, welcher selbst eine Benachrichtigungs-Liste von CommunicatorIndexReadWriteNotifyModes besitzt, instanziiert und in m_IndexReadWriteWatch eingefügt.
- Komprimieren
Wenn das Fortschreiten des Komprimierens einer Datenbank beobachtet werden soll, wird ein IndexReadWriteWatch, welcher selbst eine Benachrichtigungs-Liste von CommunicatorIndexReadWriteNotifyModes besitzt, instanziiert und in m_IndexReadWriteWatch eingefügt.
- CommunicatorClassNotifyModes
Objekte der Klasse CommunicatorClassNotifyModes sind durch eine Referenz auf Communicator und einem Index (durch diesen kann sich der Communicator mehrmals Index-spezifisch benachrichtigen lassen) eindeutig.
CommunicatorClassNotifyModes haben für jeden Watch-Notify-Mode einen Counter, welcher in- bzw. dekrementiert werden kann (dadurch wird für jeden Communicator für jeden Index nur einmal benachrichtigt).
- CommunicatorObjNotifyModes
CommunicatorObjNotifyModes sind etwas anders aufgebaut. Da ein Objekt z.B. mit seinen abhängigen Objekten überwacht werden kann, werden Objekte mit ihren abhängigen Objekten zum überwachen übergeben.
Für jeden ÜberwachungsModus gibt es eine WatchModeListe, in der die Liste der abhängigen Objekte mit dem Überwachungstiefe abgelegt werden. Wenn ein Objekt mit einem bestimmten ÜberwachungsModus und Überwachungstiefe nicht mehr überwacht werden soll, wird die Liste aus der WatchModeListe genommen und die evtl. enthaltenen Objekte mit gleichem ÜberwachungsModus auch nicht mehr beobachtet.
Das ist Notwendig, weil z.B. ein Objekt 'A' mit einem referenzierten Objekt 'B' überwacht wird. Die Anwendung kann nun z.B. das referenzierte Objekt 'B' in Objekt 'A' dereferenzieren. Bei einee Aufhebung der Beobachtung von Objekt 'A' ist das früher referenzierte Objekt 'B' nicht mehr in der Basis verbunden und würde ansonsten nicht mehr freigegeben werden.
Wenn alle ÜberwachungsModuse auf 0 gesetzt sind, wird das CommunicatorNotifyModes-Objekt aus der jeweiligen Liste entfernt und gelöscht.
- CommunicatorClientNotifyModes
- CommunicatorIndexReadWriteNotifyModes
Objekte der Klassen CommunicatorClientNotifyModes und CommunicatorIndexReadWriteNotifyModes sind durch eine Referenz auf Communicator eindeutig.
Beispiel 1: Wenn z.B. ein AllSet überwacht werden soll, wird in der m_ClassWatchMap der ClassWatch mit gleicher ClassID gesucht. Wenn kein entsprechender ClassWatch vorhanden, wird ein solcher erstellt und in die m_ClassWatchMap gestellt.
Wenn ein ClassWatch vorhanden bzw. erstellt, wird in dessen Benachrichtigungs-Liste ein CommunicatorNotifyModes mit dem Communicator und seinem Index gesucht und dort der ÜberwachungsModus gesetzt, ansonsten ein neuer CommunicatorNotifyModes eingefügt.
Beispiel 2: Wenn z.B. ein Objekt überwacht werden soll, wird in der m_ClassWatchMap der ClassWatch mit gleicher ClassID gesucht. Wenn kein entsprechender ClassWatch vorhanden, wird ein solcher erstellt und in die m_ClassWatchMap gestellt.
Wenn ein ClassWatch vorhanden ist bzw. erstellt wird, wird in dessen ClassWatch::m_ObjectWatchMap der entsprechende ObjectWatch gesucht. Wenn kein entsprechendes ObjectWatch, wird ein solcher erstellt und in die ClassWatch::m_ObjectWatchMap gestellt.
Wenn ein ObjectWatch vorhanden ist bzw. erstellt wird, wird in dessen ObjectWatch::m_CommunicatorObjNotifyModesMap ein CommunicatorObjNotifyModes mit dem Communicator und seinem Index gesucht und dort der ÜberwachungsModus gesetzt, ansonsten ein neuer CommunicatorObjNotifyModes eingefügt.
Benachrichtigungen werden nicht direkt vom glo::Manager initiiert, sondern über einen Auftrag an den WatchNotifyManager übergeben, welcher die Benachrichtigung übernimmt. Im Auftrag ist der Kommunikator, welcher die Benachrichtigung auslöst, der Auftragstyp (hier OrderMsg::ePROCESS_NOTIFY), die Aktion mit dem Auftragsgegenstand (eine Objekt-ID) in einem NotifyInfo und in ZusatzInfo ggf. ein Kommunikator.
Es wird im WatchNotifyManager geprüft, wer über die Aktion auf ein Objekt benachrichtigt werden möchte und ein Auftrag an diese (ausser in ZusatzInfo war ein Kommunikator, dann nur an diesen) wiederum über den glo::Manager versendet (dann Auftragstyp OrderMsg::eNOTIFY_CLIENT ).
Der Auftrag enthält den zu benachrichtigen Kommunikator, und in einer NotifyNote den Kommunikator welcher die Aktion auslöste, die betroffene Objekt-ID und die Aktion.
|
protected |
Der Standard-Konstruktor steht nicht zur Verfügung.
glo::WatchNotifyManager::WatchNotifyManager | ( | Manager * | pMyDBManager | ) |
Konstruktor mit Parameterübergabe.
[in] | pMyDBManager | Rückreferenz auf den besitzenden Manager, darf wärend der Lebensdauer dieses Objektes nicht aus dem Speicher entfernt werden. |
|
virtual |
Destruktor, es wird aufgeräumt.
|
private |
Der Copy-Konstruktor steht nicht zur Verfügung.
|
overridevirtual |
Wenn der Thread beendet wirde, wird diese virtuale Methode aufgerufen. Hier wird die MsgQueue aufgeräumt.
Erneute Implementation von eut::RepeatingThread.
|
protected |
Hilfsmethode für deleteCommunicatorWatches( OrderMsg * ).
Es werden alle Überwachungen des übergebenen Client-Kommunikatoren entfernt.
Es wird nur die übergebene Liste, von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über die einzelnen Aktionen benachrichtigt werden können, berücksichtigt.
[in] | pCommunicator | Der Client-Kommunikator, dessen Überwachungen entfernt werden sollen. |
[in,out] | rActionList | Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über die einzelnen Aktionen benachrichtigt werden können. |
void glo::WatchNotifyManager::deleteCommunicatorWatches | ( | Communicator * | pCommunicator | ) |
Verarbeitet einen Client-Kommunikator-Lösch-Auftrag aus seiner Queue mit den abzuarbeitenden Aufträgen.
Es werden alle Überwachungen des im Auftrag referenzierten Client-Kommunikator entfernt.
Es werden alle Liste, von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über die einzelnen Aktionen benachrichtigt werden können, berücksichtigt.
[in] | pCommunicator | Client-Kommunikator. |
|
protected |
Verarbeitet einen Client-Kommunikator-Lösch-Auftrag aus seiner Queue mit den abzuarbeitenden Aufträgen.
Es werden alle Überwachungen des im Auftrag referenzierten Client-Kommunikator entfernt.
Es werden alle Liste, von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über die einzelnen Aktionen benachrichtigt werden können, berücksichtigt.
Der ursprüngliche Auftrag wird aus dem Speicher entfernt.
[in] | pOrderMsg | Der Auftrag. |
|
protected |
Liefert in prClassWatch ein vorhandenes oder ein neues Überwachungsobjekt für einen AllSet mit übergebener Klassen-ID. Auf jeden Fall ist das zurückgelieferte Überwachungsobjekt in der m_ClassWatchMap.
[in,out] | prClassWatch | Das vorhandene bzw. neue Überwachungsobjekt für den AllSet mit übergebener Klassen-ID. |
[in] | ulClassID | Die Klassen-ID. |
[in] | bAlsoGenerate | Wenn true, wird ein neues Überwachungsobjekt für AllSet dann generiert und in die m_ClassWatchMap eingefügt, wenn nicht schon vorhanden. Wenn false, wird nur ein schon vorhandenes Überwachungsobjekt für AllSet geliefert. |
bool glo::WatchNotifyManager::hasObjectWatching | ( | TdWatchNotifyMode | tdWatchNotifyMode | ) | const |
Prüft ob Objekte mit übergebenen Beobachtungsmodus überwacht werden.
|
staticprotected |
Fügt einen CommunicatorCallBackIndex in übergebene Liste am Anfang ein.
[in] | pCommunicatorCallBackIndex | Einzufügender CommunicatorCallBackIndex. |
[in,out] | rActionList | Die Liste. |
|
private |
Der Zuweisungsoperator steht nicht zur Verfügung.
|
protected |
Verarbeitet einen Benachrichtigungs-Auftrag aus seiner Queue mit den abzuarbeitenden Aufträgen.
Es werden ggf. auch mehrere neue Benachrichtigungs-Aufträge erstellt und an die jeweiligen Client-Kommunikatoren versendet.
Es werden alle Listen, von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über die einzelnen Aktionen benachrichtigt werden können, berücksichtigt.
Der ursprüngliche Auftrag wird aus dem Speicher entfernt.
[in] | pOrderMsg | Der Auftrag. |
|
protected |
Verarbeitet einen Benachrichtigungs-Auftrag aus seiner Queue mit den abzuarbeitenden Aufträgen.
Es werden ggf. auch mehrere neue Benachrichtigungs-Aufträge erstellt und an die jeweiligen Client-Kommunikatoren versendet.
Es wird nur die übergebene Liste, von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über die einzelnen Aktionen benachrichtigt werden können, berücksichtigt.
Der ursprüngliche Auftrag wird aus dem Speicher entfernt.
[in] | pOrderMsg | Der Auftrag. |
[in,out] | rActionList | Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über die einzelnen Aktionen benachrichtigt werden können. |
|
protected |
Verarbeitet eine Überwachung der übergebenen Objekte.
[in] | pCommunicator | Der Client-Kommunikator, der überwachen möchte. |
[in] | rWatchSpecification | Der 'Beobachtungsmodus', die 'Beobachtungstiefe' und das 'Benachrichtigungsobjekt'. |
[in] | rInputList | Die zu überwachenden Objektrecords. |
|
protected |
Verarbeitet eine Überwachungsaufhebung der übergebenen Objekte.
[in] | pCommunicator | Der Client-Kommunikator, der überwachen möchte. |
[in] | rWatchSpecification | Der 'Beobachtungsmodus', die 'Beobachtungstiefe' und das 'Benachrichtigungsobjekt'. |
[in] | rInputList | Die zu Objekt-IDs der Objekte, deren Überwachung beendet werden soll. |
|
protected |
Verarbeitet eine Überwachungs- bzw. einen Überwachungsaufhebe-Auftrag.
[in] | rsSchemaName | Der Schemaname. |
[in] | pCommunicator | Der Client-Kommunikator, welcher die Überwachung initiieren bzw. aufheben möchte. |
[in] | eOrderType | Der Typ der Überwachung. |
[in] | pOrderObject | Je nach eOrderType unterschiedlichen Typs oder auch nullptr. |
[in] | pAdditionalInfo | Der 'Beobachtungsmodus', die 'Beobachtungstiefe' und das 'Benachrichtigungsobjekt' immer vom Typ WatchSpecification oder nullptr. |
|
protected |
Verarbeitet eine Überwachungs- bzw. einen Überwachungsaufhebe-Auftrag aus seiner Queue mit den abzuarbeitenden Aufträgen.
Es wird der Auftrag nach Verarbeitung und setzen der ggf. vorhandenen Ergebniswerte an den Kommunikator aus dem Auftrag zurückgegeben.
[in] | pOrderMsg | Der Auftrag. |
|
staticprotected |
Entfernt einen CommunicatorCallBackIndex aus übergebene Liste.
[in] | pCommunicatorCallBackIndex | Zu entfernender CommunicatorCallBackIndex. |
[in,out] | rActionList | Die Liste. |
|
protected |
Entfernt und löscht das Überwachungsobjekt für den AllSet mit übergebener Klassen-ID aus m_ClassWatchMap.
[in] | ulClassID | Die Klassen-ID. |
|
protected |
Registriert eine Überwachung für ein Objekt ggf. mit abhängigen Objekten.
[in] | pCommunicator | Der Client-Kommunikator, der überwachen möchte. |
[in] | ipCallBack | Die Adresse der CallBack-Funktion des Client-Kommunikators. |
[in] | rObjID | Die Objekt-ID des zu überwachenden Objekts. |
[in] | rDependObjectsMap | Die abhängigen Objekte, welche von der aufrufenden Instanz 'mitüberwacht' werden. |
[in] | tdWatchNotifyMode | Der gewünschte Überwachungsmodus. |
[in] | eDeepMode | Der Überwachungstiefenmodus zum Auseinanderhalten der einzelnen DependentObjsWithDeepMode-Objekte. |
|
protected |
Registriert eine Client-Anmelde, Client-Abmelde-, Lese-Index-, Schreibe-Index- oder Reindex-Überwachung.
[in] | pCommunicator | Der Client-Kommunikator, der überwachen möchte. |
[in] | ipCallBack | Die Adresse der CallBack-Funktion des Client-Kommunikators. |
[in] | tdWatchNotifyMode | Der gewünschte Überwachungsmodus. |
|
protected |
Registriert eine Überwachung für einen AllSet.
[in] | pCommunicator | Der Client-Kommunikator, der überwachen möchte. |
[in] | ipCallBack | Die Adresse der CallBack-Funktion des Client-Kommunikators. |
[in] | ulClassID | Die Klassen-ID des zu überwachenden AllSets. |
[in] | tdWatchNotifyMode | Der gewünschte Überwachungsmodus. |
void glo::WatchNotifyManager::takeOrder | ( | OrderMsg * | pOrderMsg | ) |
Übernimmt einen Auftrag.
[in] | pOrderMsg | Der abzuarbeitende Auftrag. |
|
protected |
Deregistriert eine Überwachung für ein Objekt ggf. mit abhängigen Objekten.
[in] | pCommunicator | Der Client-Kommunikator, welcher die Überwachung aufheben möchte. |
[in] | ipCallBack | Die Adresse der CallBack-Funktion des Client-Kommunikators. |
[in] | rObjID | Die Objekt-ID des überwachten Objekts. |
[in] | tdWatchNotifyMode | Der ursprüngliche aufzuhebende Überwachungsmodus. |
[in] | eDeepMode | Der Überwachungstiefenmodus zum Auseinanderhalten der einzelnen DependentObjsWithDeepMode-Objekte. |
[in] | bSimulate | Wenn true, wird nur simuliert, also kein Wert gesetzt, aber ein Ergebnis bzw. Fehler geliefert. |
|
protected |
Deregistriert eine Client-An- und Abmelde-Überwachung oder eine Lese-Index-, Schreibe-Index- oder Reindex-Überwachung.
[in] | pCommunicator | Der Client-Kommunikator, welcher die Überwachung aufheben möchte. |
[in] | ipCallBack | Die Adresse der CallBack-Funktion des Client-Kommunikators. |
[in] | tdWatchNotifyMode | Der aufzuhebende Überwachungsmodus. |
[in] | bSimulate | Wenn true, wird nur simuliert, also kein Wert gesetzt, aber ein Ergebnis bzw. Fehler geliefert. |
|
protected |
Deregistriert eine Überwachung für einen AllSet.
[in] | pCommunicator | Der Client-Kommunikator, der die Überwachung aufheben möchte. |
[in] | ipCallBack | Die Adresse der CallBack-Funktion des Client-Kommunikators. |
[in] | ulClassID | Die Klassen-ID des überwachten AllSets. |
[in] | tdWatchNotifyMode | Der aufzuhebende Überwachungsmodus. |
[in] | bSimulate | Wenn true, wird nur simuliert, also kein Wert gesetzt, aber ein Ergebnis bzw. Fehler geliefert. |
|
protected |
Hilfsmethode um die Überwachungen abhängiger Objekte einzeln zu deregistrieren.
[in] | pCommunicator | Der Client-Kommunikator, der die Überwachung aufheben möchte. |
[in] | ipCallBack | Die Adresse der CallBack-Funktion des Client-Kommunikators. |
[in] | rDependObjIdStack | Liste von Objekt-IDs der überwachten abhängigen Objekte. |
[in] | tdWatchNotifyMode | Der aufzuhebende Überwachungsmodus. |
[in] | bSimulate | Wenn true, wird nur simuliert, also kein Wert gesetzt, aber ein Ergebnis bzw. Fehler geliefert. |
|
overrideprotectedvirtual |
Diese Methode wird als Thread ausgeführt. Es wird die Nachrichten-Queue nach Aufträgen und Antworten auf eigene Aufträge abgefragt (es wird 'geschlafen' bis eine Nachricht in die Queue gestellt wird).
Implementiert eut::RepeatingThread.
|
private |
Alle ClassWatch sortiert nach der Klassen-ID.
|
private |
Fürs überwachen von Client-Anmeldung bzw. -Abmeldung.
|
private |
Wird benötigt, um folgende Methoden zu serialisieren:
|
private |
Fürs überwachen von Index einlesen bzw. schreiben und reindizieren sowie das Komprimieren einer Datenbank.
|
private |
Zur Steigerung der Performance werden die einzelnen Überwachungen gezählt.
So kann vor dem Versenden einer Benachrichtigung über eine erfolgte Änderung geprüft werden, ob eine Benachrichtigung notwendig ist.
|
private |
Zur Steigerung der Performance werden die einzelnen Überwachungen gezählt.
So kann vor dem Versenden einer Benachrichtigung über eine erfolgte Änderung geprüft werden, ob eine Benachrichtigung notwendig ist.
|
private |
Zur Steigerung der Performance werden die einzelnen Überwachungen gezählt.
So kann vor dem Versenden einer Benachrichtigung über eine erfolgte Änderung geprüft werden, ob eine Benachrichtigung notwendig ist.
|
private |
Zur Steigerung der Performance werden die einzelnen Überwachungen gezählt.
So kann vor dem Versenden einer Benachrichtigung über eine erfolgte Änderung geprüft werden, ob eine Benachrichtigung notwendig ist.
|
private |
Zur Steigerung der Performance werden die einzelnen Überwachungen gezählt.
So kann vor dem Versenden einer Benachrichtigung über eine erfolgte Änderung geprüft werden, ob eine Benachrichtigung notwendig ist.
|
private |
Die Queue mit den abzuarbeitenden Aufträgen.
|
staticprotected |
Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über Client-Abmelde-Aktionen an eine Datenbank benachrichtigt werden können.
|
staticprotected |
Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über Client-Anmelde-Aktionen an einen GloServer benachrichtigt werden können.
|
staticprotected |
Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über Client-Abmelde-Aktionen an einen GloServer benachrichtigt werden können.
|
staticprotected |
Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über Client-Anmelde-Aktionen an eine Datenbank benachrichtigt werden können.
|
staticprotected |
Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über Lösch-Aktionen auf AllSets und Objekte benachrichtigt werden können.
|
staticprotected |
Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über Lese-Index-Aktionen in einer Datenbank benachrichtigt werden können.
|
staticprotected |
Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über Reindex-Aktionen in einer Datenbank benachrichtigt werden können.
|
staticprotected |
Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über Schreibe-Index-Aktionen in einer Datenbank benachrichtigt werden können.
|
staticprotected |
Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über Einfüge-Aktionen auf AllSets benachrichtigt werden können.
|
staticprotected |
Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über Sperr-Aktionen auf AllSets und Objekte benachrichtigt werden können.
|
staticprotected |
Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über Entsperr-Aktionen auf AllSets und Objekte benachrichtigt werden können.
|
staticprotected |
Liste von Objekten des Typs CommunicatorCallBackIndex über welche die einzelnen Clients über Schreib-Aktionen auf AllSets und Objekte benachrichtigt werden können.