GlobalObjects
|
Objects of this class transport the data from the tables into the persistent object and from these again into the tables. More...
#include <GloRecord.h>
Classes | |
class | IndexStrNameTuple |
IndexStrNameTuples hold an index as a sortable string, its name and the class ID of the class being indexed (can be a superclass of the class with the record) and whether the index is unique. More... | |
Public Member Functions | |
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) |
Static Public Attributes | |
static unsigned int | sm_uiInstanceCount |
Protected Member Functions | |
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 Member Functions | |
void | init () |
Private Attributes | |
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 |
Friends | |
class | DataStreamer |
class | Manager |
class | PrivateBase |
class | TableReaderInterface |
class | TableWriterInterface |
class | TransactionManager |
Objects of this class transport the data from the tables into the persistent object and from these again into the tables.
Objects of this type have a reference counter and must not be removed from memory using the destructor.
Objects with a reference counter may only be instantiated once. When passing to another instance, the reference counter is incremented using Record::remember().
If the now owning instance no longer needs the object, the reference counter is decremented using Record::forget().
If the reference counter runs to 0, the destructor is called automatically.
glo::Record::Record | ( | ) |
Standard constructor.
glo::Record::Record | ( | const ObjID & | rObjID | ) |
Constructor with parameter passing.
[in] | rObjID | The object ID. |
glo::Record::Record | ( | const Record & | rT, |
bool | bDeepCopy = false ) |
Copy constructor with additional parameter transfer.
[in] | rT | The object to be copied. |
[in] | bDeepCopy | If true, all record attributes are copied, otherwise the reference counter of the record attributes is incremented (default). |
|
protectedvirtual |
Destructor, the memory is cleared.
std::string glo::Record::_DEBUG_ToString | ( | ) |
Returns the object content as string.
|
protected |
Generates a record attribute for all passed class information attributes and transfers it to the record attribute list.
[in] | rClassInfoAttributeSet | List of the data set attributes to be generated. |
[in] | ulClassID | The class ID. |
bool glo::Record::allObjIDsHaveFilePos | ( | ) | const |
Returns true if m_TableObjIDMap is not empty and all ObjIDs have a file position entered; otherwise false.
|
protected |
Returns the reference to the record attribute list (m_AttributeMap).
|
protected |
Checks if a record attribute is present in the list of record attributes. The attribute ID (see also AttributeID) is compared.
[in] | rPruefAttribut | The record attribute to be checked. |
|
protected |
Checks whether an object ID attribute is present in the list of object ID attributes. The attribute ID (see also AttributeID) is compared.
[in] | rPruefAttribut | The object ID attribute to be checked. |
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 | ( | ) |
Deletes all index strings in m_IndexStrNameTupleVector.
|
protected |
Returns the reference to the container of record attributes that store their data in a file (m_FileAttributes).
These are the following attribute types:
unsigned int glo::Record::forget | ( | ) |
An object of this class should always be delivered with a previous call to Record::remember(). The supplied instance must then 'forget' the object using this method.
eut::ErrorNException | An exception is thrown if the reference counter wants to go into minus. |
void glo::Record::getAllAttributes | ( | std::list< BaseRecordAttribute * > & | rRetValList, |
const std::vector< unsigned long > * | pClassIdVector = 0 ) const |
Fills the passed list with all record attributes.
[in,out] | rRetValList | List of the found record attributes. |
[in] | pClassIdVector | If passed, only record attributes of the classes with the ClassID from this vector are returned. |
void glo::Record::getAllAttributes | ( | std::list< std::shared_ptr< BaseRecordAttribute > > & | rRetValList, |
const std::vector< unsigned long > * | pClassIdVector = 0 ) const |
Fills the passed list with all record attributes in a std::shared_ptr.
[in,out] | rRetValList | List of the found record attributes in a std::shared_ptr. |
[in] | pClassIdVector | If passed, only record attributes of the classes with the ClassID from this vector are returned. |
void glo::Record::getAllAttributesSortByID | ( | std::map< AttributeID, BaseRecordAttribute *, std::less< AttributeID > > & | rRetValMap, |
const std::vector< unsigned long > * | pClassIdVector = 0 ) const |
Fills the passed map with all record attributes, sorted by the attribute ID stored in the corresponding class information attribute.
[in,out] | rRetValMap | Map of the found record attributes. |
[in] | pClassIdVector | If passed, only record attributes of the classes with the ClassID from this vector are returned. |
void glo::Record::getAllAttributesSortByID | ( | std::map< AttributeID, std::shared_ptr< BaseRecordAttribute >, std::less< AttributeID > > & | rRetValMap, |
const std::vector< unsigned long > * | pClassIdVector = 0 ) const |
Fills the passed map with all record attributes in a std::shared_ptr, sorted by the attribute ID stored in the corresponding class information attribute.
[in,out] | rRetValMap | Map of the found record attributes in a std::shared_ptr. |
[in] | pClassIdVector | If passed, only record attributes of the classes with the ClassID from this vector are returned. |
void glo::Record::getAllAttributesSortByName | ( | std::map< std::string, BaseRecordAttribute *, std::less< std::string > > & | rRetValMap, |
const std::vector< unsigned long > * | pClassIdVector = 0 ) const |
Fills the passed map with all record attributes, sorted by their full attribute name (e.g. "MyClass.m_MyAttribute").
[in,out] | rRetValMap | Map of the found record attributes. |
[in] | pClassIdVector | If passed, only record attributes of the classes with the ClassID from this vector are returned. |
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 |
Fills the passed map with all record attributes in a std::shared_ptr, sorted by their full attribute name (e.g. "MyClass.m_MyAttribute").
[in,out] | rRetValMap | Map of the found record attributes in a std::shared_ptr. |
[in] | pClassIdVector | If passed, only record attributes of the classes with the ClassID from this vector are returned. |
void glo::Record::getAllClassMemberNames | ( | std::list< std::string > & | rRetValList, |
const std::vector< unsigned long > * | pClassIdVector = 0 ) const |
Fills the passed string list with the complete attribute names of the record attributes.
[in,out] | rRetValList | String list in which the complete attribute names are returned, e.g. "MyClass.m_MyAttribute". The list is cleared before. |
[in] | pClassIdVector | If passed, only all complete attribute names of the classes with the ClassID from this vector are returned. |
void glo::Record::getAllClassMemberNamesSortByID | ( | std::map< AttributeID, std::string > & | rRetValMap, |
const std::vector< unsigned long > * | pClassIdVector = 0 ) const |
Fills the passed string map (sorted by the attribute ID stored in the corresponding class information attribute) with the complete attribute names of the record attributes.
[in,out] | rRetValMap | String map into which the complete attribute names are delivered, e.g. "MyClass.m_MyAttribute". |
[in] | pClassIdVector | If passed, only all complete attribute names of the classes with the ClassID from this vector are returned. |
std::vector< std::shared_ptr< Record::IndexStrNameTuple > > glo::Record::getAllIndexStrings | ( | ) | const |
Get all index strings from m_IndexStrNameTupleVector.
int glo::Record::getAttribute | ( | BaseRecordAttribute *& | prRetVal, |
EnSeekMode | eMode ) |
Returns a record attribute related to eMode.
[in,out] | prRetVal | Pointer to the found record attribute. |
[in] | eMode | The seek mode. |
Parameter examples:
int glo::Record::getAttribute | ( | std::shared_ptr< BaseRecordAttribute > & | rRetVal, |
EnSeekMode | eMode ) |
Returns a record attribute in a passed std::shared_ptr with respect to eMode.
[in,out] | rRetVal | Reference to a std::shared_ptr in which the found record attribute is returned. |
[in] | eMode | The seek mode. |
Parameter examples:
int glo::Record::getAttributeByAttributeID | ( | BaseRecordAttribute *& | prRetVal, |
const AttributeID & | rAttributeID ) const |
Returns the record attribute with a specific attribute ID stored in the corresponding class information attribute.
[in,out] | prRetVal | Pointer to the found record attribute. |
[in] | rAttributeID | The attribute ID. |
int glo::Record::getAttributeByAttributeID | ( | std::shared_ptr< BaseRecordAttribute > & | rRetVal, |
const AttributeID & | rAttributeID ) const |
Returns the record attribute in a passed std::shared_ptr with a specific attribute ID stored in the corresponding class information attribute.
[in,out] | rRetVal | Reference to a std::shared_ptr in which the found record attribute is returned. |
[in] | rAttributeID | The attribute ID. |
int glo::Record::getAttributeByClassMemberName | ( | BaseRecordAttribute *& | prRetVal, |
const std::string & | sName ) const |
Returns the record attribute with a specific complete class attribute name (including the class name).
[in,out] | prRetVal | Pointer to the found record attribute. |
[in] | sName | The complete class attribute description of the searched record attribute (e.g., "MyClass.m_MyAttribute"). |
int glo::Record::getAttributeByClassMemberName | ( | std::shared_ptr< BaseRecordAttribute > & | rRetVal, |
const std::string & | sName ) const |
Returns the record attribute in a passed std::shared_ptr with a specific complete class attribute name (including the class name).
[in,out] | rRetVal | Reference to a std::shared_ptr in which the found record attribute is returned. |
[in] | sName | The complete class attribute description of the searched record attribute (e.g., "MyClass.m_MyAttribute"). |
int glo::Record::getAttributeByFieldName | ( | BaseRecordAttribute *& | prRetVal, |
const std::string & | sName ) const |
Returns the record attribute with a specific name.
[in,out] | prRetVal | Pointer to the found record attribute. |
[in] | sName | The name of the searched record attribute (e.g., "m_MyAttribute"). |
int glo::Record::getAttributeByFieldName | ( | std::shared_ptr< BaseRecordAttribute > & | rRetVal, |
const std::string & | sName ) const |
Returns the record attribute in a passed std::shared_ptr with a specific name.
[in,out] | rRetVal | Reference to a std::shared_ptr into which the found record attribute is returned'. |
[in] | sName | The name of the searched data record attribute (e.g. "m_MyAttribute"). |
int glo::Record::getAttributeByTableFieldName | ( | BaseRecordAttribute *& | prRetVal, |
const std::string & | sName ) const |
Returns the record attribute which is stored in a table field with a specific name.
[in,out] | prRetVal | Pointer to the found record attribute. |
[in] | sName | The name of the table field (e.g.: "MyTable.MyTableFieldName"). |
int glo::Record::getAttributeByTableFieldName | ( | std::shared_ptr< BaseRecordAttribute > & | rRetVal, |
const std::string & | sName ) const |
Returns the record attribute in a passed std::shared_ptr, which is stored in a table field with a specific name.
[in,out] | rRetVal | Reference to a std::shared_ptr in which the found record attribute is returned. |
[in] | sName | The name of the table field (e.g.: "MyTable.MyTableFieldName"). |
int glo::Record::getAttributesFromTableSortByFieldPos | ( | std::vector< BaseRecordAttribute * > & | rRetValVector, |
unsigned long | ulClassID ) |
Fills the passed vector with all record attributes stored in the table with the passed class id, sorted by field position.
[in,out] | rRetValVector | Vector of the found record attributes. |
[in] | ulClassID | The class id. |
unsigned long glo::Record::getClassID | ( | ) | const |
Returns the class ID.
|
protected |
Returns the index string as defined in the passed ClassInfoIndex.
Is used by the Manager to be able to consider the index when saving or deleting.
[in,out] | rsRetValIndex | The index string. |
[in] | rSchemaInterface | The scheme of the record. |
[in] | rClassInfoIndex | The class index. |
[in] | rIndexRecords | All records that want to be stored and that may have attributes of the index. |
|
protected |
Returns the index string of the passed ClassInfoIndex::IndexAttributeItem.
[in,out] | rsRetValIndex | The index string. |
[in] | rLanguageKeys | The language keys in a vector. |
[in] | bCaseSensitive | If false, all characters in the rsRetValIndex are converted to upper case. |
[in] | rSchemaInterface | The schema of the record. |
[in] | rIndexAttributeItem | The information which index is meant. |
[in] | rIndexRecords | All records that want to be stored and that may have attributes of the index. |
ObjID glo::Record::getObjID | ( | ) | const |
Returns the object ID.
unsigned int glo::Record::getReferenceCount | ( | ) | const |
Returns the number of referencing instances.
int glo::Record::getTableObjIDAttribute | ( | ObjIDRecordAttribute *& | prRetVal, |
EnSeekMode | eMode ) |
Returns an object ID attribute from the list of object ID attributes related to eMode.
[in,out] | prRetVal | The pointer to an object ID attribute found. |
[in] | eMode | The seek mode. |
Parameter examples:
int glo::Record::getTableObjIDAttribute | ( | std::shared_ptr< BaseRecordAttribute > & | rRetVal, |
EnSeekMode | eMode ) |
Returns an object ID attribute in a passed std::shared_ptr from the list of object ID attributes related to eMode.
[in,out] | rRetVal | Reference to a std::shared_ptr in which the found attribute is returned. |
[in] | eMode | The seek mode. |
Parameter examples:
bool glo::Record::hasObjIDInMap | ( | ) | const |
Returns false if m_TableObjIDMap is empty; otherwise true.
|
private |
The attributes are initialized.
int glo::Record::initNew | ( | ) |
Reinitializes the record, all record attributes are discarded.
int glo::Record::initNew | ( | const std::map< unsigned long, ClassInfo * > & | rClassInfoMap, |
unsigned long | ulClassID, | ||
bool | bWithSuperClassAttributes = true ) |
Initializes a record with all record attributes from the passed class information list. The passed class ID is taken over.
[in] | rClassInfoMap | The list of class information. |
[in] | ulClassID | The class ID to be transferred. |
[in] | bWithSuperClassAttributes | If false, the attributes of the superclasses are not (co)initialized. |
int glo::Record::initNew | ( | const std::map< unsigned long, std::shared_ptr< glo::ClassInfo > > & | rClassInfoMap, |
unsigned long | ulClassID, | ||
bool | bWithSuperClassAttributes = true ) |
Initializes a record with all record attributes from the passed class information list. The passed class ID is taken over.
[in] | rClassInfoMap | The list of class information. |
[in] | ulClassID | The class ID to be transferred. |
[in] | bWithSuperClassAttributes | If false, the attributes of the superclasses are not (co)initialized. |
int glo::Record::initNew | ( | unsigned long | ulClassID | ) |
Reinitializes the record, all record attributes are discarded, the passed class ID is used.
[in] | ulClassID | The class ID to be transferred. |
void glo::Record::insertInAllIndexStrings | ( | const std::string & | rsIndex, |
const std::string & | rsIndexName, | ||
bool | bUnique, | ||
unsigned long | ulClassID ) |
Inserts the passed index as IndexStrNameTuple in m_IndexStrNameTupleVector or updates an existing entry.
[in] | rsIndex | The index (e.g., "MUELLER KARL-THEOD"). |
[in] | rsIndexName | The index name (e.g., "IDX_MyIndexName"). |
[in] | bUnique | If true, the composite index may only occur once. |
[in] | ulClassID | The class ID of the class which is indexed. |
|
protected |
Returns the reference to the container of the record attributes that transport a dependent object, if applicable (m_ObjectReferencingAttributes).
These are the following attribute types:
Assignment operator.
[in] | rT | The object whose record and object ID attributes are to be taken over. |
unsigned int glo::Record::remember | ( | ) |
Increments the m_uiReferenceCount. Should always be called on 'delivery' of an object of this class. The delivered instance must then 'forget' the object again with Record::forget().
|
protected |
The file position in the corresponding class information attribute is set to 0 in all record attributes. This is necessary, for example, if the record was deleted from the database.
void glo::Record::removeAndForgetAllBaseRecordAttributes | ( | ) |
Removes all record attributes from its list of record attributes and calls the method BaseRecordAttribute::forget() for each record attribute.
void glo::Record::removeAndForgetAllObjIDRecordAttributes | ( | ) |
Removes all object ID attributes from its list of object ID attributes and calls the method BaseRecordAttribute::forget() for each object ID attribute.
void glo::Record::removeGenericDanglingPointer | ( | ) |
Sets the object ID to nullptr for all PoRefRecordAttribute, StdShrdPoRefRecordAttribute and StdUnqPoRefRecordAttribute unless a GenericPersistent is referenced.
void glo::Record::setDeterminedFileNamesForAllAttributesWithThese | ( | ) |
For all attributes from the m_AttributeMap that may need to be saved in a file, the method that sets this file name is called.
void glo::Record::setObjID | ( | const ObjID & | rObjID | ) |
Accepts the object ID, the class ID is not accepted. Transfers object ID without class ID also to the elements of the list of object ID attributes.
[in] | rObjID | The object ID to be transferred. |
|
protected |
Returns the reference to the list of object ID attributes (m_TableObjIDMap).
int glo::Record::takeOverAttribute | ( | BaseRecordAttribute * | pAttribute, |
bool | bDeepCopy = false ) |
Accepts the passed record attribute and increments its reference counter.
[in] | pAttribute | The class information attribute to be transferred. |
[in] | bDeepCopy | If true, the record attribute is copied and not only the reference counter is incremented! |
int glo::Record::takeOverObjIDsFilePos | ( | const Record & | rSourceRecord | ) |
Transfers from the passed record only the file position of the object ID attributes (from their corresponding class information attribute) to the list of object ID attributes (m_TableObjIDMap).
[in] | rSourceRecord | The record whose values will be transferred. |
int glo::Record::takeOverRecord | ( | const Record & | rRecord, |
bool | bDeepCopy = false ) |
Adopts all record attributes (except the object ID) of the transferred record.
[in] | rRecord | The record whose record attributes will be transferred. |
[in] | bDeepCopy | If true, all record attributes are copied, otherwise the reference counter of the record attributes is incremented (default). |
int glo::Record::takeOverRecordData | ( | const Record & | rSourceRecord | ) |
Copies the record attribute data of the passed record to its own record attributes if possible. An attempt is made to copy (also cast) all data record attributes with matching attribute IDs.
The ClassID must match.
[in] | rSourceRecord | The record whose record attribute data is to be copied. |
|
protected |
Adopts the passed object ID attribute to its list of object ID attributes.
[in] | pObjIDAttribute | The object ID attribute to be transferred. |
[in] | bDeepCopy | If true, the object ID attribute is copied and not only the reference counter is incremented. |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
private |
The record has attributes consisting of objects of the derived type BaseRecordAttribute. These are kept in this container.
This container also contains the attributes of the superclass/s.
|
private |
An internal iterator for the container of attributes.
|
private |
Is default true. Only set to false in Record::forget() if the reference counter == 0. An exception is thrown in the destructor if this value == true.
This is to ensure that this object is only removed from memory by Record::forget().
|
private |
In order to avoid having to go through all attributes to find the attributes that store their data in a file, these are additionally referenced in this container.
These are the following attribute types:
|
private |
In order to be able to transport index strings once they have been determined, they are kept here after the determination.
|
private |
To allow multiple threads to access Record::remember() and Record::::forget()
|
private |
In order to avoid having to go through all attributes to find the attributes that transport a possibly dependent object, these are additionally referenced in this container.
These are the following attribute types:
|
private |
A record has a unique object ID. This is used to find the data in the tables.
|
private |
This container contains the object IDs of the class and its superclass/s.
|
private |
An internal iterator for the container of object IDs.
|
private |
The reference counter.
|
static |
For debug purposes, a static reference counter to check if all instances are cleared.