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

Klasse für die Blob-Attribute eines Record. Mehr ...

#include <GloBlobRecordAttribute.h>

Klassendiagramm für glo::BlobRecordAttribute:

Öffentliche Methoden

 BlobRecordAttribute (ClassInfoAttribute *pType, const eut::Blob &rValue, const std::streampos &rFilePos)
 
 BlobRecordAttribute (ClassInfoAttribute *pType, const std::streampos &rFilePos)
 
virtual bool dataIsFieldContent () const
 
virtual int getAttributeValueBlob (eut::Blob &rBlob) const
 
virtual BaseRecordAttributegetCopy ()
 
virtual unsigned short getDataFieldLength () const
 
virtual std::string getDataReference () const
 
const std::string & getFileName () const
 
virtual int getFormattedFieldContents (std::string &rsRetVal, DATA_REFERENCE_INFO &rRetValInfo, ObjID ObjID)
 
virtual std::string getValueAsDataString () const
 
virtual std::string getValueAsDisplayString () const
 
virtual std::string getValueAsStreamString () const
 
virtual std::string getValueAsString () const
 
virtual void * getValueAsVoidPointer ()
 
const eut::BlobgetValueRef () const
 
virtual void initNew ()
 
virtual void setDataReference (const std::string &rsDataReference)
 
void setDeterminedFileNameFromAttributeValue (ObjID ObjID)
 
void setFileName (const std::string &rsFileName)
 
int setValue (char *pData, std::size_t nDataSize, bool bCopy=true)
 
void setValue (const eut::Blob &rValue)
 
virtual void setValueFromVoid (void *pValue)
 
virtual int takeValue (const BaseRecordAttribute &rT)
 
virtual int updateDataReference (const std::string &rsDataPath, DATA_REFERENCE_INFO MethodInfo)
 
bool operator== (const BlobRecordAttribute &rT) const
 
bool operator!= (const BlobRecordAttribute &rT) const
 
- Öffentliche Methoden geerbt von glo::BaseRecordAttribute
 BaseRecordAttribute (ClassInfoAttribute *pClassInfoAttribut, const std::streampos &rFilePos)
 
virtual ~BaseRecordAttribute ()
 
unsigned int forget ()
 
AttributeID getAttributeID () const
 
ClassInfoAttributegetClassInfoAttribute () const
 
std::string getClassMemberName () const
 
std::string getClassName () const
 
EnDataType getDataType () const
 
std::string getFieldName () const
 
int getFieldPos ()
 
std::streampos getFilePosition () const
 
EnDataTypeGroup getInfoType ()
 
unsigned int getReferenceCount () const
 
std::string getTableFieldName () const
 
std::string getTableName () const
 
ClassInfoAttribute::Type getType () const
 
std::string getTypeAsCppString () const
 
std::string getTypeAsString () const
 
std::string getTypeInfo () const
 
unsigned int remember ()
 
void setFilePosition (const std::streampos &rFilePos)
 
virtual int setValueFromObjectAttributeID (Persistent &rObject, const AttributeID &rAttributeID)
 
bool operator== (const BaseRecordAttribute &rT) const
 Vergleichsoperator, es werden alle Attribute verglichen.
 
bool operator!= (const BaseRecordAttribute &rT) const
 Vergleichsoperator, es werden alle Attribute verglichen.
 

Geschützte Methoden

 BlobRecordAttribute ()
 
 BlobRecordAttribute (const BlobRecordAttribute &rT)
 
virtual ~BlobRecordAttribute ()
 
- Geschützte Methoden geerbt von glo::BaseRecordAttribute
 BaseRecordAttribute ()
 
 BaseRecordAttribute (const BaseRecordAttribute &rT)
 

Private Methoden

BlobRecordAttributeoperator= (const BlobRecordAttribute &)
 

Private Attribute

std::string m_sFileName
 
eut::Blob m_Value
 

Ausführliche Beschreibung

Klasse für die Blob-Attribute eines Record.

Repräsentiert ein Attribut vom Typ 'eut::Blob' von einem persistenten Objekt.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ BlobRecordAttribute() [1/4]

