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

This file is part of the GlobalObjects module.

GlobalObjects is free software:

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

GNU Affero General Public License Usage
You can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. Please review the following information to ensure the GNU Affero General Public License requirements will be met: https://www.gnu.org/licenses/agpl-3.0.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:127
    -> 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:74
Diese Klasse ist die Schnittstelle zu den persistenten Objekten. Hier können "Objekte" angemeldet,...
Definition GloBase.h:250
Die Basisklasse der persistenten Klassen. Von dieser Klasse müssen alle persistenten Klassen abgeleit...
Definition GloPersistent.h:221

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

  • GLO_OBJECT( MyTestClass:Persistent );
    #define GLO_OBJECT(...)
    Definition GloPersistent.h:75
    -> 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.