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

Klasse um die persistente Objekte einer Datenbank im Speicher im Zugriff zu haben. Mehr ...

#include <GloPersObjectSpy.h>

Öffentliche Methoden

 PersObjectSpy ()
 
virtual ~PersObjectSpy ()
 
PersistentgetPersistentObject (const ObjID &rGloObjID)
 
PersistentgetPersistentObject (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 &)
 
PersObjectSpyoperator= (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
 

Ausführliche Beschreibung

Klasse um die persistente Objekte einer Datenbank im Speicher im Zugriff zu haben.

Hier melden sich alle persistenten Objekte einer Datenbank automatisch an.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ PersObjectSpy() [1/2]

glo::PersObjectSpy::PersObjectSpy ( )

Standard-Konstruktor.

◆ ~PersObjectSpy()

virtual glo::PersObjectSpy::~PersObjectSpy ( )
virtual

Destruktor.

◆ PersObjectSpy() [2/2]

glo::PersObjectSpy::PersObjectSpy ( const PersObjectSpy & )
private

Der Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ getPersistentObject() [1/6]

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.

Parameter
[in]rGloObjIDDie Objekt-ID.
Rückgabe
Der Zeiger auf das persistentes Objekt, wenn gefunden; ansonsten nullptr.
Achtung
Die aufrufende Instanz darf das gelieferte Objekt nicht aus dem Speicher entfernen.

◆ getPersistentObject() [2/6]

Persistent * glo::PersObjectSpy::getPersistentObject ( EnSeekMode eMode)

Liefert ein persistentes Objekt aus der Liste der persistenten Objekte in Bezug auf eMode.

Parameter
[in]eModeDer Suchmodus.

Parameterbeispiele:

Rückgabe
Das persistente Objekt, wenn gefunden; ansonsten nullptr.
Achtung
Die aufrufende Instanz darf das gelieferte Objekt nicht aus dem Speicher entfernen.

◆ getPersistentObject() [3/6]

int glo::PersObjectSpy::getPersistentObject ( Persistent *& prRetVal,
const ObjID & rGloObjID )

Liefert ein persistentes Objekt mit übergebener Objekt-ID aus der Liste der persistenten Objekte.

Parameter
[in,out]prRetValBei keinem Fehler der Zeiger auf das geholte Objekt.
[in]rGloObjIDDie Objekt-ID.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Bei einer Rückgabe == ERR_OBJID_NOT_FOUND wurde das Objekt nicht in der m_PersObjectList gefunden.
Achtung
Wenn prRetVal gültig, muss dieses Objekt von der aufrufenden Instanz mittels GenericPersistent::forget() aus dem Speicher entfernt werden.
Zu beachten
Es wird empfohlen, wenn möglich, die Verwendung von std::shared_ptr in Betracht zu ziehen und die Methode getPersistentObject(std::shared_ptr<Persistent>&, const ObjID&) zu nutzen.

◆ getPersistentObject() [4/6]

int glo::PersObjectSpy::getPersistentObject ( Persistent *& prRetVal,
EnSeekMode eMode )

Liefert ein persistentes Objekt aus der Liste der persistenten Objekte in Bezug auf eMode.

Parameter
[in,out]prRetValBei keinem Fehler der Zeiger auf das geholte Objekt.
[in]eModeDer Suchmodus.

Parameterbeispiele:

Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt das Ende der m_PersObjectList an.
Achtung
Wenn prRetVal gültig, muss dieses Objekt von der aufrufenden Instanz mittels Persistent::forget() aus dem Speicher entfernt werden.
Zu beachten
Es wird empfohlen, wenn möglich, die Verwendung von std::shared_ptr in Betracht zu ziehen und die Methode getPersistentObject(std::shared_ptr<Persistent>&, EnSeekMode) zu nutzen.

◆ getPersistentObject() [5/6]

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.

Parameter
[in,out]rRetValBei keinem Fehler der std::shared_ptr auf das geholte Objekt.
[in]rGloObjIDDie Objekt-ID.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Bei einer Rückgabe == ERR_OBJID_NOT_FOUND wurde das Objekt nicht in der m_PersObjectList gefunden.

◆ getPersistentObject() [6/6]

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.

Parameter
[in,out]rRetValBei keinem Fehler der intelligente Zeiger auf das geholte Objekt.
[in]eModeDer Suchmodus.

Parameterbeispiele:

Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt das Ende der m_PersObjectList an.

◆ insertPersistentObject()

int glo::PersObjectSpy::insertPersistentObject ( const Persistent * pPersObject)

Fügt ein persistentes Objekt in die Liste der persistenten Objekte ein.

Parameter
[in]pPersObjectDas einzufügende persistente Objekt.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ operator=()

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

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ removePersistentObject()

int glo::PersObjectSpy::removePersistentObject ( const Persistent * pPersObject)

Entfernt ein persistentes Objekt aus der Liste der persistenten Objekte.

Parameter
[in]pPersObjectDas zu entfernende persistente Objekt.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ sizeOfPersObjectList()

std::size_t glo::PersObjectSpy::sizeOfPersObjectList ( ) const

Liefert die Anzahl der Einträge in m_PersObjectList.

Rückgabe
s.o.

Freunde und bezugnehmende Symbol-Dokumentation

◆ ObjectMaker

friend class ObjectMaker
friend

◆ Persistent

friend class Persistent
friend

Dokumentation der Datenelemente

◆ m_LocalCriticalSection

eut::CriticalSection glo::PersObjectSpy::m_LocalCriticalSection
private

Um einen Thread-sicheren Zugriff auf die Liste der persistenten Objekte zu haben, wird über diese lokale CriticalSection der Zugriff synchronisiert.

◆ m_PersObjectList

std::unordered_map< unsigned long, Persistent * > glo::PersObjectSpy::m_PersObjectList
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.

◆ m_PersObjectListIterator

std::unordered_map<unsignedlong,Persistent*>::iterator glo::PersObjectSpy::m_PersObjectListIterator
private

Ein interner Iterator auf die Liste der persistenten Objekte.


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