Objekte können gesperrt werden. Objekte dieser Klasse repräsentiert ein vom Kommunikatoren gesperrtes Objekt, mit ggf. mit gesperrten Objekten wie z.B. eingebettete Objekte.
Mehr ...
#include <GloLockManager.h>
|
| LockedObject (const ObjID &rLockObjekt) |
|
| ~LockedObject () |
|
void | deleteCommunicator (Communicator *pCommunicator) |
|
std::size_t | getNumCommunicators () |
|
ObjID | getObjID () const |
|
bool | hasAnyOtherCompetingProtection (Communicator *pCommunicator, EnLockMode eLockMode) const |
|
bool | isPossible (Communicator *pCommunicator, bool bRead, bool bWrite, bool bDelete) const |
|
int | lockObject (Communicator *pCommunicator, std::stack< ObjID > *pDependObjIdStack, EnLockMode eLockMode, EnDeepMode eDeepMode, bool bSimulate=false) |
|
int | unlockObject (Communicator *pCommunicator, std::stack< ObjID > *&prDependObjIdStack, EnLockMode eLockMode, EnDeepMode eDeepMode, bool bSimulate=false) |
|
Objekte können gesperrt werden. Objekte dieser Klasse repräsentiert ein vom Kommunikatoren gesperrtes Objekt, mit ggf. mit gesperrten Objekten wie z.B. eingebettete Objekte.
- Copyright
- © 2010 Helmut Jakoby
- Autor
- Helmut Jakoby
◆ LockedObject() [1/3]
glo::LockManager::LockedObject::LockedObject |
( |
| ) |
|
|
protected |
Der Standard-Konstruktor steht nicht zur Verfügung.
◆ LockedObject() [2/3]
glo::LockManager::LockedObject::LockedObject |
( |
const ObjID & | rLockObjekt | ) |
|
Konstruktor mit Parameterübergabe.
- Parameter
-
[in] | rLockObjekt | Die Objekt-ID des zu sperrende Objekts. |
◆ ~LockedObject()
glo::LockManager::LockedObject::~LockedObject |
( |
| ) |
|
◆ LockedObject() [3/3]
glo::LockManager::LockedObject::LockedObject |
( |
const LockedObject & | | ) |
|
|
private |
Der Copy-Konstruktor steht nicht zur Verfügung.
◆ deleteCommunicator()
void glo::LockManager::LockedObject::deleteCommunicator |
( |
Communicator * | pCommunicator | ) |
|
Hebt alle Sperren des übergebenen Kommunikators auf.
- Parameter
-
[in] | pCommunicator | Der Kommunikator. |
◆ getNumCommunicators()
std::size_t glo::LockManager::LockedObject::getNumCommunicators |
( |
| ) |
|
Liefert die Anzahl der Kommunikatoren, welche das Objekt mit der Objekt-ID aus LockedObject::m_LockObjektID gesperrt haben.
- Rückgabe
- Die Anzahl der sperrenden Kommunikatoren.
◆ getObjID()
ObjID glo::LockManager::LockedObject::getObjID |
( |
| ) |
const |
Liefert die Objekt-ID des gesperrten Objektes.
- Rückgabe
- Die Objekt-ID.
◆ hasAnyOtherCompetingProtection()
bool glo::LockManager::LockedObject::hasAnyOtherCompetingProtection |
( |
Communicator * | pCommunicator, |
|
|
EnLockMode | eLockMode ) const |
Prüft, ob es eine konkurierende Sperre des Objekts mit Objekt-ID aus LockedObject::m_LockObjektID für den übergebenen Kommunikator gibt.
- Parameter
-
[in] | pCommunicator | Der Kommunikator. |
[in] | eLockMode | Der Sperrmodus, welcher für den Kommunikator geprüft werden soll. |
- Rückgabe
- Wenn true, gibt es eine konkurierende Sperre. Das Objekt mit der Objekt-ID aus LockedObject::m_LockObjektID kann nicht vom übergebenen Kommunikator mit dem übergebenen Sperrmodus gesperrt werden.
◆ isPossible()
bool glo::LockManager::LockedObject::isPossible |
( |
Communicator * | pCommunicator, |
|
|
bool | bRead, |
|
|
bool | bWrite, |
|
|
bool | bDelete ) const |
Prüft, ob der übergebenen Kommunikator das Objekt mit Objekt-ID aus LockedObject::m_LockObjektID lesen, schreiben und/oder löschen darf.
- Parameter
-
[in] | pCommunicator | Der Kommunikator. |
[in] | bRead | Wenn true, wird auf 'lesen' geprüft. |
[in] | bWrite | Wenn true, wird auf 'schreiben' geprüft. |
[in] | bDelete | Wenn true, wird auf 'löschen' geprüft. |
- Rückgabe
- Wenn true, ist bzw. sind die true gesetzten Modi für den Kommunikator möglich.
◆ lockObject()
int glo::LockManager::LockedObject::lockObject |
( |
Communicator * | pCommunicator, |
|
|
std::stack< ObjID > * | pDependObjIdStack, |
|
|
EnLockMode | eLockMode, |
|
|
EnDeepMode | eDeepMode, |
|
|
bool | bSimulate = false ) |
Sperrt das Objekt mit Objekt-ID aus LockedObject::m_LockObjektID für einen Kommunikator.
- Parameter
-
[in] | pCommunicator | Der sperrende Kommunikator. |
[in] | pDependObjIdStack | Der Stack von Objekt-IDs der mitzusperrenden Objekte. |
[in] | eLockMode | Der Sperrmodus. |
[in] | eDeepMode | Der Sperrtiefenmodus. |
[in] | bSimulate | Wenn true, wird nur simuliert, also kein Wert gesetzt, aber ein valides Ergebnis bzw. Fehler geliefert. |
- Rückgabe
- Eine Rückgabe < 0 zeigt einen Fehler an.
◆ operator=()
Der Zuweisungsoperator ist nicht verfügbar.
◆ setLockCount()
int glo::LockManager::LockedObject::setLockCount |
( |
std::list< DependentObjsWithDeepMode * > & | rLockCountList, |
|
|
std::stack< ObjID > *& | prUnlockDependObjIdStack, |
|
|
std::stack< ObjID > * | pLockDependObjIdStack, |
|
|
EnDeepMode | eDeepMode, |
|
|
bool | bSimulate = false ) |
|
private |
Hilfsmethode für LockedObject::setLocks (...).
- Parameter
-
[in,out] | rLockCountList | Die Liste für jeden Sperrmodus aus CommunicatorRightsRestrictions |
[in,out] | prUnlockDependObjIdStack | Der Stack von Objekt-IDs der mitfreizugebender Objekte. |
[in] | pLockDependObjIdStack | Der Stack von Objekt-IDs der mitzusperrenden Objekte. |
[in] | eDeepMode | Der Sperrtiefenmodus. |
[in] | bSimulate | Wenn true, wird nur simuliert, also kein Wert gesetzt, aber ein valides Ergebnis bzw. ein Fehler geliefert. |
- Rückgabe
- Eine Rückgabe < 0 zeigt einen Fehler an.
◆ setLocks()
Sperrt das Objekt mit Objekt-ID aus LockedObject::m_LockObjektID für ein CommunicatorRightsRestrictions bzw. gibt es frei.
- Parameter
-
[in] | pItem | Die CommunicatorRightsRestrictions in welcher die Sperre bzw. Freigabe eingetragen wird. |
[in] | eLockMode | Der Sperrmodus. |
[in] | eDeepMode | Der Sperrtiefenmodus. |
[in,out] | prUnlockDependObjIdStack | Der Stack von Objekt-IDs der mitfreizugebenden Objekte. |
[in] | pLockDependObjIdStack | Der Stack von Objekt-IDs der mitzusperrenden Objekte. |
[in] | bSimulate | Wenn true, wird nur simuliert, also kein Wert gesetzt, aber ein valides Ergebnis bzw. ein Fehler geliefert. |
- Rückgabe
- Eine Rückgabe < 0 zeigt einen Fehler an.
◆ unlockObject()
int glo::LockManager::LockedObject::unlockObject |
( |
Communicator * | pCommunicator, |
|
|
std::stack< ObjID > *& | prDependObjIdStack, |
|
|
EnLockMode | eLockMode, |
|
|
EnDeepMode | eDeepMode, |
|
|
bool | bSimulate = false ) |
Gibt das von einem Kommunikator gesperrte Objekt mit Objekt-ID aus LockedObject::m_LockObjektID frei.
- Parameter
-
[in] | pCommunicator | Der freigebende Kommunikator. |
[in,out] | prDependObjIdStack | Der Stack von Objekt-IDs der mit frei zu gebenden Objekte. |
[in] | eLockMode | Der ursprüngliche Sperrmodus, welcher aufgehoben werden soll. |
[in] | eDeepMode | Der Sperrtiefenmodus des ursprüngliche Sperrmodus, welcher aufgehoben werden soll. |
[in] | bSimulate | Wenn true, wird nur simuliert, also kein Wert gesetzt, aber ein valides Ergebnis bzw. Fehler geliefert. |
- Rückgabe
- Eine Rückgabe < 0 zeigt einen Fehler an.
◆ LockManager
◆ m_CommunicatorMap
◆ m_LockObjektID
ObjID glo::LockManager::LockedObject::m_LockObjektID |
|
protected |
Die Objekt-ID des gesperrten Objektes.
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: