GlobalObjects
Lade ...
Suche ...
Keine Treffer
GloPersistent.h-Dateireferenz

Header für Persistent Mehr ...

#include "GloTypes.h"
#include "GloBasePersistent.h"
#include "GloPersObjectSpy.h"
#include "GloAttributeID.h"
#include "GloRecord.h"
#include "GloTOndemand.h"
#include "GloTPointerSet.h"
#include "GloTOndemandSet.h"
#include "GloTPointerList.h"
#include "GloTOndemandList.h"
#include "EuException.h"
#include <string>
#include <ctime>
#include <list>

gehe zum Quellcode dieser Datei

Klassen

class  glo::Persistent
 Die Basisklasse der persistenten Klassen. Von dieser Klasse müssen alle persistenten Klassen abgeleitet sein, um deren Objekte in der Datenbank verarbeiten zu können. Mehr ...
 

Namensbereiche

namespace  glo
 

Makrodefinitionen

#define GLO_ANNOTATE_ACCESS_SPECIFIER(x)
 
#define GLO_INDEX(...)
 
#define GLO_OBJECT(...)
 
#define GLO_PERSISTENT_AREA   GLO_ANNOTATE_ACCESS_SPECIFIER(x)
 
#define persistent   GLO_PERSISTENT_AREA
 
#define transient   GLO_PERSISTENT_AREA
 

Ausführliche Beschreibung

Header für Persistent

Autor
Helmut Jakoby

Terms of License The source code in this file is licensed.

SPDX-License-Identifier: LicenseRef-Helmut-Jakoby-Commercial-License OR LicenseRef-Helmut-Jakoby-Adapted-Prosperity-Public-License

Helmut-Jakoby-Commercial-License
For OEMs (Original Equipment Manufacturers), ISVs (Independent Software Vendors), VARs (Value Added Resellers) and other distributors who combine commercially licensed software with Software © by Helmut Jakoby and distribute it as such or in conjunction with another product and do not wish to publish the source code of the commercially licensed software under any other license that may be offered, a commercial license is available for this purpose. Please review the following information to ensure the Commercial-License requirements will be met: https://globalobjects.de/hjacomlicense_en.html .

Helmut-Jakoby-Adapted-Prosperity-Public-License
For developers of free, non-commercial software applications who want to combine and distribute their application with Software © by Helmut Jakoby, this license is a good option. Please review the following information to ensure the Adapted-Prosperity-Public-License requirements will be met: https://globalobjects.de/hjappllicense_en.html .

Makro-Dokumentation

◆ GLO_ANNOTATE_ACCESS_SPECIFIER

#define GLO_ANNOTATE_ACCESS_SPECIFIER ( x)

◆ GLO_INDEX

#define GLO_INDEX ( ...)

Um im Header von persistenten Klassen einen GLO-spezifischen Index einzufügen. Beispiele:

  • GLO_INDEX( IndexName, ExampleClass.m_MyString20[20] );
    #define GLO_INDEX(...)
    Definition GloPersistent.h:134
    -> Es wird ein Index mit dem Namen 'IndexName' erstellt. Der Index wird aus den ersten 20 Zeichen des Attributs ExampleClass.m_MyString gebildet.
  • GLO_INDEX( IndexName, ExampleClass.m_MyString[20] & ExampleClass.m_MyEmbedded.ExampleEmbeddedClass.m_MyValue[10], UNIQUE | DEU-1 | CASE_SENSITIVE | USE_DELIMITER );
    -> Es wird ein Index mit dem Namen 'IndexName' erstellt. Der Index wird aus den ersten 20 Zeichen des Attributs ExampleClass.m_MyString und den ersten 10 Zeichen des Attributes ExampleEmbeddedClass.m_MyValue des eingebetteten Objektes ExampleClass.m_MyEmbedded gebildet. Des weiteren ist diese Index eindeutig (UNIQUE), die Zeichen im Index werden unterschieden in Groß- und Kleinschreibung (CASE_SENSITIVE), es werden alle Sonderzeichen des deutschen Zeichensatzes in ihre ASCII Äquivalente gewandelt (z.B. 'Ä' wird zu 'AE') (DEU-1) und die beiden Strings werden durch ein '|' getrennt (USE_DELIMITER).

Siehe Beispiel in ExampleClass.h.

◆ GLO_OBJECT

#define GLO_OBJECT ( ...)
Wert:
public: \
virtual unsigned long getGloClassID() const override; \
virtual int getTypeAsString( std::string & rsTypeName ) override; \
virtual int setGloAttribute( const glo::AttributeID & rAttributeID, void * pPara ) override; \
virtual void * getGloAttribute( const glo::AttributeID & rAttributeID ) override; \
virtual int setGloAttribute( const std::string & rstrAttributeName, void * pPara ) override; \
virtual void * getGloAttribute( const std::string & rstrAttributeName ) override; \
virtual bool isSameOrSuperClassFrom( const glo::Persistent * pPersistent ) const override; \
virtual bool isSameOrSuperClassFrom( const std::shared_ptr<glo::Persistent> spPersistent ) const override; \
virtual void _postAssign( glo::Base & rBase ) override; \
private:
Diese Klasse spiegelt eine eindeutige ID eines Klasseninformations-Attributes wieder.
Definition GloAttributeID.h:81
Definition GloBase.h:263
Die Basisklasse der persistenten Klassen. Von dieser Klasse müssen alle persistenten Klassen abgeleit...
Definition GloPersistent.h:242

Es werden die virtuellen Methoden für die Unterklassen deklariert. Beispiele:

  • GLO_OBJECT( MyTestClass:Persistent );
    #define GLO_OBJECT(...)
    Definition GloPersistent.h:82
    -> MyTestClass abgeleitet von Persistent
  • GLO_OBJECT( MyClass:Laber,Rababer );
    -> MyClass abgeleitet von Laber und Rababer
  • GLO_OBJECT( MyClass::MyNestedClass:Persistent );
    -> MyClass::MyNestedClass abgeleitet von Persistent

Siehe Beispiel in ExampleClass.h.

◆ GLO_PERSISTENT_AREA

#define GLO_PERSISTENT_AREA   GLO_ANNOTATE_ACCESS_SPECIFIER(x)

◆ persistent

#define persistent   GLO_PERSISTENT_AREA

Startsequenz für den Bereich der persistenten Attribute.
Innerhalb der Startsequenz 'persistent' und Endsequenz 'transient' werden alle Attribute für die Speicherung in GlobalObjects berücksichtigt.
Siehe Beispiel in ExampleClass.h.

Siehe auch
transient

◆ transient

#define transient   GLO_PERSISTENT_AREA

Endsequenz für den Bereich der persistentzen Attribute.
Siehe Beschreibung von persistent.