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

Klasse zum Zugriff auf die geöffneten Datenbanken. Mehr ...

#include <GloOpenedDatabases.h>

Öffentliche Methoden

BasegetDataBase (unsigned long ulDatabaseID)
 

Öffentliche, statische Methoden

static void create (OpenedDatabases *&prInstance)
 
static int destroy ()
 

Geschützte Methoden

 OpenedDatabases ()
 
virtual ~OpenedDatabases ()
 
int insertDataBase (const Base *pDatabase)
 
int removeDataBase (unsigned long ulDatabaseID)
 

Statische, geschützte Attribute

static int ms_iReferenceCounter
 
static OpenedDatabasesms_pInstance
 

Private Methoden

 OpenedDatabases (const OpenedDatabases &)
 
OpenedDatabasesoperator= (const OpenedDatabases &)
 

Private Attribute

std::unordered_map< unsigned long, Base * > m_BaseContainer
 
eut::CriticalSection m_CallBackListCriticalSection
 

Freundbeziehungen

class Base
 

Ausführliche Beschreibung

Klasse zum Zugriff auf die geöffneten Datenbanken.

Hier melden sich alle Datenbanken beim Öffnen an und beim Schließen automatisch wieder ab.

Es kann nur ein Objekt dieser Klasse geben (Singleton-Klasse).

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ OpenedDatabases() [1/2]

glo::OpenedDatabases::OpenedDatabases ( )
protected

Der Standard-Konstruktor steht nicht zur Verfügung. Eine Instanz bekommt man über OpenedDatabases::create(OpenedDatabases*&) .

◆ ~OpenedDatabases()

virtual glo::OpenedDatabases::~OpenedDatabases ( )
protectedvirtual

Der Destruktor steht nicht zur Verfügung. Ein DebugClassSpy-Objekt darf nur über OpenedDatabases::destroy() aus dem Speicher entfernt werden.

◆ OpenedDatabases() [2/2]

glo::OpenedDatabases::OpenedDatabases ( const OpenedDatabases & )
private

Der Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ create()

static void glo::OpenedDatabases::create ( OpenedDatabases *& prInstance)
static

Instanziierungsfunktion. Da es sich bei OpenedDatabases um eine Singleton-Class handelt, wird diese von dieser Methode einmalig instanziiert und dann nur noch der Pointer auf die Instanz geliefert.

Parameter
[in,out]prInstanceDie einzige Instanz dieser Klasse.
Achtung
Die gelieferte Instanz muss mit OpenedDatabases::destroy() aus dem Speicher entfernt werden.

◆ destroy()

static int glo::OpenedDatabases::destroy ( )
static

Wenn die aufrufende Instanz die letzte mit einer Referenz auf die einzige Instanz von OpenedDatabases ist, wird diese Instanz aus dem Speicher entfernt.

Rückgabe
Rückgabe ist die Anzahl der Noch-Referenzen auf diese Instanz.

◆ getDataBase()

Base * glo::OpenedDatabases::getDataBase ( unsigned long ulDatabaseID)

Liefert ein Datenbankobjekt aus der Liste der Datenbankobjekte in Bezug auf die Datenbank-ID.

Rückgabe
Das Datenbankobjekt, wenn gefunden; ansonsten nullptr.
Achtung
Die aufrufende Instanz darf das zurückgegebene Objekt nicht aus dem Speicher entfernen. Es existiert nur, solange es nicht von der erstellenden Instanz aus dem Speicher entfernt wird.

◆ insertDataBase()

int glo::OpenedDatabases::insertDataBase ( const Base * pDatabase)
protected

Fügt ein Datenbankobjekt in die Liste der Datenbankobjekte ein.

Parameter
[in]pDatabaseDas einzufügende Datenbankobjekt.

◆ operator=()

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

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ removeDataBase()

int glo::OpenedDatabases::removeDataBase ( unsigned long ulDatabaseID)
protected

Entfernt ein Datenbankobjekt aus der Liste der Datenbankobjekt.

Parameter
[in]ulDatabaseIDDie Datenbank-ID der zu entfernenden Datenbankobjekt.

Freunde und bezugnehmende Symbol-Dokumentation

◆ Base

friend class Base
friend

Dokumentation der Datenelemente

◆ m_BaseContainer

std::unordered_map< unsigned long, Base * > glo::OpenedDatabases::m_BaseContainer
private

Der Container der Datenbank-Objekte. Der Index ist die Base-ID.

◆ m_CallBackListCriticalSection

eut::CriticalSection glo::OpenedDatabases::m_CallBackListCriticalSection
private

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

◆ ms_iReferenceCounter

int glo::OpenedDatabases::ms_iReferenceCounter
staticprotected

Der Referenzzähler auf die einzige Instanz dieser Klasse.

◆ ms_pInstance

OpenedDatabases* glo::OpenedDatabases::ms_pInstance
staticprotected

Die einzige Instanz dieser Klasse.


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