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

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

#include <GloGenPersObjectSpy.h>

Öffentliche Methoden

 GenPersObjectSpy ()
 
virtual ~GenPersObjectSpy ()
 
GenericPersistentgetPersistentObject (const ObjID &rGloObjID)
 
GenericPersistentgetPersistentObject (EnSeekMode eMode)
 
int getPersistentObject (GenericPersistent *&prRetVal, const ObjID &rGloObjID)
 
int getPersistentObject (GenericPersistent *&prRetVal, EnSeekMode eMode)
 
int getPersistentObject (std::shared_ptr< GenericPersistent > &rRetVal, const ObjID &rGloObjID)
 
int getPersistentObject (std::shared_ptr< GenericPersistent > &srRetVal, EnSeekMode eMode)
 
int insertPersistentObject (const GenericPersistent *pPersObject)
 
int removePersistentObject (const GenericPersistent *pPersObject)
 
std::size_t sizeOfPersObjectList () const
 

Private Methoden

 GenPersObjectSpy (const GenPersObjectSpy &)
 
GenPersObjectSpyoperator= (const GenPersObjectSpy &)
 

Private Attribute

eut::CriticalSection m_LocalCriticalSection
 
std::unordered_map< unsigned long, GenericPersistent * > m_PersObjectList
 
std::unordered_map< unsignedlong, GenericPersistent * >::iterator m_PersObjectListIterator
 

Freundbeziehungen

class GenericPersistent
 

Ausführliche Beschreibung

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

Hier melden sich alle generischen persistenten Objekte einer Datenbank automatisch an.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ GenPersObjectSpy() [1/2]

glo::GenPersObjectSpy::GenPersObjectSpy ( )

Standard-Konstruktor.

◆ ~GenPersObjectSpy()

virtual glo::GenPersObjectSpy::~GenPersObjectSpy ( )
virtual

Destruktor.

◆ GenPersObjectSpy() [2/2]

glo::GenPersObjectSpy::GenPersObjectSpy ( const GenPersObjectSpy & )
private

Der Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ getPersistentObject() [1/6]

GenericPersistent * glo::GenPersObjectSpy::getPersistentObject ( const ObjID & rGloObjID)

Liefert einen Zeiger auf ein generisches persistentes Objekt aus der Liste der generischen persistenten Objekte, welches die übergebene Objekt-ID hat.

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

◆ getPersistentObject() [2/6]

GenericPersistent * glo::GenPersObjectSpy::getPersistentObject ( EnSeekMode eMode)

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

Parameter
[in]eModeDer Suchmodus

Parameterbeispiele:

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

◆ getPersistentObject() [3/6]

int glo::GenPersObjectSpy::getPersistentObject ( GenericPersistent *& prRetVal,
const ObjID & rGloObjID )

Liefert ein generisches persistentes Objekt mit übergebener Objekt-ID aus der Liste der generischen 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<GenericPersistent>&, const ObjID&) zu nutzen.

◆ getPersistentObject() [4/6]

int glo::GenPersObjectSpy::getPersistentObject ( GenericPersistent *& prRetVal,
EnSeekMode eMode )

Liefert ein generisches persistentes Objekt aus der Liste der generischen 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 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<GenericPersistent>&, EnSeekMode) zu nutzen.

◆ getPersistentObject() [5/6]

int glo::GenPersObjectSpy::getPersistentObject ( std::shared_ptr< GenericPersistent > & rRetVal,
const ObjID & rGloObjID )

Liefert ein generisches persistentes Objekt mit eine bestimmten Objekt-ID aus der Liste der generischen 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::GenPersObjectSpy::getPersistentObject ( std::shared_ptr< GenericPersistent > & srRetVal,
EnSeekMode eMode )

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

Parameter
[in,out]srRetValBei 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::GenPersObjectSpy::insertPersistentObject ( const GenericPersistent * pPersObject)

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

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

◆ operator=()

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

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ removePersistentObject()

int glo::GenPersObjectSpy::removePersistentObject ( const GenericPersistent * pPersObject)

Entfernt ein generisches persistentes Objekt aus der Liste der generischen persistenten Objekte.

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

◆ sizeOfPersObjectList()

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

Liefert die Anzahl der Einträge in m_PersObjectList.

Rückgabe
s.o.

Freundbeziehungen und Funktionsdokumentation

◆ GenericPersistent

friend class GenericPersistent
friend

Dokumentation der Datenelemente

◆ m_LocalCriticalSection

eut::CriticalSection glo::GenPersObjectSpy::m_LocalCriticalSection
private

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

◆ m_PersObjectList

std::unordered_map< unsigned long, GenericPersistent * > glo::GenPersObjectSpy::m_PersObjectList
private

Die Liste der generischen 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,GenericPersistent*>::iterator glo::GenPersObjectSpy::m_PersObjectListIterator
private

Ein interner Iterator auf die Liste der generischen persistenten Objekte.


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