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

Objekte dieser Klasse transportieren die Daten von den Tabellen ins persistente Objekt und von diesen wieder in die Tabellen. Mehr ...

#include <GloRecord.h>

Klassen

class  IndexStrNameTuple
 IndexStrNameTuples halten einen Index als sortierbaren String, dessen Bezeichnung und die Klassen-ID der Klasse welche indiziert wird (kann eine Oberklasse von der Klasse mit dem Record sein) und ob der Index eindeutig (unique) ist. Mehr ...
 

Öffentliche Methoden

 Record ()
 
 Record (const ObjID &rObjID)
 
 Record (const Record &rT, bool bDeepCopy=false)
 
std::string _DEBUG_ToString ()
 
bool allObjIDsHaveFilePos () const
 
void deleteAllAttributeData ()
 
void deleteAllIndexStrings ()
 
unsigned int forget ()
 
void getAllAttributes (std::list< BaseRecordAttribute * > &rRetValList, const std::vector< unsigned long > *pClassIdVector=0) const
 
void getAllAttributes (std::list< std::shared_ptr< BaseRecordAttribute > > &rRetValList, const std::vector< unsigned long > *pClassIdVector=0) const
 
void getAllAttributesSortByID (std::map< AttributeID, BaseRecordAttribute *, std::less< AttributeID > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
void getAllAttributesSortByID (std::map< AttributeID, std::shared_ptr< BaseRecordAttribute >, std::less< AttributeID > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
void getAllAttributesSortByName (std::map< std::string, BaseRecordAttribute *, std::less< std::string > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
void getAllAttributesSortByName (std::map< std::string, std::shared_ptr< BaseRecordAttribute >, std::less< std::string > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
void getAllClassMemberNames (std::list< std::string > &rRetValList, const std::vector< unsigned long > *pClassIdVector=0) const
 
void getAllClassMemberNamesSortByID (std::map< AttributeID, std::string > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
std::vector< std::shared_ptr< Record::IndexStrNameTuple > > getAllIndexStrings () const
 
int getAttribute (BaseRecordAttribute *&prRetVal, EnSeekMode eMode)
 
int getAttribute (std::shared_ptr< BaseRecordAttribute > &rRetVal, EnSeekMode eMode)
 
int getAttributeByAttributeID (BaseRecordAttribute *&prRetVal, const AttributeID &rAttributeID) const
 
int getAttributeByAttributeID (std::shared_ptr< BaseRecordAttribute > &rRetVal, const AttributeID &rAttributeID) const
 
int getAttributeByClassMemberName (BaseRecordAttribute *&prRetVal, const std::string &sName) const
 
int getAttributeByClassMemberName (std::shared_ptr< BaseRecordAttribute > &rRetVal, const std::string &sName) const
 
int getAttributeByFieldName (BaseRecordAttribute *&prRetVal, const std::string &sName) const
 
int getAttributeByFieldName (std::shared_ptr< BaseRecordAttribute > &rRetVal, const std::string &sName) const
 
int getAttributeByTableFieldName (BaseRecordAttribute *&prRetVal, const std::string &sName) const
 
int getAttributeByTableFieldName (std::shared_ptr< BaseRecordAttribute > &rRetVal, const std::string &sName) const
 
int getAttributesFromTableSortByFieldPos (std::vector< BaseRecordAttribute * > &rRetValVector, unsigned long ulClassID)
 
unsigned long getClassID () const
 
ObjID getObjID () const
 
unsigned int getReferenceCount () const
 
int getTableObjIDAttribute (ObjIDRecordAttribute *&prRetVal, EnSeekMode eMode)
 
int getTableObjIDAttribute (std::shared_ptr< BaseRecordAttribute > &rRetVal, EnSeekMode eMode)
 
bool hasObjIDInMap () const
 
int initNew ()
 
int initNew (const std::map< unsigned long, ClassInfo * > &rClassInfoMap, unsigned long ulClassID, bool bWithSuperClassAttributes=true)
 
int initNew (const std::map< unsigned long, std::shared_ptr< glo::ClassInfo > > &rClassInfoMap, unsigned long ulClassID, bool bWithSuperClassAttributes=true)
 
int initNew (unsigned long ulClassID)
 
void insertInAllIndexStrings (const std::string &rsIndex, const std::string &rsIndexName, bool bUnique, unsigned long ulClassID)
 
Recordoperator= (const Record &rT)
 
unsigned int remember ()
 
void removeAndForgetAllBaseRecordAttributes ()
 
void removeAndForgetAllObjIDRecordAttributes ()
 
void removeGenericDanglingPointer ()
 
void setDeterminedFileNamesForAllAttributesWithThese ()
 
void setObjID (const ObjID &rObjID)
 
int takeOverAttribute (BaseRecordAttribute *pAttribute, bool bDeepCopy=false)
 
int takeOverObjIDsFilePos (const Record &rSourceRecord)
 
int takeOverRecord (const Record &rRecord, bool bDeepCopy=false)
 
int takeOverRecordData (const Record &rSourceRecord)
 

Statische öffentliche Attribute

static unsigned int sm_uiInstanceCount
 

Geschützte Methoden

virtual ~Record ()
 
int acceptClassInfoAttributesToDataAttributes (const std::set< ClassInfoAttribute * > &rClassInfoAttributeSet, unsigned long ulClassID)
 
const std::map< AttributeID, BaseRecordAttribute *, std::less< AttributeID > > & AttributeMap () const
 
bool containedInAttributeSet (const BaseRecordAttribute &rPruefAttribut) const
 
bool containedInTableObjIDSet (const ObjIDRecordAttribute &rPruefAttribut) const
 
const std::vector< BaseRecordAttribute * > & FileAttributes () const
 
int getIndexString (std::string &rsRetValIndex, const SchemaInterface &rSchemaInterface, const ClassInfoIndex &rClassInfoIndex, const std::map< ObjID, Record *, std::less< ObjID > > &rIndexRecords) const
 
int getIndexString (std::string &rsRetValIndex, const std::vector< eut::LanguageFunctions::EnLanguageKey > &rLanguageKeys, bool bCaseSensitive, const SchemaInterface &rSchemaInterface, const ClassInfoIndex::IndexAttributeItem &rIndexAttributeItem, const std::map< ObjID, Record *, std::less< ObjID > > &rIndexRecords) const
 
const std::vector< BaseRecordAttribute * > & ObjectReferencingAttributes () const
 
void removeAllFilePos ()
 
const std::map< AttributeID, ObjIDRecordAttribute *, std::less< AttributeID > > & TableObjIDMap () const
 
int takeOverTableObjIDAttribute (ObjIDRecordAttribute *pObjIDAttribute, bool bDeepCopy=false)
 

Private Methoden

void init ()
 

Private Attribute

std::map< AttributeID, BaseRecordAttribute *, std::less< AttributeID > > m_AttributeMap
 
std::map< AttributeID, BaseRecordAttribute * >::iterator m_AttributeMapIterator
 
bool m_bDeleteControl
 
std::vector< BaseRecordAttribute * > m_FileAttributes
 
std::vector< std::shared_ptr< Record::IndexStrNameTuple > > m_IndexStrNameTupleVector
 
eut::CriticalSection m_LocalCriticalSection
 
std::vector< BaseRecordAttribute * > m_ObjectReferencingAttributes
 
ObjID m_ObjID
 
std::map< AttributeID, ObjIDRecordAttribute *, std::less< AttributeID > > m_TableObjIDMap
 
std::map< AttributeID, ObjIDRecordAttribute * >::iterator m_TableObjIDMapIterator
 
unsigned int m_uiReferenceCount
 

Freundbeziehungen

class DataStreamer
 
class Manager
 
class PrivateBase
 
class TableReaderInterface
 
class TableWriterInterface
 
class TransactionManager
 

Ausführliche Beschreibung

Objekte dieser Klasse transportieren die Daten von den Tabellen ins persistente Objekt und von diesen wieder in die Tabellen.

Objekte dieses Typs haben einen Referenzzähler und dürfen nicht mittels des Destruktors aus den Speicher entfernt werden.

Objekte mit Referenzzähler dürfen nur einmalig instanziiert werden. Bei Übergabe an eine andere Instanz wird über Record::remember() der Referenzzähler inkrementiert.

Wenn die jetzt besitzende Instanz das Objekt nicht mehr braucht, wird über Record::forget() der Referenzzähler dekrementiert.

Wenn der Referenzzähler auf 0 läuft, wird der Destruktors automatisch aufgerufen.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ Record() [1/3]

glo::Record::Record ( )

Standard-Konstruktor.

◆ Record() [2/3]

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

Konstruktor mit Parameterübergabe.

Parameter
[in]rObjIDDie Objekt-ID.

◆ Record() [3/3]

glo::Record::Record ( const Record & rT,
bool bDeepCopy = false )

Copy-Konstruktor mit zusätzlicher Parameterübergabe.

Parameter
[in]rTDas zu kopierende Objekt.
[in]bDeepCopyWenn true, werden alle Datensatzattribute kopiert, ansonsten wird der Referenzzähler der Datensatzattribute inkrementiert (Voreinstellung).

◆ ~Record()

virtual glo::Record::~Record ( )
protectedvirtual

Destruktor, es wird der Speicher aufgeräumt.

Dokumentation der Elementfunktionen

◆ _DEBUG_ToString()

std::string glo::Record::_DEBUG_ToString ( )

Liefert den Objektinhalt als String.

◆ acceptClassInfoAttributesToDataAttributes()

int glo::Record::acceptClassInfoAttributesToDataAttributes ( const std::set< ClassInfoAttribute * > & rClassInfoAttributeSet,
unsigned long ulClassID )
protected

Generiert für alle übergebenen Klasseninformations-Attribute ein Datensatzattribut und übernimmt dieses in die Liste der Datensatzattribut.

Parameter
[in]rClassInfoAttributeSetListe der zu generierenden Datensatzattribute.
[in]ulClassIDDie Klassen-ID.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ allObjIDsHaveFilePos()

bool glo::Record::allObjIDsHaveFilePos ( ) const

Liefert true, wenn m_TableObjIDMap nicht leer und alle ObjIDs eine Dateiposition eingetragen haben; ansonten false.

Rückgabe
s.o.

◆ AttributeMap()

const std::map< AttributeID, BaseRecordAttribute *, std::less< AttributeID > > & glo::Record::AttributeMap ( ) const
protected

Liefert die Referenz auf die Liste der Datensatzattribute (m_AttributeMap).

Rückgabe
Referenz auf die Liste der Datensatzattribute, lebt nur so lange wie das liefernde Objekt.

◆ containedInAttributeSet()

bool glo::Record::containedInAttributeSet ( const BaseRecordAttribute & rPruefAttribut) const
protected

Prüft ob ein Datensatzattribut in der Liste der Datensatzattribute vorhanden ist. Es wird die Attribut-ID (siehe auch AttributeID) verglichen.

Parameter
[in]rPruefAttributDas zu prüfende Datensatzattribut.
Rückgabe
Wenn true, ist das Datensatzattribut vorhanden.
Siehe auch
m_AttributeMap

◆ containedInTableObjIDSet()

bool glo::Record::containedInTableObjIDSet ( const ObjIDRecordAttribute & rPruefAttribut) const
protected

Prüft ob ein Objekt-ID-Attribut in der Liste der Objekt-ID-Attribute vorhanden ist. Es wird die Attribut-ID (siehe auch AttributeID) verglichen.

Parameter
[in]rPruefAttributDas zu prüfende Objekt-ID-Attribut.
Rückgabe
Wenn true, ist das Objekt-ID-Attribut vorhanden.
Siehe auch
m_TableObjIDMap

◆ deleteAllAttributeData()

void glo::Record::deleteAllAttributeData ( )

Löscht alle Daten in seinen Datensatzattributen ausser CreateDate und LastChange. Die Liste der Objekt-ID-Attribute bleibt wie sie ist.

◆ deleteAllIndexStrings()

void glo::Record::deleteAllIndexStrings ( )

Löscht alle Indexstrings in m_IndexStrNameTupleVector.

◆ FileAttributes()

const std::vector< BaseRecordAttribute * > & glo::Record::FileAttributes ( ) const
protected

Gibt die Referenz auf den Container der Datensatzattribute zurück, die ihre Daten in einer Datei speichern (m_FileAttributes).
Dabei handelt es sich um folgende Attributtypen:

◆ forget()

unsigned int glo::Record::forget ( )

Ein Objekt dieser Klasse sollte immer mit einem vorherigen Aufruf von Record::remember() ausgeliefert werden. Die belieferte Instanz muss dann das Objekt mittels dieser Methode wieder 'vergessen'.

Rückgabe
Der Rückgabewert ist die Anzahl der Referenzen auf das Objekt dieser Klasse.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird eine Exception geworfen, wenn der Referenzzähler ins Minus laufen möchte.

◆ getAllAttributes() [1/2]

void glo::Record::getAllAttributes ( std::list< BaseRecordAttribute * > & rRetValList,
const std::vector< unsigned long > * pClassIdVector = 0 ) const

Füllt die übergebene Liste mit allen Datensatzattributen.

Parameter
[in,out]rRetValListListe der gefundenen Datensatzattribute.
[in]pClassIdVectorWenn übergeben, werden nur Datensatzattribute der Klassen mit der ClassID aus diesem Vector geliefert.
Achtung
Die gelieferten Objekte müssen mittels BaseRecordAttribute::forget() aus dem Speicher entfernt werden!

◆ getAllAttributes() [2/2]

void glo::Record::getAllAttributes ( std::list< std::shared_ptr< BaseRecordAttribute > > & rRetValList,
const std::vector< unsigned long > * pClassIdVector = 0 ) const

Füllt die übergebene Liste mit allen Datensatzattributen in einem std::shared_ptr.

Parameter
[in,out]rRetValListListe der gefundenen Datensatzattribute in einem std::shared_ptr.
[in]pClassIdVectorWenn übergeben, werden nur Datensatzattribute der Klassen mit der ClassID aus diesem Vector geliefert.

◆ getAllAttributesSortByID() [1/2]

void glo::Record::getAllAttributesSortByID ( std::map< AttributeID, BaseRecordAttribute *, std::less< AttributeID > > & rRetValMap,
const std::vector< unsigned long > * pClassIdVector = 0 ) const

Füllt die übergebene Map mit allen Datensatzattributen, sortiert nach der im der korrespondirenden Klasseninformations-Attribut abgelegten Attribut-ID.

Parameter
[in,out]rRetValMapMap der gefundenen Datensatzattribute.
[in]pClassIdVectorWenn übergeben, werden nur Datensatzattribute der Klassen mit der ClassID aus diesem Vector geliefert.
Achtung
Die gelieferten Objekte müssen mittels BaseRecordAttribute::forget() aus dem Speicher entfernt werden!

◆ getAllAttributesSortByID() [2/2]

void glo::Record::getAllAttributesSortByID ( std::map< AttributeID, std::shared_ptr< BaseRecordAttribute >, std::less< AttributeID > > & rRetValMap,
const std::vector< unsigned long > * pClassIdVector = 0 ) const

Füllt die übergebene Map mit allen Datensatzattributen in einem std::shared_ptr, sortiert nach dem in der korrespondirenden Klasseninformations-Attribut abgelegten Attribut-ID.

Parameter
[in,out]rRetValMapMap der gefundenen Datensatzattribute in einem std::shared_ptr.
[in]pClassIdVectorWenn übergeben, werden nur Datensatzattribute der Klassen mit der ClassID aus diesem Vector geliefert.

◆ getAllAttributesSortByName() [1/2]

void glo::Record::getAllAttributesSortByName ( std::map< std::string, BaseRecordAttribute *, std::less< std::string > > & rRetValMap,
const std::vector< unsigned long > * pClassIdVector = 0 ) const

Füllt die übergebene Map mit allen Datensatzattributen, sortiert nach deren vollständigen Attributbezeichnung (z.B. "MyClass.m_MyAttribute").

Parameter
[in,out]rRetValMapMap der gefundenen Datensatzattribute.
[in]pClassIdVectorWenn übergeben, werden nur Datensatzattribute der Klassen mit der ClassID aus diesem Vector geliefert.
Achtung
Die gelieferten Objekte müssen mittels BaseRecordAttribute::forget() aus dem Speicher entfernt werden!

◆ getAllAttributesSortByName() [2/2]

void glo::Record::getAllAttributesSortByName ( std::map< std::string, std::shared_ptr< BaseRecordAttribute >, std::less< std::string > > & rRetValMap,
const std::vector< unsigned long > * pClassIdVector = 0 ) const

Füllt die übergebene Map mit allen Datensatzattributen in einem std::shared_ptr, sortiert nach deren vollständigen Attributbezeichnung (z.B. "MyClass.m_MyAttribute").

Parameter
[in,out]rRetValMapMap der gefundenen Datensatzattribute in einem std::shared_ptr.
[in]pClassIdVectorWenn übergeben, werden nur Datensatzattribute der Klassen mit der ClassID aus diesem Vector geliefert.

◆ getAllClassMemberNames()

void glo::Record::getAllClassMemberNames ( std::list< std::string > & rRetValList,
const std::vector< unsigned long > * pClassIdVector = 0 ) const

Füllt die übergebene Zeichenketten-Liste mit den vollständigen Attributbezeichnungen der Datensatzattribute.

Parameter
[in,out]rRetValListZeichenketten-Liste in der die vollständigen Attributbezeichnungen geliefert werden, wie z.B. "MyClass.m_MyAttribute". Die Liste wird vorher geleert.
[in]pClassIdVectorWenn übergeben, werden nur alle vollständigen Attributbezeichnungen der Klassen mit der ClassID aus diesem Vector geliefert.

◆ getAllClassMemberNamesSortByID()

void glo::Record::getAllClassMemberNamesSortByID ( std::map< AttributeID, std::string > & rRetValMap,
const std::vector< unsigned long > * pClassIdVector = 0 ) const

Füllt die übergebene Zeichenketten-Map (sortiert nach der, in der korrespondirenden Klasseninformations-Attribut abgelegten, Attribut-ID) mit den vollständigen Attributbezeichnungen der Datensatzattribute.

Parameter
[in,out]rRetValMapZeichenketten-Map in welche die vollständigen Attributbezeichnungen geliefert werden, wie z.B. "MyClass.m_MyAttribute".
[in]pClassIdVectorWenn übergeben, werden nur alle vollständigen Attributbezeichnungen der Klassen mit der ClassID aus diesem Vector geliefert.

◆ getAllIndexStrings()

std::vector< std::shared_ptr< Record::IndexStrNameTuple > > glo::Record::getAllIndexStrings ( ) const

Liefert alle Indexstrings aus m_IndexStrNameTupleVector.

Rückgabe
s.o.

◆ getAttribute() [1/2]

int glo::Record::getAttribute ( BaseRecordAttribute *& prRetVal,
EnSeekMode eMode )

Liefert ein Datensatzattribut in Bezug auf eMode.

Parameter
[in,out]prRetValZeiger auf das gefundenes Datensatzattribut.
[in]eModeDer Suchmodus

Parameterbeispiele:

Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt das Ende der Liste der Attribute an.
Achtung
Das gelieferte Objekt muss mittels BaseRecordAttribute::forget() aus dem Speicher entfernt werden!

◆ getAttribute() [2/2]

int glo::Record::getAttribute ( std::shared_ptr< BaseRecordAttribute > & rRetVal,
EnSeekMode eMode )

Liefert ein Datensatzattribut in einem übergebenen std::shared_ptr in Bezug auf eMode.

Parameter
[in,out]rRetValReferenz auf einen std::shared_ptr in dem das gefundene Datensatzattribut 'reinkommt'.
[in]eModeDer Suchmodus

Parameterbeispiele:

Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt das Ende der Liste der Attribute an.

◆ getAttributeByAttributeID() [1/2]

int glo::Record::getAttributeByAttributeID ( BaseRecordAttribute *& prRetVal,
const AttributeID & rAttributeID ) const

Liefert das Datensatzattribut mit einer bestimmten, in der korrespondirenden Klasseninformations-Attribut abgelegten Attribut-ID.

Parameter
[in,out]prRetValZeiger auf das gefundenes Datensatzattribut.
[in]rAttributeIDDie Attribut-ID.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt an, das bis zum Ende Liste der Datensatzattribute nichts gefunden wurde.
Achtung
Das gelieferte Objekt muss mittels BaseRecordAttribute::forget() aus dem Speicher entfernt werden!

◆ getAttributeByAttributeID() [2/2]

int glo::Record::getAttributeByAttributeID ( std::shared_ptr< BaseRecordAttribute > & rRetVal,
const AttributeID & rAttributeID ) const

Liefert das Datensatzattribut in einem übergebenen std::shared_ptr mit einer bestimmten, in der korrespondirenden Klasseninformations-Attribut abgelegten, Attribut-ID.

Parameter
[in,out]rRetValReferenz auf einen std::shared_ptr in dem das gefundene Datensatzattribut geliefert wird.
[in]rAttributeIDDie Attribut-ID.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt an, das bis zum Ende Liste der Datensatzattribute nichts gefunden wurde.

◆ getAttributeByClassMemberName() [1/2]

int glo::Record::getAttributeByClassMemberName ( BaseRecordAttribute *& prRetVal,
const std::string & sName ) const

Liefert das Datensatzattribut mit einer bestimmten vollständigen Klassen-Attributbezeichnung (inkl. der Klassenbezeichnung).

Parameter
[in,out]prRetValZeiger auf das gefundenes Datensatzattribut.
[in]sNameDie vollständige Klassen-Attributbezeichnung des gesuchten Datensatzattributs (z.B."MyClass.m_MyAttribute").
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt an, das bis zum Ende Liste der Datensatzattribute nichts gefunden wurde.
Achtung
Das gelieferte Objekt muss mittels BaseRecordAttribute::forget() aus dem Speicher entfernt werden!

◆ getAttributeByClassMemberName() [2/2]

int glo::Record::getAttributeByClassMemberName ( std::shared_ptr< BaseRecordAttribute > & rRetVal,
const std::string & sName ) const

Liefert das Datensatzattribut in einem übergebenen std::shared_ptr mit einer bestimmten vollständigen Klassen-Attributbezeichnung (inkl. der Klassenbezeichnung).

Parameter
[in,out]rRetValReferenz auf einen std::shared_ptr in dem das gefundene Datensatzattribut geliefert wird.
[in]sNameDie vollständige Klassen-Attributbezeichnung des gesuchten Datensatzattributs (z.B."MyClass.m_MyAttribute").
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt an, das bis zum Ende Liste der Datensatzattribute nichts gefunden wurde.

◆ getAttributeByFieldName() [1/2]

int glo::Record::getAttributeByFieldName ( BaseRecordAttribute *& prRetVal,
const std::string & sName ) const

Liefert das Datensatzattribut mit einer bestimmten Bezeichnung.

Parameter
[in,out]prRetValZeiger auf das gefundenes Datensatzattribut.
[in]sNameDie Bezeichnung des gesuchten Datensatzattributs (z.B."m_MyAttribute").
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt an, das bis zum Ende Liste der Datensatzattribute nichts gefunden wurde.
Achtung
Das gelieferte Objekt muss mittels BaseRecordAttribute::forget() aus dem Speicher entfernt werden!

◆ getAttributeByFieldName() [2/2]

int glo::Record::getAttributeByFieldName ( std::shared_ptr< BaseRecordAttribute > & rRetVal,
const std::string & sName ) const

Liefert das Datensatzattribut in einem übergebenen std::shared_ptr mit einer bestimmten Bezeichnung.

Parameter
[in,out]rRetValReferenz auf einen std::shared_ptr in welches das gefundene Datensatzattribut geliefert wird.
[in]sNameDie Bezeichnung des gesuchten Datensatzattributs (z.B."m_MyAttribute").
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt an, das bis zum Ende Liste der Attribute nichts gefunden wurde.

◆ getAttributeByTableFieldName() [1/2]

int glo::Record::getAttributeByTableFieldName ( BaseRecordAttribute *& prRetVal,
const std::string & sName ) const

Liefert das Datensatzattribut, welches in einem Tabellenfeld mit einer bestimmten Bezeichnung abgelegt wird.

Parameter
[in,out]prRetValZeiger auf das gefundenes Datensatzattribut.
[in]sNameDie Bezeichnung des Tabellenfelds (z.B.: "MyTable.MyTableFieldName").
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt an, das bis zum Ende Liste der Datensatzattribute nichts gefunden wurde.
Achtung
Das gelieferte Objekt muss mittels BaseRecordAttribute::forget() aus dem Speicher entfernt werden!

◆ getAttributeByTableFieldName() [2/2]

int glo::Record::getAttributeByTableFieldName ( std::shared_ptr< BaseRecordAttribute > & rRetVal,
const std::string & sName ) const

Liefert das Datensatzattribut in einem übergebenen std::shared_ptr, welches in einem Tabellenfeld mit einer bestimmten Bezeichnung abgelegt wird.

Parameter
[in,out]rRetValReferenz auf einen std::shared_ptr in dem das gefundene Datensatzattribut geliefert wird.
[in]sNameDie Bezeichnung des Tabellenfelds (z.B.:"MyTable.MyTableFieldName").
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt an, das bis zum Ende Liste der Datensatzattribute nichts gefunden wurde.

◆ getAttributesFromTableSortByFieldPos()

int glo::Record::getAttributesFromTableSortByFieldPos ( std::vector< BaseRecordAttribute * > & rRetValVector,
unsigned long ulClassID )

Füllt den übergebenen Vector mit allen Datensatzattributen, die in der Tabelle der übergebenen Klassen-ID abgelegt sind, sortiert nach der Feldposition.

Parameter
[in,out]rRetValVectorVector der gefundenen Datensatzattribute.
[in]ulClassIDDie Klassen-ID.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Achtung
Die gelieferten Objekte bleiben im Besitz des lieferndes Objekts und leben nur so lange wie dieses.

◆ getClassID()

unsigned long glo::Record::getClassID ( ) const

Liefert die Klassen-ID.

Rückgabe
Die eigene Klassen-ID.

◆ getIndexString() [1/2]

int glo::Record::getIndexString ( std::string & rsRetValIndex,
const SchemaInterface & rSchemaInterface,
const ClassInfoIndex & rClassInfoIndex,
const std::map< ObjID, Record *, std::less< ObjID > > & rIndexRecords ) const
protected

Liefert den Indexstrings wie im übergebenen ClassInfoIndex definiert.

Wird vom Manager genutzt, um bei einem Speichern bzw. Löschen den Index berücksichtigen zu können.

Parameter
[in,out]rsRetValIndexDer Indexstring.
[in]rSchemaInterfaceDas Schema des Records.
[in]rClassInfoIndexDer Klassen-Index.
[in]rIndexRecordsAlle Records die gespeichert werden wollen und die evtl. Attribute des Indexes haben.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ getIndexString() [2/2]

int glo::Record::getIndexString ( std::string & rsRetValIndex,
const std::vector< eut::LanguageFunctions::EnLanguageKey > & rLanguageKeys,
bool bCaseSensitive,
const SchemaInterface & rSchemaInterface,
const ClassInfoIndex::IndexAttributeItem & rIndexAttributeItem,
const std::map< ObjID, Record *, std::less< ObjID > > & rIndexRecords ) const
protected

Liefert den Indexstring des übergebenen ClassInfoIndex::IndexAttributeItem.

Parameter
[in,out]rsRetValIndexDer Indexstring.
[in]rLanguageKeysDie Sprachschlüssel in einem Vector.
[in]bCaseSensitiveWenn false, werden alle Zeichen im rsRetValIndex in Großbuchstaben umgewandelt.
[in]rSchemaInterfaceDas Schema des Records.
[in]rIndexAttributeItemDie Information, welcher Index gemeint ist.
[in]rIndexRecordsAlle Records die gespeichert werden wollen und die evtl. Attribute des Indexes haben..
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ getObjID()

ObjID glo::Record::getObjID ( ) const

Liefert die Objekt-ID.

Rückgabe
s.o.

◆ getReferenceCount()

unsigned int glo::Record::getReferenceCount ( ) const

Liefert die Anzahl von referenzierenden Instanzen.

Rückgabe
s.o.

◆ getTableObjIDAttribute() [1/2]

int glo::Record::getTableObjIDAttribute ( ObjIDRecordAttribute *& prRetVal,
EnSeekMode eMode )

Liefert ein Objekt-ID-Attribut aus der Liste der Objekt-ID-Attribute in Bezug auf eMode.

Parameter
[in,out]prRetValZeiger auf ein gefundenes Objekt-ID-Attribut.
[in]eModeDer Suchmodus

Parameterbeispiele:

Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt das Ende der Liste der Objekt-ID-Attribute.
Achtung
Das gelieferte Objekt muss mittels ObjIDRecordAttribute::forget() aus dem Speicher entfernt werden!

◆ getTableObjIDAttribute() [2/2]

int glo::Record::getTableObjIDAttribute ( std::shared_ptr< BaseRecordAttribute > & rRetVal,
EnSeekMode eMode )

Liefert ein Objekt-ID-Attribut in einem übergebenen std::shared_ptr aus der Liste der Objekt-ID-Attribute in Bezug auf eMode.

Parameter
[in,out]rRetValReferenz auf einen std::shared_ptr in dem das gefundene Attribut 'reinkommt'.
[in]eModeDer Suchmodus

Parameterbeispiele:

Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt das Ende der Liste der Objekt-IDs der Klasse und deren Oberklassen an.

◆ hasObjIDInMap()

bool glo::Record::hasObjIDInMap ( ) const

Liefert false, wenn m_TableObjIDMap leer; ansonten true.

Rückgabe
s.o.

◆ init()

void glo::Record::init ( )
private

Es werden die Attribute initialisiert.

◆ initNew() [1/4]

int glo::Record::initNew ( )

Initialisiert den Datensatz neu, alle Datensatzattribute werden verworfen.

Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ initNew() [2/4]

int glo::Record::initNew ( const std::map< unsigned long, ClassInfo * > & rClassInfoMap,
unsigned long ulClassID,
bool bWithSuperClassAttributes = true )

Initialisiert einen Datensatz mit allen Datensatzattributen aus der übergebenen Liste der Klasseninformationen. Die übergebene Klassen-ID wird übernommen.

Parameter
[in]rClassInfoMapDie Liste der Klasseninformationen.
[in]ulClassIDDie zu übernehmende Klassen-ID.
[in]bWithSuperClassAttributesWenn false, werden die Attribute der Super-Klassen nicht (mit)initialisiert.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Die aufrufende Instanz ist dafür verantwortlich, dass die einzelnen Klasseninformationens-Objekte zur Klasse gehören, dessen Klassen-ID übergeben wird.

◆ initNew() [3/4]

int glo::Record::initNew ( const std::map< unsigned long, std::shared_ptr< glo::ClassInfo > > & rClassInfoMap,
unsigned long ulClassID,
bool bWithSuperClassAttributes = true )

Initialisiert einen Datensatz mit allen Datensatzattributen aus der übergebenen Liste der Klasseninformationen. Die übergebene Klassen-ID wird übernommen.

Parameter
[in]rClassInfoMapDie Liste der Klasseninformationen.
[in]ulClassIDDie zu übernehmende Klassen-ID.
[in]bWithSuperClassAttributesWenn false, werden die Attribute der Super-Klassen nicht (mit)initialisiert.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Die aufrufende Instanz ist dafür verantwortlich, dass die einzelnen Klasseninformationens-Objekte zur Klasse gehören, dessen Klassen-ID übergeben wird.

◆ initNew() [4/4]

int glo::Record::initNew ( unsigned long ulClassID)

Initialisiert den Datensatz neu, alle Datensatzattribute werden verworfen, die übergebene Klassen-ID wird übernommen.

Parameter
[in]ulClassIDDie zu übernehmende Klassen-ID.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ insertInAllIndexStrings()

void glo::Record::insertInAllIndexStrings ( const std::string & rsIndex,
const std::string & rsIndexName,
bool bUnique,
unsigned long ulClassID )

Fügt den übergebenen Index als IndexStrNameTuple in m_IndexStrNameTupleVector ein bzw. aktualisiert einen vorhandenen Eintrag.

Parameter
[in]rsIndexDer Index (z.B. "MUELLER KARL-THEOD").
[in]rsIndexNameDie Indexbezeichnung (z.B. "IDX_MyIndexName").
[in]bUniqueWenn true, darf der zusammengesetzte Index nur einmalig vorkommen.
[in]ulClassIDDie Klassen-ID der Klasse welche indiziert wird.

◆ ObjectReferencingAttributes()

const std::vector< BaseRecordAttribute * > & glo::Record::ObjectReferencingAttributes ( ) const
protected

Gibt die Referenz auf den Container der Datensatzattribute zurück, die ggf. ein abhängiges Objekt transportieren (m_ObjectReferencingAttributes).
Dabei handelt es sich um folgende Attributtypen:

◆ operator=()

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

Zuweisungsoperator.

Parameter
[in]rTDas Objekt dessen Datensatz- und Objekt-ID-Attribute übernommen werden.
Achtung
Es werden die zu übernehmenden Attribute nicht kopiert, sondern es wird bei den übernommenen Attributen der Referenzzähler inkrementiert.

◆ remember()

unsigned int glo::Record::remember ( )

Inkrementiert den m_uiReferenceCount. Sollte immer bei 'Auslieferung' eines Objektes dieser Klasse aufgerufen werden. Die belieferte Instanz muss dann das Objekt mit Record::forget() wieder 'vergessen'.

Rückgabe
Der Rückgabewert ist die Anzahl der Referenzen auf das Objekt dieser Klasse.

◆ removeAllFilePos()

void glo::Record::removeAllFilePos ( )
protected

Es wird in allen Datensatzattributen die Dateiposition im korrespondierenden Klasseninformations-Attribut auf 0 gesetzt. Ist z.B. nötig, wenn der Datensatz in der Datenbank gelöscht wurde.

◆ removeAndForgetAllBaseRecordAttributes()

void glo::Record::removeAndForgetAllBaseRecordAttributes ( )

Entfernt alle Datensatzattribute aus seiner Liste der Datensatzattribute und ruft bei jedem Datensatzattribute die Methode BaseRecordAttribute::forget() auf.

◆ removeAndForgetAllObjIDRecordAttributes()

void glo::Record::removeAndForgetAllObjIDRecordAttributes ( )

Entfernt alle Objekt-ID-Attribute aus seiner Liste der Objekt-ID-Attribute und ruft bei jedem Objekt-ID-Attribute die Methode BaseRecordAttribute::forget() auf.

◆ removeGenericDanglingPointer()

◆ setDeterminedFileNamesForAllAttributesWithThese()

void glo::Record::setDeterminedFileNamesForAllAttributesWithThese ( )

Es wird bei allen Attributen aus der m_AttributeMap, die ggf. in einer Datei gespeichert werden, die Methode aufgerufen, welche diesen Dateinamen setzt.

Zu beachten
Diese Methode wird nur abgearbeitet, wenn m_ObjID gültig ist.

◆ setObjID()

void glo::Record::setObjID ( const ObjID & rObjID)

Übernimmt die Objekt-ID, die Klassen-ID wird nicht übernommen. Überträgt Objekt-ID ohne Klassen-ID auch an die Elemente der Liste der Objekt-ID-Attribute.

Parameter
[in]rObjIDDie zu übernehmende Objekt-ID.

◆ TableObjIDMap()

const std::map< AttributeID, ObjIDRecordAttribute *, std::less< AttributeID > > & glo::Record::TableObjIDMap ( ) const
protected

Liefert die Referenz auf die Liste der Objekt-ID-Attribute (m_TableObjIDMap).

Rückgabe
Referenz auf die Liste der Objekt-ID-Attribute, lebt nur so lange wie das liefernde Objekt.

◆ takeOverAttribute()

int glo::Record::takeOverAttribute ( BaseRecordAttribute * pAttribute,
bool bDeepCopy = false )

Übernimmt das übergebene Datensatzattribut und inkrementiert dessen Referenzzähler.

Parameter
[in]pAttributeDas zu übernehmende Klasseninformations-Attribut.
[in]bDeepCopyWenn true, wird das Datensatzattribute kopiert und nicht nur der Referenzzähler inkrementiert!
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ takeOverObjIDsFilePos()

int glo::Record::takeOverObjIDsFilePos ( const Record & rSourceRecord)

Übernimmt vom übergebenen Datensatz ausschliesslich die Dateiposition der Objekt-ID-Attribute (aus deren korrespondierenden Klasseninformations-Attribut) in die Liste der Objekt-ID-Attribute (m_TableObjIDMap).

Parameter
[in]rSourceRecordDer Datensatz dessen Werte übernommen werden.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Achtung
Geht nur, wenn übergebener Datensatz die gleiche ObjID wie dieser Datensatz hat.

◆ takeOverRecord()

int glo::Record::takeOverRecord ( const Record & rRecord,
bool bDeepCopy = false )

Übernimmt alle Datensatzattribute (ausser die Objekt-ID) des übergebenen Datensatzes.

Parameter
[in]rRecordDer Datensatz dessen Datensatzattribute übernommen werden.
[in]bDeepCopyWenn true, werden alle Datensatzattribute kopiert, ansonsten wird der Referenzzähler der Datensatzattribute inkrementiert (default).
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ takeOverRecordData()

int glo::Record::takeOverRecordData ( const Record & rSourceRecord)

Kopiert die Datensatzattributdaten des übergebenen Datensatzes in die eigenen Datensatzattribute, soweit das möglich ist. Es wird bei allen in der Attribut-ID übereinstimmenden Datensatzattribute versucht, diese (auch gecastet) zu kopieren.

Die ClassID muss übereinstimmen.

Parameter
[in]rSourceRecordDer Datensatz dessen Datensatzattributdaten übernommen werden.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ takeOverTableObjIDAttribute()

int glo::Record::takeOverTableObjIDAttribute ( ObjIDRecordAttribute * pObjIDAttribute,
bool bDeepCopy = false )
protected

Übernimmt das übergebene Objekt-ID-Attribut in seine Liste der Objekt-ID-Attribute.

Parameter
[in]pObjIDAttributeDas zu übernehmende Objekt-ID-Attribut.
[in]bDeepCopyWenn true, wird das Objekt-ID-Attribut kopiert und nicht nur der Referenzzähler inkrementiert.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

Freunde und bezugnehmende Symbol-Dokumentation

◆ DataStreamer

friend class DataStreamer
friend

◆ Manager

friend class Manager
friend

◆ PrivateBase

friend class PrivateBase
friend

◆ TableReaderInterface

friend class TableReaderInterface
friend

◆ TableWriterInterface

friend class TableWriterInterface
friend

◆ TransactionManager

friend class TransactionManager
friend

Dokumentation der Datenelemente

◆ m_AttributeMap

std::map< AttributeID, BaseRecordAttribute *, std::less<AttributeID> > glo::Record::m_AttributeMap
private

Der Datensatz hat Attribute, die aus Objekten vom abgeleiteten Type BaseRecordAttribute bestehen. Diese werden in diesem Container gehalten.

In diesem Container sind auch die Attribute der Oberklasse/n.

◆ m_AttributeMapIterator

std::map<AttributeID,BaseRecordAttribute*>::iterator glo::Record::m_AttributeMapIterator
private

Ein interner Iterator für den Container der Attribute.

◆ m_bDeleteControl

bool glo::Record::m_bDeleteControl
private

Ist default true. Wird nur in Record::forget() auf false gesetzt, wenn der Referenzzähler == 0. Im Destruktor wird eine Exception geworfen, wenn dieser Wert == true.

Dieses soll sicherstellen, das dieses Objekt nur über Record::forget() aus dem Speicher entfernt wird.

◆ m_FileAttributes

std::vector< BaseRecordAttribute * > glo::Record::m_FileAttributes
private

Um nicht erst alle Attribute durchsuchen zu müssen, um die Attribute zu finden, die ihre Daten in einer Datei speichern, werden diese in diesem Container zusätzlich referenziert.
Dabei handelt es sich um folgende Attributtypen:

◆ m_IndexStrNameTupleVector

std::vector< std::shared_ptr< Record::IndexStrNameTuple > > glo::Record::m_IndexStrNameTupleVector
private

Um einmal ermittelte Indexstrings transportieren zu können, werden diese hier nach dem Ermitteln gehalten.

◆ m_LocalCriticalSection

eut::CriticalSection glo::Record::m_LocalCriticalSection
private

Damit mehrere Threads auf Record::remember() und Record::forget() zugreifen können.

◆ m_ObjectReferencingAttributes

std::vector< BaseRecordAttribute * > glo::Record::m_ObjectReferencingAttributes
private

Um nicht alle Attribute durchlaufen zu müssen, um die Attribute zu finden, die ein ggf. abhängiges Objekt transportieren, werden diese in diesem Container zusätzlich referenziert.
Dabei handelt es sich um folgende Attributtypen:

◆ m_ObjID

ObjID glo::Record::m_ObjID
private

Ein Datensatz hat eine eindeutige Objekt-ID. Darüber werden die Daten in den Tabellen gefunden.

◆ m_TableObjIDMap

std::map< AttributeID, ObjIDRecordAttribute *, std::less<AttributeID> > glo::Record::m_TableObjIDMap
private

In diesem Container sind die Objekt-IDs der Klasse und deren Oberklasse/n.

◆ m_TableObjIDMapIterator

std::map<AttributeID,ObjIDRecordAttribute*>::iterator glo::Record::m_TableObjIDMapIterator
private

Ein interner Iterator für den Container der Objekt-IDs.

◆ m_uiReferenceCount

unsigned int glo::Record::m_uiReferenceCount
private

Der Referenzzähler.

◆ sm_uiInstanceCount

unsigned int glo::Record::sm_uiInstanceCount
static

Zu Debug-Zwecken einen statischen Referenzzähler, um zu prüfen, ob alle Instanzen gelöscht sind.


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