glo::BlobRecordAttribute::BlobRecordAttribute ( )
protected

Der Standard-Konstruktor steht nicht zur Verfügung.

◆ ~BlobRecordAttribute()

virtual glo::BlobRecordAttribute::~BlobRecordAttribute ( )
protectedvirtual

Der Destruktor steht nicht zur Verfügung. Das Objekt darf nur über forget() aus dem Speicher entfernt werden.

◆ BlobRecordAttribute() [2/4]

glo::BlobRecordAttribute::BlobRecordAttribute ( ClassInfoAttribute * pType,
const std::streampos & rFilePos )

Konstruktor mit Parameterübergabe.

Parameter
[in]pTypeEs wird ein Klasseninformations-Attribut erwartet.
[in]rFilePosDie Dateiposition.
Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.
Achtung
Da Objekte dieser Klassen nur von internen Objekten wie Record und TableReaderInterface instanziiert werden, und die wissen was sie tun, wird auf eine Typüberprüfung des Klasseninformations-Attribut verzichtet!

◆ BlobRecordAttribute() [3/4]

glo::BlobRecordAttribute::BlobRecordAttribute ( ClassInfoAttribute * pType,
const eut::Blob & rValue,
const std::streampos & rFilePos )

Konstruktor mit Parameterübergabe.

Parameter
[in]pTypeEs wird ein Klasseninformations-Attribut erwartet.
[in]rValueDer Wert des Attributs.
[in]rFilePosDie Dateiposition.
Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.
Achtung
Da Objekte dieser Klassen nur von internen Objekten wie Record und TableReaderInterface instanziiert werden, und die wissen was sie tun, wird auf eine Typüberprüfung des Klasseninformations-Attribut verzichtet!

◆ BlobRecordAttribute() [4/4]

glo::BlobRecordAttribute::BlobRecordAttribute ( const BlobRecordAttribute & rT)
protected

Copy-Konstruktor.

Parameter
[in]rTVon diesem Objekt werden die Daten übernommen.
Siehe auch
getCopy()

Dokumentation der Elementfunktionen

◆ dataIsFieldContent()

virtual bool glo::BlobRecordAttribute::dataIsFieldContent ( ) const
virtual

Liefert false, da Attributdaten eines Blobs grundsätzlich ausserhalb der Tabelle abgelgt werden. In der Tabelle wird der Dateiname der Datei mit den Daten des Blobs gespeichert.

Rückgabe
s.o.

Implementiert glo::BaseRecordAttribute.

◆ getAttributeValueBlob()

virtual int glo::BlobRecordAttribute::getAttributeValueBlob ( eut::Blob & rBlob) const
virtual

Liefert hier nur einen Fehler! Der DataStreamer holt sich die Daten über den Dateinamen.

Rückgabe
Liefert immer ERR_METHOD_FORBIDDEN.

Erneute Implementation von glo::BaseRecordAttribute.

◆ getCopy()

virtual BaseRecordAttribute * glo::BlobRecordAttribute::getCopy ( )
virtual

Liefert eine Kopie des Objektes. Manchmal braucht man auch eine Kopie eines Attributs, z.B. wenn ein tiefkopierter Record (mit kopierten Attributen) gebraucht wird.

Rückgabe
Die Kopie dieses Attributs
Achtung
Das gelieferte Objekt muss von aufrufender Instanz aus dem Speicher entfernt werden.

Implementiert glo::BaseRecordAttribute.

◆ getDataFieldLength()

virtual unsigned short glo::BlobRecordAttribute::getDataFieldLength ( ) const
virtual

Liefert die Datensatzfeldlänge des Attributwertes. Ist in diesem Fall immer die Länge der Dateibezeichnung der Datei, in der das Blob untergebracht werden soll.

Rückgabe
Die Feldlänge.
Siehe auch
BLOB_TEXT_LENGTH

Implementiert glo::BaseRecordAttribute.

◆ getDataReference()

virtual std::string glo::BlobRecordAttribute::getDataReference ( ) const
virtual

Liefert die Dateibezeichnung in welcher die Daten des Blobs abgelegt werden.

