GlobalObjects
Lade ...
Suche ...
Keine Treffer
glo::TransactionManager::CommunicatorTransactionStack Klassenreferenz

Der Transaktions-Stack eines Client-Kommunikators für eine Datenbank. Mehr ...

#include <GloTransactionManager.h>

Öffentliche Methoden

 CommunicatorTransactionStack (Communicator *pCommunicator)
 
 ~CommunicatorTransactionStack ()
 
bool abortTransaction (std::list< TransactionBase * > &rAbortedTransactionStepList)
 
void beginTransaction ()
 
bool commitTransaction ()
 
CommunicatorgetCommunicator ()
 
std::list< TransactionManager::TransactionBase * > & getTransactionStack ()
 
int setTransactionStep (NUM_PTR &nNewTrxStepAddr, EnStoreDelete eAction, Record *pActionRecord)
 

Geschützte Methoden

 CommunicatorTransactionStack ()
 

Private Methoden

 CommunicatorTransactionStack (const CommunicatorTransactionStack &)
 
TransactionManager::CommunicatorTransactionStackoperator= (const CommunicatorTransactionStack &)
 

Private Attribute

int m_iCurrentTransactionPoint
 
Communicatorm_pCommunicator
 
std::list< TransactionBase * > m_TransactionStack
 

Ausführliche Beschreibung

Der Transaktions-Stack eines Client-Kommunikators für eine Datenbank.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ CommunicatorTransactionStack() [1/3]

glo::TransactionManager::CommunicatorTransactionStack::CommunicatorTransactionStack ( )
protected

Der Standard-Konstruktor steht nicht zur Verfügung.

◆ CommunicatorTransactionStack() [2/3]

glo::TransactionManager::CommunicatorTransactionStack::CommunicatorTransactionStack ( Communicator * pCommunicator)

Konstruktor mit Parameterübergabe.

Parameter
[in]pCommunicatorDer Client-Kommunikator, der die Transaktion startet.
Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.

◆ ~CommunicatorTransactionStack()

glo::TransactionManager::CommunicatorTransactionStack::~CommunicatorTransactionStack ( )

Destruktor, es wird die Transaktion abgebrochen und der Speicher aufgeräumt.

◆ CommunicatorTransactionStack() [3/3]

glo::TransactionManager::CommunicatorTransactionStack::CommunicatorTransactionStack ( const CommunicatorTransactionStack & )
private

Der Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ abortTransaction()

bool glo::TransactionManager::CommunicatorTransactionStack::abortTransaction ( std::list< TransactionBase * > & rAbortedTransactionStepList)

Es wird der Transaktions-Stack bis zum TransactionPoint mit dem aktuelenn Wert aus m_iCurrentTransactionPoint abgebaut.

Dann wird der Wert in m_iCurrentTransactionPoint dekrementiert. Wenn dieser 0,wird true geliefert.

Parameter
[in,out]rAbortedTransactionStepListIn dieser Liste werden die verworfenen TransactionSteps geliefert (müssen u.a. noch im LockManager freigegeben werden).
Rückgabe
Wenn true geliefert, kann die Abarbeitung der TransactionSteps verworfen werden, der Transaktions-Stack ist dann auch leer.
Achtung
Die Objekte in der gelieferten Liste müssen von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ beginTransaction()

void glo::TransactionManager::CommunicatorTransactionStack::beginTransaction ( )

Beginnt eine neue Transaktion, indem ein neuer TransactionPoint auf den Transaktions-Stack gelegt wird.

◆ commitTransaction()

bool glo::TransactionManager::CommunicatorTransactionStack::commitTransaction ( )

Es wird der Wert in m_iCurrentTransactionPoint dekrementiert. Wenn dieser 0, wird true geliefert.

Rückgabe
Wenn true geliefert, kann die Abarbeitung der TransactionSteps vorgenommen werden.

◆ getCommunicator()

Communicator * glo::TransactionManager::CommunicatorTransactionStack::getCommunicator ( )

Liefert einen Zeiger auf den Client-Kommunikator, der die Transaktion gestartet hat..

Rückgabe
s.o.

◆ getTransactionStack()

std::list< TransactionManager::TransactionBase * > & glo::TransactionManager::CommunicatorTransactionStack::getTransactionStack ( )

Liefert eine Referenz auf den Transaktions-Stack.

Rückgabe
s.o.

◆ operator=()

TransactionManager::CommunicatorTransactionStack & glo::TransactionManager::CommunicatorTransactionStack::operator= ( const CommunicatorTransactionStack & )
private

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ setTransactionStep()

int glo::TransactionManager::CommunicatorTransactionStack::setTransactionStep ( NUM_PTR & nNewTrxStepAddr,
EnStoreDelete eAction,
Record * pActionRecord )

Generiert einen TransactionStep und legt diesen auf den Transaktions-Stack.

Parameter
[in,out]nNewTrxStepAddrDie Adresse des erstellten Transaktionsschritts, um Indexe verwalten zu können (siehe auch IndexPool::ObjectStrIndex::m_ReservedIndexMultiMap).
[in]eActionDie Aktion wie mit dem Datensatz umgegangen werden soll; speichern oder löschen.
[in]pActionRecordDer Datensatz welcher gespeichert bzw. gelöscht werden soll. Es wird der Datensatz kopiert und nicht 'remembert'.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

Dokumentation der Datenelemente

◆ m_iCurrentTransactionPoint

int glo::TransactionManager::CommunicatorTransactionStack::m_iCurrentTransactionPoint
private

Der aktuelle Zähler des letzten TransactionPoint.

◆ m_pCommunicator

Communicator* glo::TransactionManager::CommunicatorTransactionStack::m_pCommunicator
private

Der Client-Kommunikator, der die Transaktion gestartet hat.

◆ m_TransactionStack

std::list<TransactionBase *> glo::TransactionManager::CommunicatorTransactionStack::m_TransactionStack
private

Die Liste der einzelnen Objekte vom Typ TransactionPoint und TransactionStep.


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