GlobalObjects
|
Klasse um die persistente Objekte einer Datenbank im Speicher im Zugriff zu haben. Mehr ...
#include <GloPersObjectSpy.h>
Öffentliche Methoden | |
PersObjectSpy () | |
virtual | ~PersObjectSpy () |
Persistent * | getPersistentObject (const ObjID &rGloObjID) |
Persistent * | getPersistentObject (EnSeekMode eMode) |
int | getPersistentObject (Persistent *&prRetVal, const ObjID &rGloObjID) |
int | getPersistentObject (Persistent *&prRetVal, EnSeekMode eMode) |
int | getPersistentObject (std::shared_ptr< Persistent > &rRetVal, const ObjID &rGloObjID) |
int | getPersistentObject (std::shared_ptr< Persistent > &rRetVal, EnSeekMode eMode) |
int | insertPersistentObject (const Persistent *pPersObject) |
int | removePersistentObject (const Persistent *pPersObject) |
std::size_t | sizeOfPersObjectList () const |
Private Methoden | |
PersObjectSpy (const PersObjectSpy &) | |
PersObjectSpy & | operator= (const PersObjectSpy &) |
Private Attribute | |
eut::CriticalSection | m_LocalCriticalSection |
std::unordered_map< unsigned long, Persistent * > | m_PersObjectList |
std::unordered_map< unsignedlong, Persistent * >::iterator | m_PersObjectListIterator |
Freundbeziehungen | |
class | ObjectMaker |
class | Persistent |
Klasse um die persistente Objekte einer Datenbank im Speicher im Zugriff zu haben.
Hier melden sich alle persistenten Objekte einer Datenbank automatisch an.
glo::PersObjectSpy::PersObjectSpy | ( | ) |
Standard-Konstruktor.
|
virtual |
Destruktor.
|
private |
Der Copy-Konstruktor steht nicht zur Verfügung.
Persistent * glo::PersObjectSpy::getPersistentObject | ( | const ObjID & | rGloObjID | ) |
Liefert einen Zeiger auf ein persistentes Objekt aus der Liste der persistenten Objekte, welches die übergebene Objekt-ID hat.
[in] | rGloObjID | Die Objekt-ID. |
Persistent * glo::PersObjectSpy::getPersistentObject | ( | EnSeekMode | eMode | ) |
Liefert ein persistentes Objekt aus der Liste der persistenten Objekte in Bezug auf eMode.
[in] | eMode | Der Suchmodus. |
Parameterbeispiele:
int glo::PersObjectSpy::getPersistentObject | ( | Persistent *& | prRetVal, |
const ObjID & | rGloObjID ) |
Liefert ein persistentes Objekt mit übergebener Objekt-ID aus der Liste der persistenten Objekte.
[in,out] | prRetVal | Bei keinem Fehler der Zeiger auf das geholte Objekt. |
[in] | rGloObjID | Die Objekt-ID. |
int glo::PersObjectSpy::getPersistentObject | ( | Persistent *& | prRetVal, |
EnSeekMode | eMode ) |
Liefert ein persistentes Objekt aus der Liste der persistenten Objekte in Bezug auf eMode.
[in,out] | prRetVal | Bei keinem Fehler der Zeiger auf das geholte Objekt. |
[in] | eMode | Der Suchmodus. |
Parameterbeispiele:
int glo::PersObjectSpy::getPersistentObject | ( | std::shared_ptr< Persistent > & | rRetVal, |
const ObjID & | rGloObjID ) |
Liefert ein persistentes Objekt mit eine bestimmten Objekt-ID aus der Liste der persistenten Objekte.
[in,out] | rRetVal | Bei keinem Fehler der std::shared_ptr auf das geholte Objekt. |
[in] | rGloObjID | Die Objekt-ID. |
int glo::PersObjectSpy::getPersistentObject | ( | std::shared_ptr< Persistent > & | rRetVal, |
EnSeekMode | eMode ) |
Liefert ein generisches persistentes Objekt aus der Liste der generischen persistenten Objekte in Bezug auf eMode.
[in,out] | rRetVal | Bei keinem Fehler der intelligente Zeiger auf das geholte Objekt. |
[in] | eMode | Der Suchmodus. |
Parameterbeispiele:
int glo::PersObjectSpy::insertPersistentObject | ( | const Persistent * | pPersObject | ) |
Fügt ein persistentes Objekt in die Liste der persistenten Objekte ein.
[in] | pPersObject | Das einzufügende persistente Objekt. |
|
private |
Der Zuweisungsoperator steht nicht zur Verfügung.
int glo::PersObjectSpy::removePersistentObject | ( | const Persistent * | pPersObject | ) |
Entfernt ein persistentes Objekt aus der Liste der persistenten Objekte.
[in] | pPersObject | Das zu entfernende persistente Objekt. |
std::size_t glo::PersObjectSpy::sizeOfPersObjectList | ( | ) | const |
Liefert die Anzahl der Einträge in m_PersObjectList.
|
friend |
|
friend |
|
private |
Um einen Thread-sicheren Zugriff auf die Liste der persistenten Objekte zu haben, wird über diese lokale CriticalSection der Zugriff synchronisiert.
|
private |
Die Liste der persistenten Objekte. Der Index ist ObjID::m_ulObjCounter der Objekt-ID der einzelnen Objekte.
Da der ObjID::m_ulObjCounter in einer Datenbank eindeutig ist, ist die gesamte Objekt-ID als Index nicht notwendig.
|
private |
Ein interner Iterator auf die Liste der persistenten Objekte.