Rückgabe
Ggf. die vorhandene Dateibezeichnung. Wenn leer, dann gibts wohl keine.
Zu beachten
Die Dateibezeichnung wird mit vollständigen Pfad geliefert.

Erneute Implementation von glo::BaseRecordAttribute.

◆ getFileName()

const std::string & glo::BlobRecordAttribute::getFileName ( ) const

Liefert die Bezeichnung der Datei, in welcher das Blob untergebracht werden soll.

Rückgabe
Die Dateibezeichnung.
Zu beachten
Die Dateibezeichnung wird ohne Pfad und ohne Dateierweiterung geliefert.

◆ getFormattedFieldContents()

virtual int glo::BlobRecordAttribute::getFormattedFieldContents ( std::string & rsRetVal,
DATA_REFERENCE_INFO & rRetValInfo,
ObjID ObjID )
virtual

Liefert die Bezeichnung der externen Datei mit den Daten des Attributs und eine Information ob diese neu geschrieben, behalten oder gelöscht werden muss, wenn es einen zu speichernden Inhalt gibt. Es wird die Bezeichnung der externen Datei auch im Attribut m_sFileName gesetzt.

Parameter
[in,out]rsRetValDas Tabellenfeld wie es geschrieben werden soll.
[in,out]rRetValInfoDie Information wie mit einer externen Datei umgegangen werden soll.
[in]ObjIDFalls ein Dateiname kreiert werden muss, wird die Dateibezeichnung aus dieser Objekt-ID gebildet. I.d.R. ist dies die Objekt-ID des Objektes, dessen Attributwert erfragt wird.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

Erneute Implementation von glo::BaseRecordAttribute.

◆ getValueAsDataString()

virtual std::string glo::BlobRecordAttribute::getValueAsDataString ( ) const
virtual

Kann den Wert nicht als String liefern, liefert stattdessen "?".

Rückgabe
"?".

Implementiert glo::BaseRecordAttribute.

◆ getValueAsDisplayString()

virtual std::string glo::BlobRecordAttribute::getValueAsDisplayString ( ) const
virtual

Liefert den Wert, wie er für das GUI angezeigt werden kann.

Rückgabe
Der Wert für die Anzeige.

Implementiert glo::BaseRecordAttribute.

◆ getValueAsStreamString()

virtual std::string glo::BlobRecordAttribute::getValueAsStreamString ( ) const
virtual

Kann den Wert nicht als String liefern, liefert stattdessen "?".

Rückgabe
"?".

Implementiert glo::BaseRecordAttribute.

◆ getValueAsString()

virtual std::string glo::BlobRecordAttribute::getValueAsString ( ) const
virtual

Kann den Wert nicht als String liefern, liefert stattdessen "?".

Rückgabe
"?".

Implementiert glo::BaseRecordAttribute.

◆ getValueAsVoidPointer()

virtual void * glo::BlobRecordAttribute::getValueAsVoidPointer ( )
virtual

Liefert einen rohen Zeiger auf den Wert.

Rückgabe
Der rohe Zeiger auf den Wert.

Implementiert glo::BaseRecordAttribute.

◆ getValueRef()

const eut::Blob & glo::BlobRecordAttribute::getValueRef ( ) const

Liefert die Referenz auf den Wert.

Rückgabe
Der Wert.

◆ initNew()

virtual void glo::BlobRecordAttribute::initNew ( )
virtual

Initialisiert das Attribut neu, der Wert wird auf NULL_PTR gesetzt.

Implementiert glo::BaseRecordAttribute.

◆ operator!=()

bool glo::BlobRecordAttribute::operator!= ( const BlobRecordAttribute & rT) const

Vergleichsoperator, es werden alle Attribute verglichen.

Parameter
[in]rTDas mit diesem zu vergleichende Objekt.

◆ operator=()

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

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ operator==()

bool glo::BlobRecordAttribute::operator== ( const BlobRecordAttribute & rT) const

Vergleichsoperator, es werden alle Attribute verglichen.

Parameter
[in]rTDas mit diesem zu vergleichende Objekt.

◆ setDataReference()

virtual void glo::BlobRecordAttribute::setDataReference ( const std::string & rsDataReference)
virtual

Setzt die Bezeichnung der Datei, in welcher das Blob gespeichert werden soll.

Parameter
[in]rsDataReferenceDie Dateibezeichnung.
Zu beachten
Die Dateibezeichnung wird ohne Pfad und ohne Dateierweiterung übergeben, falls jemand in die Verlegenheit kommt, diese Methode selbst aufrufen zu müssen.

Erneute Implementation von glo::BaseRecordAttribute.

◆ setDeterminedFileNameFromAttributeValue()

void glo::BlobRecordAttribute::setDeterminedFileNameFromAttributeValue ( ObjID ObjID)

Setzt die ermittelte Bezeichnung der Datei, in welcher das Blob untergebracht werden soll, wenn es was zu speichern gibt.

Parameter
[in]ObjIDFalls ein Dateiname kreiert werden muss, wird die Dateibezeichnung aus dieser Objekt-ID gebildet. I.d.R. ist dies die Objekt-ID des Objektes, dessen Attributwert erfragt wird.

◆ setFileName()

void glo::BlobRecordAttribute::setFileName ( const std::string & rsFileName)

Setzt die Bezeichnung der Datei, in welcher das Blob untergebracht werden soll.

Parameter
[in]rsFileNameDie Dateibezeichnung.
Zu beachten
Die Dateibezeichnung wird ohne Pfad und ohne Dateierweiterung übergeben, falls jemand in die Verlegenheit kommt, diese Methode selbst aufrufen zu müssen.

◆ setValue() [1/2]

int glo::BlobRecordAttribute::setValue ( char * pData,
std::size_t nDataSize,
bool bCopy = true )

Setzt den Wert des Attributs.

Parameter
[in]pDataEin Zeiger auf einen allocierten Speicher.
[in]nDataSizeDie Größe von pData.
[in]bCopyWenn false, wird pData nicht kopiert, sondern nur der rohe Zeiger gesetzt.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ setValue() [2/2]

void glo::BlobRecordAttribute::setValue ( const eut::Blob & rValue)

Setzt den Wert des Attributs.

Parameter
[in]rValueDer neue Wert.

◆ setValueFromVoid()

virtual void glo::BlobRecordAttribute::setValueFromVoid ( void * pValue)
virtual

Setzt den Wert des Attributs. Wird über einen static_cast zugewiesen.

Parameter
[in]pValueDer roher Zeiger auf den Wert.

Implementiert glo::BaseRecordAttribute.

◆ takeValue()

virtual int glo::BlobRecordAttribute::takeValue ( const BaseRecordAttribute & rT)
virtual

Übernimmt den Wert aus übergebenen Attribut, wenn möglich. Es wird versucht, den Wert irgendwie zu casten.

Parameter
[in]rTDas persistente Attribut aus dem der Wert übernommen werden soll.
Rückgabe
Es wird eine Fehler- bzw. Warnmeldung geliefert, wenn der Cast nicht funktionier.

Erneute Implementation von glo::BaseRecordAttribute.

◆ updateDataReference()

virtual int glo::BlobRecordAttribute::updateDataReference ( const std::string & rsDataPath,
DATA_REFERENCE_INFO MethodInfo )
virtual

Löscht bzw. schreibt eine externe Datei mit den Daten des Blob.

Parameter
[in]rsDataPathDer vollständigen Verzeichnisnamen, in dem die Daten zu finden sind. Die Daten liegen immer in einem Unterverzeichnis von dem Verzeichnis, in dem die Schemadatei liegt (z.B. "C:/Pfad/Data/").
[in]MethodInfoDie Information wie mit einer externen Datei umgegangen werden soll.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

Erneute Implementation von glo::BaseRecordAttribute.

Dokumentation der Datenelemente

◆ m_sFileName

std::string glo::BlobRecordAttribute::m_sFileName
private

Ein Blob wird immer in einer Datei dieser Bezeichnung untergebracht.

◆ m_Value

eut::Blob glo::BlobRecordAttribute::m_Value
private

Der Wert des Attributs.


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