BankAndCustomer
Lade ...
Suche ...
Keine Treffer
glo::Reference Klassenreferenz

Die Basisklasse eines Referenz-Attributs von persistenten Objekten auf andere persistente Objekte in der Datenbank. Mehr ...

#include <GloReference.h>

Klassendiagramm für glo::Reference:
Zusammengehörigkeiten von glo::Reference:

Öffentliche Methoden

 Reference ()
 
 Reference (const ObjID &rObjID)
 
 Reference (Base &rBase)
 
 Reference (unsigned long ulDatabaseID)
 
 Reference (const ObjID &rObjID, Base &rBase)
 
 Reference (const ObjID &rObjID, unsigned long ulDatabaseID)
 
 Reference (const Reference &rT)
 
virtual ~Reference ()
 
virtual int setBase (Base *pBase) override
 
virtual BasegetBase () const override
 
virtual int getTypeAsString (std::string &rsTypeName) override
 
bool isNULL () const
 
void setNULL ()
 
ObjID getObjID () const
 
const ObjIDgetObjIDAsPointer () const
 
virtual int setReference (const ObjID &rObjID)
 
int setReference (const BasePersistent *pObj)
 
int setReference (const BasePersistent &rObj)
 
int getReference (BasePersistent *&prRetVal)
 
int getReference (std::shared_ptr< BasePersistent > &sprRetVal)
 
virtual int deleteInBase (EnDeepMode eDeepMode=DM_SHALLOW)
 
virtual int lock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int lock (const LockSpecification &rLockSpecification) const
 
virtual int unlock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int unlock (const LockSpecification &rLockSpecification) const
 
