GlobalObjects
Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Freundbeziehungen Makrodefinitionen Seiten
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.

Wird benutzt von PersObjectSpy() und operator=().

◆ ~PersObjectSpy()

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

Destruktor.

◆ PersObjectSpy() [2/2]

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

Der Copy-Konstruktor steht nicht zur Verfügung.

Benutzt PersObjectSpy().

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.

Benutzt Persistent.

◆ 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.

Benutzt Persistent.

◆ 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.

Benutzt Persistent.

◆ 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.

Benutzt Persistent.

◆ 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.

Benutzt Persistent.

◆ operator=()

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

Der Zuweisungsoperator steht nicht zur Verfügung.

Benutzt PersObjectSpy().

◆ 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.

Benutzt Persistent.

◆ 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

Benutzt m_LocalCriticalSection und ObjectMaker.

Wird benutzt von ObjectMaker.

◆ Persistent

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.

Wird benutzt von ObjectMaker.

◆ 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: