GlobalObjects
|
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) |
Record & | operator= (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 |
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.
glo::Record::Record | ( | ) |
Standard-Konstruktor.
glo::Record::Record | ( | const ObjID & | rObjID | ) |
Konstruktor mit Parameterübergabe.
[in] | rObjID | Die Objekt-ID. |
glo::Record::Record | ( | const Record & | rT, |
bool | bDeepCopy = false ) |
Copy-Konstruktor mit zusätzlicher Parameterübergabe.
[in] | rT | Das zu kopierende Objekt. |
[in] | bDeepCopy | Wenn true, werden alle Datensatzattribute kopiert, ansonsten wird der Referenzzähler der Datensatzattribute inkrementiert (Voreinstellung). |
|
protectedvirtual |
Destruktor, es wird der Speicher aufgeräumt.
std::string glo::Record::_DEBUG_ToString | ( | ) |
Liefert den Objektinhalt als String.
|
protected |
Generiert für alle übergebenen Klasseninformations-Attribute ein Datensatzattribut und übernimmt dieses in die Liste der Datensatzattribut.
[in] | rClassInfoAttributeSet | Liste der zu generierenden Datensatzattribute. |
[in] | ulClassID | Die Klassen-ID. |
bool glo::Record::allObjIDsHaveFilePos | ( | ) | const |
Liefert true, wenn m_TableObjIDMap nicht leer und alle ObjIDs eine Dateiposition eingetragen haben; ansonten false.
|
protected |
Liefert die Referenz auf die Liste der Datensatzattribute (m_AttributeMap).
|
protected |
Prüft ob ein Datensatzattribut in der Liste der Datensatzattribute vorhanden ist. Es wird die Attribut-ID (siehe auch AttributeID) verglichen.
[in] | rPruefAttribut | Das zu prüfende Datensatzattribut. |
|
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.
[in] | rPruefAttribut | Das zu prüfende Objekt-ID-Attribut. |
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.
void glo::Record::deleteAllIndexStrings | ( | ) |
Löscht alle Indexstrings in m_IndexStrNameTupleVector.
|
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:
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'.
eut::ErrorNException | Es wird eine Exception geworfen, wenn der Referenzzähler ins Minus laufen möchte. |
void glo::Record::getAllAttributes | ( | std::list< BaseRecordAttribute * > & | rRetValList, |
const std::vector< unsigned long > * | pClassIdVector = 0 ) const |
Füllt die übergebene Liste mit allen Datensatzattributen.
[in,out] | rRetValList | Liste der gefundenen Datensatzattribute. |
[in] | pClassIdVector | Wenn übergeben, werden nur Datensatzattribute der Klassen mit der ClassID aus diesem Vector geliefert. |
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.
[in,out] | rRetValList | Liste der gefundenen Datensatzattribute in einem std::shared_ptr. |
[in] | pClassIdVector | Wenn übergeben, werden nur Datensatzattribute der Klassen mit der ClassID aus diesem Vector geliefert. |
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.
[in,out] | rRetValMap | Map der gefundenen Datensatzattribute. |
[in] | pClassIdVector | Wenn übergeben, werden nur Datensatzattribute der Klassen mit der ClassID aus diesem Vector geliefert. |
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.
[in,out] | rRetValMap | Map der gefundenen Datensatzattribute in einem std::shared_ptr. |
[in] | pClassIdVector | Wenn übergeben, werden nur Datensatzattribute der Klassen mit der ClassID aus diesem Vector geliefert. |
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").
[in,out] | rRetValMap | Map der gefundenen Datensatzattribute. |
[in] | pClassIdVector | Wenn übergeben, werden nur Datensatzattribute der Klassen mit der ClassID aus diesem Vector geliefert. |
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").
[in,out] | rRetValMap | Map der gefundenen Datensatzattribute in einem std::shared_ptr. |
[in] | pClassIdVector | Wenn übergeben, werden nur Datensatzattribute der Klassen mit der ClassID aus diesem Vector geliefert. |
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.
[in,out] | rRetValList | Zeichenketten-Liste in der die vollständigen Attributbezeichnungen geliefert werden, wie z.B. "MyClass.m_MyAttribute". Die Liste wird vorher geleert. |
[in] | pClassIdVector | Wenn übergeben, werden nur alle vollständigen Attributbezeichnungen der Klassen mit der ClassID aus diesem Vector geliefert. |
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.
[in,out] | rRetValMap | Zeichenketten-Map in welche die vollständigen Attributbezeichnungen geliefert werden, wie z.B. "MyClass.m_MyAttribute". |
[in] | pClassIdVector | Wenn übergeben, werden nur alle vollständigen Attributbezeichnungen der Klassen mit der ClassID aus diesem Vector geliefert. |
std::vector< std::shared_ptr< Record::IndexStrNameTuple > > glo::Record::getAllIndexStrings | ( | ) | const |
Liefert alle Indexstrings aus m_IndexStrNameTupleVector.
int glo::Record::getAttribute | ( | BaseRecordAttribute *& | prRetVal, |
EnSeekMode | eMode ) |
Liefert ein Datensatzattribut in Bezug auf eMode.
[in,out] | prRetVal | Zeiger auf das gefundenes Datensatzattribut. |
[in] | eMode | Der Suchmodus |
Parameterbeispiele:
int glo::Record::getAttribute | ( | std::shared_ptr< BaseRecordAttribute > & | rRetVal, |
EnSeekMode | eMode ) |
Liefert ein Datensatzattribut in einem übergebenen std::shared_ptr in Bezug auf eMode.
[in,out] | rRetVal | Referenz auf einen std::shared_ptr in dem das gefundene Datensatzattribut 'reinkommt'. |
[in] | eMode | Der Suchmodus |
Parameterbeispiele:
int glo::Record::getAttributeByAttributeID | ( | BaseRecordAttribute *& | prRetVal, |
const AttributeID & | rAttributeID ) const |
Liefert das Datensatzattribut mit einer bestimmten, in der korrespondirenden Klasseninformations-Attribut abgelegten Attribut-ID.
[in,out] | prRetVal | Zeiger auf das gefundenes Datensatzattribut. |
[in] | rAttributeID | Die Attribut-ID. |
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.
[in,out] | rRetVal | Referenz auf einen std::shared_ptr in dem das gefundene Datensatzattribut geliefert wird. |
[in] | rAttributeID | Die Attribut-ID. |
int glo::Record::getAttributeByClassMemberName | ( | BaseRecordAttribute *& | prRetVal, |
const std::string & | sName ) const |
Liefert das Datensatzattribut mit einer bestimmten vollständigen Klassen-Attributbezeichnung (inkl. der Klassenbezeichnung).
[in,out] | prRetVal | Zeiger auf das gefundenes Datensatzattribut. |
[in] | sName | Die vollständige Klassen-Attributbezeichnung des gesuchten Datensatzattributs (z.B."MyClass.m_MyAttribute"). |
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).
[in,out] | rRetVal | Referenz auf einen std::shared_ptr in dem das gefundene Datensatzattribut geliefert wird. |
[in] | sName | Die vollständige Klassen-Attributbezeichnung des gesuchten Datensatzattributs (z.B."MyClass.m_MyAttribute"). |
int glo::Record::getAttributeByFieldName | ( | BaseRecordAttribute *& | prRetVal, |
const std::string & | sName ) const |
Liefert das Datensatzattribut mit einer bestimmten Bezeichnung.
[in,out] | prRetVal | Zeiger auf das gefundenes Datensatzattribut. |
[in] | sName | Die Bezeichnung des gesuchten Datensatzattributs (z.B."m_MyAttribute"). |
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.
[in,out] | rRetVal | Referenz auf einen std::shared_ptr in welches das gefundene Datensatzattribut geliefert wird. |
[in] | sName | Die Bezeichnung des gesuchten Datensatzattributs (z.B."m_MyAttribute"). |
int glo::Record::getAttributeByTableFieldName | ( | BaseRecordAttribute *& | prRetVal, |
const std::string & | sName ) const |
Liefert das Datensatzattribut, welches in einem Tabellenfeld mit einer bestimmten Bezeichnung abgelegt wird.
[in,out] | prRetVal | Zeiger auf das gefundenes Datensatzattribut. |
[in] | sName | Die Bezeichnung des Tabellenfelds (z.B.: "MyTable.MyTableFieldName"). |
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.
[in,out] | rRetVal | Referenz auf einen std::shared_ptr in dem das gefundene Datensatzattribut geliefert wird. |
[in] | sName | Die Bezeichnung des Tabellenfelds (z.B.:"MyTable.MyTableFieldName"). |
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.
[in,out] | rRetValVector | Vector der gefundenen Datensatzattribute. |
[in] | ulClassID | Die Klassen-ID. |
unsigned long glo::Record::getClassID | ( | ) | const |
Liefert die Klassen-ID.
|
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.
[in,out] | rsRetValIndex | Der Indexstring. |
[in] | rSchemaInterface | Das Schema des Records. |
[in] | rClassInfoIndex | Der Klassen-Index. |
[in] | rIndexRecords | Alle Records die gespeichert werden wollen und die evtl. Attribute des Indexes haben. |
|
protected |
Liefert den Indexstring des übergebenen ClassInfoIndex::IndexAttributeItem.
[in,out] | rsRetValIndex | Der Indexstring. |
[in] | rLanguageKeys | Die Sprachschlüssel in einem Vector. |
[in] | bCaseSensitive | Wenn false, werden alle Zeichen im rsRetValIndex in Großbuchstaben umgewandelt. |
[in] | rSchemaInterface | Das Schema des Records. |
[in] | rIndexAttributeItem | Die Information, welcher Index gemeint ist. |
[in] | rIndexRecords | Alle Records die gespeichert werden wollen und die evtl. Attribute des Indexes haben.. |
ObjID glo::Record::getObjID | ( | ) | const |
Liefert die Objekt-ID.
unsigned int glo::Record::getReferenceCount | ( | ) | const |
Liefert die Anzahl von referenzierenden Instanzen.
int glo::Record::getTableObjIDAttribute | ( | ObjIDRecordAttribute *& | prRetVal, |
EnSeekMode | eMode ) |
Liefert ein Objekt-ID-Attribut aus der Liste der Objekt-ID-Attribute in Bezug auf eMode.
[in,out] | prRetVal | Zeiger auf ein gefundenes Objekt-ID-Attribut. |
[in] | eMode | Der Suchmodus |
Parameterbeispiele:
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.
[in,out] | rRetVal | Referenz auf einen std::shared_ptr in dem das gefundene Attribut 'reinkommt'. |
[in] | eMode | Der Suchmodus |
Parameterbeispiele:
bool glo::Record::hasObjIDInMap | ( | ) | const |
Liefert false, wenn m_TableObjIDMap leer; ansonten true.
|
private |
Es werden die Attribute initialisiert.
int glo::Record::initNew | ( | ) |
Initialisiert den Datensatz neu, alle Datensatzattribute werden verworfen.
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.
[in] | rClassInfoMap | Die Liste der Klasseninformationen. |
[in] | ulClassID | Die zu übernehmende Klassen-ID. |
[in] | bWithSuperClassAttributes | Wenn false, werden die Attribute der Super-Klassen nicht (mit)initialisiert. |
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.
[in] | rClassInfoMap | Die Liste der Klasseninformationen. |
[in] | ulClassID | Die zu übernehmende Klassen-ID. |
[in] | bWithSuperClassAttributes | Wenn false, werden die Attribute der Super-Klassen nicht (mit)initialisiert. |
int glo::Record::initNew | ( | unsigned long | ulClassID | ) |
Initialisiert den Datensatz neu, alle Datensatzattribute werden verworfen, die übergebene Klassen-ID wird übernommen.
[in] | ulClassID | Die zu übernehmende Klassen-ID. |
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.
[in] | rsIndex | Der Index (z.B. "MUELLER KARL-THEOD"). |
[in] | rsIndexName | Die Indexbezeichnung (z.B. "IDX_MyIndexName"). |
[in] | bUnique | Wenn true, darf der zusammengesetzte Index nur einmalig vorkommen. |
[in] | ulClassID | Die Klassen-ID der Klasse welche indiziert wird. |
|
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:
Zuweisungsoperator.
[in] | rT | Das Objekt dessen Datensatz- und Objekt-ID-Attribute übernommen werden. |
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'.
|
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.
void glo::Record::removeAndForgetAllBaseRecordAttributes | ( | ) |
Entfernt alle Datensatzattribute aus seiner Liste der Datensatzattribute und ruft bei jedem Datensatzattribute die Methode BaseRecordAttribute::forget() auf.
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.
void glo::Record::removeGenericDanglingPointer | ( | ) |
Setzt bei allen PoRefRecordAttribute StdShrdPoRefRecordAttribute und StdUnqPoRefRecordAttribute die Objekt-ID auf nullptr, wenn nicht ein GenericPersistent referenziert wird.
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.
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.
[in] | rObjID | Die zu übernehmende Objekt-ID. |
|
protected |
Liefert die Referenz auf die Liste der Objekt-ID-Attribute (m_TableObjIDMap).
int glo::Record::takeOverAttribute | ( | BaseRecordAttribute * | pAttribute, |
bool | bDeepCopy = false ) |
Übernimmt das übergebene Datensatzattribut und inkrementiert dessen Referenzzähler.
[in] | pAttribute | Das zu übernehmende Klasseninformations-Attribut. |
[in] | bDeepCopy | Wenn true, wird das Datensatzattribute kopiert und nicht nur der Referenzzähler inkrementiert! |
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).
[in] | rSourceRecord | Der Datensatz dessen Werte übernommen werden. |
int glo::Record::takeOverRecord | ( | const Record & | rRecord, |
bool | bDeepCopy = false ) |
Übernimmt alle Datensatzattribute (ausser die Objekt-ID) des übergebenen Datensatzes.
[in] | rRecord | Der Datensatz dessen Datensatzattribute übernommen werden. |
[in] | bDeepCopy | Wenn true, werden alle Datensatzattribute kopiert, ansonsten wird der Referenzzähler der Datensatzattribute inkrementiert (default). |
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.
[in] | rSourceRecord | Der Datensatz dessen Datensatzattributdaten übernommen werden. |
|
protected |
Übernimmt das übergebene Objekt-ID-Attribut in seine Liste der Objekt-ID-Attribute.
[in] | pObjIDAttribute | Das zu übernehmende Objekt-ID-Attribut. |
[in] | bDeepCopy | Wenn true, wird das Objekt-ID-Attribut kopiert und nicht nur der Referenzzähler inkrementiert. |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
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.
|
private |
Ein interner Iterator für den Container der Attribute.
|
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.
|
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:
|
private |
Um einmal ermittelte Indexstrings transportieren zu können, werden diese hier nach dem Ermitteln gehalten.
|
private |
Damit mehrere Threads auf Record::remember() und Record::forget() zugreifen können.
|
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:
|
private |
Ein Datensatz hat eine eindeutige Objekt-ID. Darüber werden die Daten in den Tabellen gefunden.
|
private |
In diesem Container sind die Objekt-IDs der Klasse und deren Oberklasse/n.
|
private |
Ein interner Iterator für den Container der Objekt-IDs.
|
private |
Der Referenzzähler.
|
static |
Zu Debug-Zwecken einen statischen Referenzzähler, um zu prüfen, ob alle Instanzen gelöscht sind.