virtual int isLocked (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int isLocked (const LockSpecification &rLockSpecification) const
 
virtual int isPossible (bool bRead, bool bWrite, bool bDelete, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int isPossible (const LockPossibleSpecification &rLockPossibleSpec, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int setWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0) const
 
virtual int setWatch (const WatchSpecification &rWatchSpec) const
 
virtual int unsetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack) const
 
virtual int unsetWatch (const WatchSpecification &rWatchSpec) const
 
Referenceoperator= (const Reference &rT)
 
bool operator== (const Reference &rT) const
 Vergleichsoperator.
 
bool operator!= (const Reference &rT) const
 Vergleichsoperator.
 
- Öffentliche Methoden geerbt von glo::CallBack
 CallBack ()
 
virtual ~CallBack ()
 
virtual void notify (NotifyNote &rNote)
 
CallBackoperator= (const CallBack &rT)
 
bool operator== (const CallBack &rT) const
 Vergleichsoperator, es werden alle Attribute verglichen.
 
bool operator!= (const CallBack &rT) const
 Vergleichsoperator, es werden alle Attribute verglichen.
 

Private Attribute

unsigned long m_ulDatabaseID
 
ObjID m_RefObjID
 

Freundbeziehungen

class ObjectMaker
 
class OndemandLot
 
class OndemandList
 
class OndemandSet
 
class TableReaderInterface
 
class BaseAllSet
 
class Base
 
class OdRefRecordAttribute
 

Weitere Geerbte Elemente

- Öffentliche Attribute geerbt von glo::CallBack
std::string m_strDebugInfo
 
- Geschützte Methoden geerbt von glo::CallBack
 CallBack (const CallBack &rT)
 
void init ()
 
void deinit ()
 

Ausführliche Beschreibung

Die Basisklasse eines Referenz-Attributs von persistenten Objekten auf andere persistente Objekte in der Datenbank.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ Reference() [1/7]

glo::Reference::Reference ( )

Standard-Konstruktor.

◆ Reference() [2/7]

glo::Reference::Reference ( const ObjID & rObjID)

Konstruktor mit Parameterübergabe.

Parameter
[in]rObjIDEs kann schon bei der Erstellung die Objekt-ID des zu referenzierenden Objekts mitgegeben werden.

◆ Reference() [3/7]

glo::Reference::Reference ( Base & rBase)

Konstruktor mit Parameterübergabe.

Parameter
[in]rBaseEs kann schon bei der Erstellung die maßgebliche Datenbank mitgegeben werden.

◆ Reference() [4/7]

glo::Reference::Reference ( unsigned long ulDatabaseID)

Konstruktor mit Parameterübergabe.

Parameter
[in]ulDatabaseIDEs kann schon bei der Erstellung die maßgebliche Datenbank ID mitgegeben werden.

◆ Reference() [5/7]

glo::Reference::Reference ( const ObjID & rObjID,
Base & rBase )

Konstruktor mit Parameterübergabe.

Parameter
[in]rObjIDEs kann schon bei der Erstellung die Objekt-ID des zu referenzierenden Objekts und...
[in]rBase...die maßgebliche Datenbank mitgegeben werden.
Ausnahmebehandlung
eut::ErrorNExceptionWenn die Datenbank-IDs der übergebenen Objekt-ID und der Datenbank nicht übereinstimmen, wird eine Exception geworfen.

◆ Reference() [6/7]

glo::Reference::Reference ( const ObjID & rObjID,
unsigned long ulDatabaseID )

Konstruktor mit Parameterübergabe.

Parameter
[in]rObjIDEs kann schon bei der Erstellung die Objekt-ID des zu referenzierenden Objekts und...
[in]ulDatabaseID...die maßgebliche Datenbank ID mitgegeben werden.
Ausnahmebehandlung
eut::ErrorNExceptionWenn die Datenbank-IDs der übergebenen Objekt-ID und der Datenbank nicht übereinstimmen, wird eine Exception geworfen.

◆ Reference() [7/7]

glo::Reference::Reference ( const Reference & rT)

Copy-Konstruktor.

Parameter
[in]rTVon diesem Objekt werden die Daten übernommen.

◆ ~Reference()

virtual glo::Reference::~Reference ( )
virtual

Destruktor.

Dokumentation der Elementfunktionen

◆ deleteInBase()

virtual int glo::Reference::deleteInBase ( EnDeepMode eDeepMode = DM_SHALLOW)
virtual

Referenziertes Objekt wird in der Datenbank gelöscht.

Parameter
[in]eDeepModeDer Löschtiefenmodus
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ getBase()

virtual Base * glo::Reference::getBase ( ) const
overridevirtual
Rückgabe
Liefert Zeiger auf die Datenbank.
Achtung
Das gelieferte Objekt darf von der aufrufenden Insztanz nicht aus dem Speicher entfernt werden.
Siehe auch
setBase(Base*)

Erneute Implementation von glo::CallBack.

◆ getObjID()

ObjID glo::Reference::getObjID ( ) const

Liefert die Objekt-ID der Referenz.

Rückgabe
s.o.

◆ getObjIDAsPointer()

const ObjID * glo::Reference::getObjIDAsPointer ( ) const

Liefert die Objekt-ID der Referenz als Zeiger.

Rückgabe
s.o.

◆ getReference() [1/2]

int glo::Reference::getReference ( BasePersistent *& prRetVal)

Liefert das referenzierte Objekt aus der Datenbank (bzw. aus dem Speicher wenn schon geladen).

Parameter
[in,out]prRetValDas referenzierte Objekt.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Achtung
Das gelieferte Objekt muss von der aufrufenden Instanz mittels BasePersistent::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 getReference(std::shared_ptr<BasePersistent>&) zu nutzen.

◆ getReference() [2/2]

int glo::Reference::getReference ( std::shared_ptr< BasePersistent > & sprRetVal)

Liefert das referenzierte Objekt aus der Datenbank (bzw. aus dem Speicher wenn schon geladen).

Parameter
[in,out]sprRetValDas referenzierte Objekt.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ getTypeAsString()

virtual int glo::Reference::getTypeAsString ( std::string & rsTypeName)
overridevirtual

Liefert den Typ der Referenz, also den Klassennamen als String, wenn mit Datenbank verbunden.

Parameter
[in,out]rsTypeNameDie Typbezeichnung.
Rückgabe
Wenn Rückgabewert < 0, dann ist ein Fehler aufgetreten.

Erneute Implementation von glo::CallBack.

◆ isLocked() [1/2]

virtual int glo::Reference::isLocked ( const LockSpecification & rLockSpecification) const
virtual

Prüft, ob referenziertes Objekt in der Datenbank mit den übergebenen Parametern gelockt ist.

Parameter
[in]rLockSpecificationDer Sperr- und Sperrtiefenmodus.
Rückgabe
Wenn > 0, ist das Objekt in der Datenbank gesperrt. Eine Rückgabe < 0 zeigt einen Fehler an.
Siehe auch
Objekt auf Sperren bzw. Zugriffsmöglichkeiten prüfen.

◆ isLocked() [2/2]

virtual int glo::Reference::isLocked ( EnLockMode eLockMode = LK_DELETEvWRITE,
EnDeepMode eDeepMode = DM_SHALLOW ) const
virtual

Fragt in der Datenbank nach, ob das referenziertes Objekt mit einem bestimmten Sperrmodus von einer anderen Instanz gesperrt ist (nicht irgendein Flag im Speicher, also 'teuer').

Parameter
[in]eLockModeDer Sperrmodus.
[in]eDeepModeDer Sperrtiefenmodus.
Rückgabe
Wenn > 0, ist das Objekt in der Datenbank gesperrt. Eine Rückgabe < 0 zeigt einen Fehler an.
Siehe auch
Objekt auf Sperren bzw. Zugriffsmöglichkeiten prüfen.

◆ isNULL()

bool glo::Reference::isNULL ( ) const

Prüft ob die Referenz formal gültig ist.

Rückgabe
Liefert true, wenn die Referenz formal ungültig ist.

◆ isPossible() [1/2]

virtual int glo::Reference::isPossible ( bool bRead,
bool bWrite,
bool bDelete,
EnDeepMode eDeepMode = DM_SHALLOW ) const
virtual

Prüft die erlaubten Aktionen für das referenzierte Objekt in der Datenbank.

Parameter
[in]bReadWenn true, wird auf Lesen dürfen geprüft.
[in]bWriteWenn true, wird auf Schreiben dürfen geprüft.
[in]bDeleteWenn true, wird auf Löschen dürfen geprüft.
[in]eDeepModeDer Tiefenmodus für den geprüft wird.
Rückgabe
Wenn Rückgabe == 0, ist die Anfrage erlaubt. Eine Rückgabe < 0 zeigt einen Fehler an.
Siehe auch
Objekt auf Sperren bzw. Zugriffsmöglichkeiten prüfen.

◆ isPossible() [2/2]

virtual int glo::Reference::isPossible ( const LockPossibleSpecification & rLockPossibleSpec,
EnDeepMode eDeepMode = DM_SHALLOW ) const
virtual

Prüft die erlaubten Aktionen für das referenzierte Objekt in der Datenbank.

Parameter
[in]rLockPossibleSpecDie Möglichkeitsanfrage.
[in]eDeepModeDer Tiefenmodus für den geprüft wird.
Rückgabe
Wenn Rückgabe == 0, ist die Anfrage erlaubt. Eine Rückgabe < 0 zeigt einen Fehler an.
Siehe auch
Objekt auf Sperren bzw. Zugriffsmöglichkeiten prüfen.

◆ lock() [1/2]

virtual int glo::Reference::lock ( const LockSpecification & rLockSpecification) const
virtual

Das referenzierte Objekt wird in der Datenbank für andere Clients gesperrt.

Parameter
[in]rLockSpecificationDer Sperr- und Sperrtiefenmodus.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Um die Sperre aufzuheben muss die korrespondierende Methode unlock(const LockSpecification&) const mit gleichen Parameterwerten genutzt werden.
Siehe auch
Ein persistentes Objekt sperren.

◆ lock() [2/2]

virtual int glo::Reference::lock ( EnLockMode eLockMode = LK_DELETEvWRITE,
EnDeepMode eDeepMode = DM_SHALLOW ) const
virtual

Das referenzierte Objekt wird in der Datenbank für andere Clients gesperrt.

Parameter
[in]eLockModeDer Sperrmodus.
[in]eDeepModeDer Sperrtiefenmodus.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Um die Sperre aufzuheben muss die korrespondierende Methode unlock(EnLockMode, EnDeepMode) const mit gleichen Parameterwerten genutzt werden.
Siehe auch
Ein persistentes Objekt sperren.

◆ operator!=()

bool glo::Reference::operator!= ( const Reference & rT) const

Vergleichsoperator.

Parameter
[in]rTDas mit diesem zu vergleichende Objekt.

◆ operator=()

Reference & glo::Reference::operator= ( const Reference & rT)

Zuweisungsoperator.

Parameter
[in]rTVon diesem Objekt werden die Daten übernommen.

◆ operator==()

bool glo::Reference::operator== ( const Reference & rT) const

Vergleichsoperator.

Parameter
[in]rTDas mit diesem zu vergleichende Objekt.

◆ setBase()

virtual int glo::Reference::setBase ( Base * pBase)
overridevirtual

Setzt den Zeiger auf die Datenbank.

Parameter
[in]pBaseZeiger auf die Datenbank.
Rückgabe
Wenn Rückgabewert < 0, dann ist ein Fehler aufgetreten.
Achtung
Die Datenbank verbleibt in der Verantwortung der aufrufenden Instanz. Wird z.B. die Datenbank aus dem Speicher entfernt, muss vorher setBase(Base*) mit nullptr oder removeBase() aufgerufen werden.

Erneute Implementation von glo::CallBack.

◆ setNULL()

void glo::Reference::setNULL ( )

Setzt die Referenz auf formal ungültig.

◆ setReference() [1/3]

int glo::Reference::setReference ( const BasePersistent & rObj)

Übernimmt die Objekt-ID des übergeben Objekt als Referenz. Beide Objekte, dieses und das zu referenzierende Objekt müssen an der selben Datenbank angemeldet sein.

Parameter
[in]rObjDie Objekt-ID des zu referenzierenden Objekts.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ setReference() [2/3]

int glo::Reference::setReference ( const BasePersistent * pObj)

Übernimmt die Objekt-ID des übergeben Objekt als Referenz. Beide Objekte, dieses und das zu referenzierende Objekt müssen an der selben Datenbank angemeldet sein.

Parameter
[in]pObjDie Objekt-ID des zu referenzierenden Objekts.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ setReference() [3/3]

virtual int glo::Reference::setReference ( const ObjID & rObjID)
virtual

Übernimmt die Objekt-ID.

Parameter
[in]rObjIDDie Objekt-ID des zu referenzierenden Objekts.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

Erneute Implementation in glo::TOndemand< T >.

◆ setWatch() [1/2]

virtual int glo::Reference::setWatch ( const WatchSpecification & rWatchSpec) const
virtual

Das referenzierte Objekt wird in der Datenbank überwacht.

Parameter
[in]rWatchSpecDie Überwachungsspezifikation. CallBack::notify() benachrichtigt wird.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Um die Überwachung aufzuheben muss die korrespondierende Methode BasePersistent::unsetWatch( const WatchSpecification & rWatchSpec ) const mit gleichen Parameterwerten genutzt werden.
Siehe auch
Beobachten und benachrichtigen.

◆ setWatch() [2/2]

virtual int glo::Reference::setWatch ( TdWatchNotifyMode ulWatchMode,
EnDeepMode eDeepMode,
CallBack * pCallBack = 0 ) const
virtual

Das referenzierte Objekt wird in der Datenbank überwacht.

Parameter
[in]ulWatchModeDer Überwachungsmodus.
Erlaubte Überwachungsmodi:
  • ::WNM_WRITE = schreiben wird gemeldet
  • ::WNM_WRITE_TRANSACTION = wie ::WNM_WRITE, wird in einer Transaktion ausgelöst
  • ::WNM_DELETE = löschen wird gemeldet
  • ::WNM_DELETE_TRANSACTION = wie ::WNM_DELETE, wird in einer Transaktion ausgelöst
  • ::WNM_LOCK = sperren wird gemeldet
  • ::WNM_UNLOCK = freigeben wird gemeldet
[in]eDeepModeDer Überwachungstiefenmodus.
[in]pCallBackDas CallBack-Objekt, welches über seine Methode CallBack::notify(NotifyNote&) benachrichtigt wird. Wenn kein CallBack übergeben, wird notify(NotifyNote&) von this genommen; in diesem Fall sollte die Methode notify(NotifyNote&) in der jeweiligen abgeleiteten Klasse überschrieben sein.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Um die Überwachung aufzuheben muss die korrespondierende Methode unsetWatch( TdWatchNotifyMode, EnDeepMode, CallBack*) const mit gleichen Parameterwerten genutzt werden.
Achtung
Grundsätzlich darf pCallBack nicht zerstört werden, bevor der bzw. die Überwachungen zurückgenommen wurden!
Siehe auch
Beobachten und benachrichtigen.

◆ unlock() [1/2]

virtual int glo::Reference::unlock ( const LockSpecification & rLockSpecification) const
virtual

Das referenzierte Objekt wird in der Datenbank freigegeben. Eine Sperrfreigabe muss mit den gleichen Parametern wie der vorherige Sperraufruf aufgerufen werden.

Parameter
[in]rLockSpecificationDer ursprüngliche Sperr- und Sperrtiefenmodus.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Hebt die Sperre auf, die durch die korrespondierende Methode lock(const LockSpecification&) const initiiet wurde, wenn der Parameter die selben Werte hat.
Siehe auch
Ein persistentes Objekt sperren.

◆ unlock() [2/2]

virtual int glo::Reference::unlock ( EnLockMode eLockMode = LK_DELETEvWRITE,
EnDeepMode eDeepMode = DM_SHALLOW ) const
virtual

Das referenzierte Objekt wird in der Datenbank freigegeben. Eine Sperrfreigabe muss mit den gleichen Parametern wie der vorherige Sperraufruf aufgerufen werden.

Parameter
[in]eLockModeDer ursprüngliche Sperrmodus.
[in]eDeepModeDer ursprüngliche Sperrtiefenmodus.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Hebt die Sperre auf, die durch die korrespondierende Methode lock(EnLockMode, EnDeepMode) const initiiet wurde, wenn die Parameter die selben Werte haben.
Siehe auch
Ein persistentes Objekt sperren.

◆ unsetWatch() [1/2]

virtual int glo::Reference::unsetWatch ( const WatchSpecification & rWatchSpec) const
virtual

Die Überwachung des referenzierten Objekts in der Datenbank wird abgebrochen. Eine Überwachungsbeendigung muss mit den gleichen Parametern wie die vorherige Überwachung aufgerufen werden.

Parameter
[in]rWatchSpecDie Überwachungsspezifikation.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Hebt die Überwachung auf, die durch die korrespondierende Methode setWatch(const WatchSpecification&) const initiiet wurde, wenn die Parameter die selben Werte haben.
Siehe auch
Beobachten und benachrichtigen.

◆ unsetWatch() [2/2]

virtual int glo::Reference::unsetWatch ( TdWatchNotifyMode ulWatchMode,
EnDeepMode eDeepMode,
CallBack * pCallBack ) const
virtual

Die Überwachung des referenzierten Objekts in der Datenbank wird beendet. Eine Überwachungsbeendigung muss mit den gleichen Parametern wie die vorherige Überwachung aufgerufen werden.

Parameter
[in]ulWatchModeDer ursprüngliche Überwachungsmodus.
Erlaubte Überwachungsmodi:
  • ::WNM_WRITE = schreiben wird gemeldet
  • ::WNM_WRITE_TRANSACTION = wie ::WNM_WRITE, wird in einer Transaktion ausgelöst
  • ::WNM_DELETE = löschen wird gemeldet
  • ::WNM_DELETE_TRANSACTION = wie ::WNM_DELETE, wird in einer Transaktion ausgelöst
  • ::WNM_LOCK = sperren wird gemeldet
  • ::WNM_UNLOCK = freigeben wird gemeldet
[in]eDeepModeDer ursprüngliche Überwachungstiefenmodus.
[in]pCallBackDas CallBack-Objekt, welches über seine Methode CallBack::notify(NotifyNote&) benachrichtigt wird. Wenn kein CallBack übergeben, wird notify(NotifyNote&) von this genommen; in diesem Fall sollte die Methode notify(NotifyNote&) in der jeweiligen abgeleiteten Klasse überschrieben sein.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Hebt die Überwachung auf, die durch die korrespondierende Methode setWatch(TdWatchNotifyMode, EnDeepMode, CallBack*) const initiiet wurde, wenn die Parameter die selben Werte haben.
Siehe auch
Beobachten und benachrichtigen.

Freunde und bezugnehmende Symbol-Dokumentation

◆ Base

friend class Base
friend

◆ BaseAllSet

friend class BaseAllSet
friend

◆ ObjectMaker

friend class ObjectMaker
friend

◆ OdRefRecordAttribute

friend class OdRefRecordAttribute
friend

◆ OndemandList

friend class OndemandList
friend

◆ OndemandLot

friend class OndemandLot
friend

◆ OndemandSet

friend class OndemandSet
friend

◆ TableReaderInterface

friend class TableReaderInterface
friend

Dokumentation der Datenelemente

◆ m_RefObjID

ObjID glo::Reference::m_RefObjID
private

Die Referenz auf ein persistentes Objekt als Objekt-ID.

◆ m_ulDatabaseID

unsigned long glo::Reference::m_ulDatabaseID
private

Die Referenz auf eine Datenbank über die Datenbank-ID.


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