GlobalObjects
GloTypes.h-Dateireferenz

Für jede Bibliothek, hier 'GlobalObjects' gibt es eine Typen-Datei. Mehr ...

#include "GloErrors.h"
#include "GloRecordAttributeTypes.h"
#include <stack>
#include <string>
#include <climits>

gehe zum Quellcode dieser Datei

Klassen

struct  GloDependentObjsWithDeepMode
 Eine Struktur um mehrere Objekt-IDs mit einem 'Tiefenmodus' für Aktionen zu übergeben und im GloLockManager zu verwahren. Mehr ...
 
class  GloForgeter< T >
 Speziel für GloGenericPersistent oder abgeleitete Klassen von GloPersistent die Forget-Methode für std::shared_ptr. Mehr ...
 
struct  GloLockPossibleSpecification
 Es können erlaubten Aktionen in der Datenbank wie lesen, schreiben und löschen für ein Objekt erfragt werden. Dieses ist die Antwort. Mehr ...
 
struct  GloLockSpecification
 Um Objekte sperren zu können, muss einerseits der 'Lock-Modus' übergeben werden und zusätzlich die 'Sperrtiefe'. Dieses ist mit dieser Struktur möglich. Mehr ...
 
struct  GloOpenSpecification
 Zum Öffnen einer Datenbank wird diese Info in die GloOrderMsg einegfügt. Mehr ...
 

Makrodefinitionen

#define __glo_export_dll
 
#define NULL_PTR   NULL
 

Typdefinitionen

typedef unsigned long GloShowLevel
 
typedef unsigned long GloTdWatchNotifyMode
 
typedef long long NUM_PTR
 

Aufzählungen

enum  EnQueryType { eQUERY_DIRECT, eQUERY_OQL }
 
enum  GloEnComparisionOp {
  GloEQUAL, GloGREATER, GloGREATER_EQUAL, GloLESS,
  GloLESS_EQUAL, GloNOT_EQUAL
}
 
enum  GloEnDeepMode {
  GloNONE = 0, GloFLAT = 1, GloSHALLOW = 2, GloNOONDEMAND = 3,
  GloDEEP = 4
}
 
enum  GloEnLockMode {
  GloLK_NONE = 0, GloLK_READvDELETE = 1, GloLK_READvWRITE = 2, GloLK_WRITEvWRITE = 3,
  GloLK_DELETEvWRITE = 4, GloLK_DELETEvREAD = 5, GloLK_EXCLUSIVE = 6, GloLK_TRANSACTION_WRITE = 7,
  GloLK_TRANSACTION_DELETE = 8
}
 
enum  GloEnSeekMode {
  GloSTART, GloEND, GloCURRENT, GloNEXT,
  GloPREVIOUS
}
 

Variablen

const char g_cIndexDelimiter = '|'
 
const char g_cTableColumnDelimiter = '\a'
 
const std::string g_sEOL = "\r\n"
 
const std::string g_sGloVersion = "0.1.4"
 
const GloShowLevel GloSHOW_CHECK_BASE_ACTION = 128
 
const GloShowLevel GloSHOW_COMPRESS_ACTION = 64
 
const GloShowLevel GloSHOW_NONE = 0
 
const GloShowLevel GloSHOW_ORDER_ACTION = 4
 
const GloShowLevel GloSHOW_READ_WRITE = 2
 
const GloShowLevel GloSHOW_READINDEX_ACTION = 16
 
const GloShowLevel GloSHOW_REINDEX_ACTION = 8
 
const GloShowLevel GloSHOW_REPAIR_BASE_ACTION = 256
 
const GloShowLevel GloSHOW_TCP = 1
 
const GloShowLevel GloSHOW_WRITEINDEX_ACTION = 32
 
const GloTdWatchNotifyMode GloWNM_CLIENT_CLOSEBASE = 8192
 
const GloTdWatchNotifyMode GloWNM_CLIENT_CONNECTSERVER = 1024
 
const GloTdWatchNotifyMode GloWNM_CLIENT_DISCONNECTSERVER = 2048
 
const GloTdWatchNotifyMode GloWNM_CLIENT_OPENBASE = 4096
 
const GloTdWatchNotifyMode GloWNM_DATABASE_CHECK = 524288
 
const GloTdWatchNotifyMode GloWNM_DATABASE_COMPRESS = 131072
 
const GloTdWatchNotifyMode GloWNM_DATABASE_REPAIR = 262144
 
const GloTdWatchNotifyMode GloWNM_DELETE = 16
 
const GloTdWatchNotifyMode GloWNM_DELETE_TRANSACTION = 32
 
const GloTdWatchNotifyMode GloWNM_INDEX_READ = 16384
 
const GloTdWatchNotifyMode GloWNM_INDEX_REINDEX = 65536
 
const GloTdWatchNotifyMode GloWNM_INDEX_WRITE = 32768
 
const GloTdWatchNotifyMode GloWNM_INSERT = 256
 
const GloTdWatchNotifyMode GloWNM_INSERT_TRANSACTION = 512
 
const GloTdWatchNotifyMode GloWNM_LOCK = 64
 
const GloTdWatchNotifyMode GloWNM_NONE = 0
 
const GloTdWatchNotifyMode GloWNM_READ = 1
 
const GloTdWatchNotifyMode GloWNM_READ_TRANSACTION = 2
 
const GloTdWatchNotifyMode GloWNM_UNLOCK = 128
 
const GloTdWatchNotifyMode GloWNM_WRITE = 4
 
const GloTdWatchNotifyMode GloWNM_WRITE_TRANSACTION = 8
 

Ausführliche Beschreibung

Für jede Bibliothek, hier 'GlobalObjects' gibt es eine Typen-Datei.

Diese Datei wird in der Regel von jeder Header aus der Bibliothek eingebunden.

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 Lesser General Public License Usage
You can redistribute it and/or modify it under the terms of the GNU Lesser 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 Lesser General Public License version 3 requirements will be met: https://www.gnu.org/licenses/lgpl-3.0.html.

GNU General Public License Usage
Alternatively, you can redistribute it and/or modify it under the terms of the GNU 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 General Public License requirements will be met: https://www.gnu.org/licenses/gpl-2.0.html and https://www.gnu.org/licenses/gpl-3.0.html.

Makro-Dokumentation

◆ __glo_export_dll

#define __glo_export_dll

◆ NULL_PTR

#define NULL_PTR   NULL

Dokumentation der benutzerdefinierten Typen

◆ GloShowLevel

◆ GloTdWatchNotifyMode

unsigned long GloTdWatchNotifyMode

Zum Beobachten von Objekten können verschiedend Modi übergeben werden, um die Beobachtung zu steuern. Diese Modi können auch mittels '|' verknüpft werden.

Siehe auch
GloWNM_NONE
GloWNM_READ
GloWNM_READ_TRANSACTION
GloWNM_WRITE
GloWNM_WRITE_TRANSACTION
GloWNM_DELETE
GloWNM_DELETE_TRANSACTION
GloWNM_LOCK
GloWNM_UNLOCK
GloWNM_INSERT
GloWNM_INSERT_TRANSACTION
GloWNM_CLIENT_CONNECTSERVER
GloWNM_CLIENT_DISCONNECTSERVER
GloWNM_CLIENT_OPENBASE
GloWNM_CLIENT_CLOSEBASE
GloWNM_INDEX_READ
GloWNM_INDEX_WRITE
GloWNM_INDEX_REINDEX
GloWNM_DATABASE_COMPRESS
GloWNM_DATABASE_REPAIR

Folgende Beobachtungsmodi sind für verschiedene Beobachtungsmöglichkeiten in Verbindung mit GloEnDeepMode möglich:

Objekt beobachten

ObjektSet beobachten

AllSet beobachten

Client ein-auslocken beobachten

Index einlesen / neu erstellen beobachten

Datenbank komprimieren beobachten

Datenbank reparieren beobachten

Achtung
Beim Beobachten und Benachrichtigen gilt, wenn beobachtet wird: viel Aktion in der Datenbank erzeugt viel Benachrichtigungsverkehr! Das kann bis zum Einfrieren der Applikation führen! Also mit Bedacht einsetzen und testen.

◆ NUM_PTR

typedef long long NUM_PTR

Um 32- und 64-Bit zu unterstützen, wird für Zeiger auf Funktionen der Typ NUM_PTR eingeführt. Dieser ist immer long long; also 64-Bit groß.

Dokumentation der Aufzählungstypen

◆ EnQueryType

Der Typ einer IndexAbfrage. /sa GloIndexQueryStruct, GloBase::getIndexedObjIdsFromAllSet (...)

Aufzählungswerte
eQUERY_DIRECT 

Es wird der String als Suchwert gesehen (z.B. "Hans Me?er")

eQUERY_OQL 

Es wird der String aus OQL-Ausdruck ausgewertet. (Noch nicht implementiert!)

◆ GloEnComparisionOp

Vergleichsoperatoren für z.B. Indexabfrage.

Aufzählungswerte
GloEQUAL 

Gleich.

GloGREATER 

Größer als ...

GloGREATER_EQUAL 

Größer oder gleich als...

GloLESS 

Kleiner als...

GloLESS_EQUAL 

Kleiner oder gleich als...

GloNOT_EQUAL 

Ungleich.

◆ GloEnDeepMode

Der Modus in welchem ein Objekt gespeichert, gelöscht, gelockt u.s.w. wird

Aufzählungswerte
GloNONE 

Undefiniert

GloFLAT 

Nur das Objekt ist betroffen

GloSHALLOW 

Das Objekt und seine abhängigen (dependent) referenzierten Objekte sind betroffen.

GloNOONDEMAND 

Das Objekt und seine direkt über Zeiger referenzierten Objekte sind betroffen.

GloDEEP 

Das Objekt, seine abhängigen (dependent) referenzierten Objekte, seine direkt über Zeiger referenzierten Objekte und seine Ondemand-Referenzen (beim speichern sofern sie im Speicher sind).

◆ GloEnLockMode

Es gibt unterschiedliche Möglichkeiten, Objekt zu locken und sich Rechte einzuräumen.

In folgender Tabelle sind die einzelnen Lockmodi mit ihren Auswirkungen aufgelistet.

Es gelten folgende Abkürzungen für die Lockmodi:

  • NN -> GloLK_NONE
  • RD -> GloLK_READvDELETE
  • RW -> GloLK_READvWRITE
  • WW -> GloLK_WRITEvWRITE
  • DW -> GloLK_DELETEvWRITE
  • DR -> GloLK_DELETEvREAD
  • EX -> GloLK_EXCLUSIVE
  • TW -> GloLK_TRANSACTION_WRITE
  • TD -> GloLK_TRANSACTION_DELETE

Es gelten folgende Abkürzungen für Aktionen:

  • R -> Lesen
  • W -> Schreiben
  • D -> Löschen
Sperrmodi und deren Auswirkungen
Sperrende InstanzAndere Instanzen
SperrmodusGarantie zu tun...Schutz vor...Elaubte SperrmodiMöglichkeitenRestriktionen
NNkeinekeinenalleallekeine
RDRDRD, RW, WW, TWR, WD
RWRD, WRD, RWRD, W
WWR, WD, WRDRD, W
DWR, W, DD, WkeineRD, W
DRR, W, DD, W, RkeinekeineD, R, W
EXR, W, DD, W, RkeinekeineD, R, W
TWR, WD, WRDRD, W
TDR, W, DD, WkeineRD, W
Aufzählungswerte
GloLK_NONE 

Kein Lock.

GloLK_READvDELETE 

Garantie zum lesen, andere dürfen nicht löschen.

GloLK_READvWRITE 

Garantie zum lesen, andere dürfen nicht schreiben.

GloLK_WRITEvWRITE 

Garantie zum schreiben, andere dürfen nicht schreiben.

GloLK_DELETEvWRITE 

Garantie zum löschen, andere dürfen nicht schreiben.

GloLK_DELETEvREAD 

Garantie zum löschen, andere dürfen nicht lesen.

GloLK_EXCLUSIVE 

Garantie für alles, andere dürfen nichts.

GloLK_TRANSACTION_WRITE 

Garantie zum schreiben, andere dürfen nicht schreiben. Dieser Modus wird in einer Transaktion gesetzt, wenn ein Objekt geändert werden soll.

GloLK_TRANSACTION_DELETE 

Garantie zum löschen, andere dürfen nicht schreiben. Dieser Modus wird in einer Transaktion gesetzt, wenn ein Objekt gelöscht werden soll.

◆ GloEnSeekMode

Zum itereieren und für Get- und Remove-Methoden, welches Objekt gemeint ist.

Aufzählungswerte
GloSTART 

Das erste Element ist gemeint.

GloEND 

Das letzte Element ist gemeint.

GloCURRENT 

Das aktuelle Element ist gemeint.

GloNEXT 

Das nächste Element nach dem aktuellen Element ist gemeint.

GloPREVIOUS 

Das Element vor dem aktuellen Element ist gemeint.

Variablen-Dokumentation

◆ g_cIndexDelimiter

const char g_cIndexDelimiter = '|'

Der Index-Trenner.
/sa GloClassInfoIndex::m_bIndexSeparator.

◆ g_cTableColumnDelimiter

const char g_cTableColumnDelimiter = '\a'

Der Tabellespalten-Trenner.
Vorgesehen ist '\a'.
Zu Testzwecken sollte ein lesbares Zeichen wie '|' genommen werden, um die Tabellendatei ggf. mit einem Texteditor ansehen und bearbeiten zu können.

Achtung
Es ist darauf zu achten, dass die endgültige Applikation nur auf Tabellendatei trifft, die den aktuellen Tabellespalten-Trenner beinhalten.

◆ g_sEOL

const std::string g_sEOL = "\r\n"

Verschiedene Beriebssysteme haben wohl unterschiedliche Zeilentrenner in Dateien.
Es wird anhand des genutzten Kompilers der Betriebssystem ermittelt.

Achtung
Wenn ein anderer Kompiler genutzt wird

◆ g_sGloVersion

const std::string g_sGloVersion = "0.1.4"

Die Version, wenn neu, hier ändern.

Die Dateibezeichnungen der DLL- bzw. der LIB-Datei setzt sich aus der Projektbezeichnung + der Compilerkennung + der Version der Bibliothek zusammmen.

Z.B. für das Visual Studio 2015 = "$(ProjectName)$(PlatformToolset)011" als Zielname; wird die Bezeichnung, wenn das Kompilierziel "GLO", zu "GLOv140011.dll" und "GLOv140011.lib"

◆ GloSHOW_CHECK_BASE_ACTION

const GloShowLevel GloSHOW_CHECK_BASE_ACTION = 128

Alle Tabellen-Prüf-Aktionen.

◆ GloSHOW_COMPRESS_ACTION

const GloShowLevel GloSHOW_COMPRESS_ACTION = 64

Alle Komprimier-Aktionen.

◆ GloSHOW_NONE

const GloShowLevel GloSHOW_NONE = 0

Keine Anzeige.

◆ GloSHOW_ORDER_ACTION

const GloShowLevel GloSHOW_ORDER_ACTION = 4

Alle Auftrags-Aktionen.

◆ GloSHOW_READ_WRITE

const GloShowLevel GloSHOW_READ_WRITE = 2

Alle Aktionen auf Tabellen.

◆ GloSHOW_READINDEX_ACTION

const GloShowLevel GloSHOW_READINDEX_ACTION = 16

Alle Read-Index-Aktionen.

◆ GloSHOW_REINDEX_ACTION

const GloShowLevel GloSHOW_REINDEX_ACTION = 8

Alle Reindex-Aktionen.

◆ GloSHOW_REPAIR_BASE_ACTION

const GloShowLevel GloSHOW_REPAIR_BASE_ACTION = 256

Alle Tabellen-Reparatur-Aktionen.

◆ GloSHOW_TCP

const GloShowLevel GloSHOW_TCP = 1

Alle Tcp-Aktionen des Servers.

◆ GloSHOW_WRITEINDEX_ACTION

const GloShowLevel GloSHOW_WRITEINDEX_ACTION = 32

Alle Write-Index-Aktionen.

◆ GloWNM_CLIENT_CLOSEBASE

const GloTdWatchNotifyMode GloWNM_CLIENT_CLOSEBASE = 8192

Es wird benachrichtigt, wenn im Mehrbenutzerbetrieb ein Client die Datenbank schließt.

◆ GloWNM_CLIENT_CONNECTSERVER

const GloTdWatchNotifyMode GloWNM_CLIENT_CONNECTSERVER = 1024

Es wird benachrichtigt, wenn im Mehrbenutzerbetrieb sich ein neuer Client am GloServer anmeldet.

◆ GloWNM_CLIENT_DISCONNECTSERVER

const GloTdWatchNotifyMode GloWNM_CLIENT_DISCONNECTSERVER = 2048

Es wird benachrichtigt, wenn im Mehrbenutzerbetrieb sich ein Client am GloServer abmeldet.

◆ GloWNM_CLIENT_OPENBASE

const GloTdWatchNotifyMode GloWNM_CLIENT_OPENBASE = 4096

Es wird benachrichtigt, wenn im Mehrbenutzerbetrieb ein neuer Client die Datenbank öffnet.

◆ GloWNM_DATABASE_CHECK

const GloTdWatchNotifyMode GloWNM_DATABASE_CHECK = 524288

Es wird über den Fortschritt des Analysierens einer Datenbank benachrichtigt.

◆ GloWNM_DATABASE_COMPRESS

const GloTdWatchNotifyMode GloWNM_DATABASE_COMPRESS = 131072

Es wird über den Fortschritt des Komprimierens einer Datenbank benachrichtigt.

◆ GloWNM_DATABASE_REPAIR

const GloTdWatchNotifyMode GloWNM_DATABASE_REPAIR = 262144

Es wird über den Fortschritt des Reparierens einer Datenbank benachrichtigt.

◆ GloWNM_DELETE

const GloTdWatchNotifyMode GloWNM_DELETE = 16

Wenn ein persistentes Objekt mit diesem Wert überwacht wird, wird benachrichtigt, wenn dieses von irgendwem in der Datenbank gelöscht wird.
Wenn ein AllSet mit diesem Wert überwacht wird, wird benachrichtigt, wenn irgendein Objekt in diesem von irgendwem in der Datenbank gelöscht wird.

◆ GloWNM_DELETE_TRANSACTION

const GloTdWatchNotifyMode GloWNM_DELETE_TRANSACTION = 32

Wie GloWNM_DELETE, wird in einer Transaktion ausgelöst.

◆ GloWNM_INDEX_READ

const GloTdWatchNotifyMode GloWNM_INDEX_READ = 16384

Es wird über den Fortschritt des Einlesens des Indexes benachrichtigt.

◆ GloWNM_INDEX_REINDEX

const GloTdWatchNotifyMode GloWNM_INDEX_REINDEX = 65536

Es wird über den Fortschritt des Reindizierens eines Indexes benachrichtigt.

◆ GloWNM_INDEX_WRITE

const GloTdWatchNotifyMode GloWNM_INDEX_WRITE = 32768

Es wird über den Fortschritt des Schreibens des Indexes benachrichtigt.

◆ GloWNM_INSERT

const GloTdWatchNotifyMode GloWNM_INSERT = 256

Mit diesem Wert kann nur ein AllSet überwacht werden. Es wird benachrichtigt, wenn irgendein Objekt in diesem von irgendwem neu eingefügt wird.

◆ GloWNM_INSERT_TRANSACTION

const GloTdWatchNotifyMode GloWNM_INSERT_TRANSACTION = 512

◆ GloWNM_LOCK

const GloTdWatchNotifyMode GloWNM_LOCK = 64

Wenn ein persistentes Objekt mit diesem Wert überwacht wird, wird benachrichtigt, wenn dieses von irgendwem in der Datenbank gesperrt wird.
Wenn ein AllSet mit diesem Wert überwacht wird, wird benachrichtigt, wenn irgendein Objekt in diesem von irgendwem in der Datenbank gesperrt wird.

◆ GloWNM_NONE

const GloTdWatchNotifyMode GloWNM_NONE = 0

Es soll nicht beobachtet und benachrichtigt werden.

◆ GloWNM_READ

const GloTdWatchNotifyMode GloWNM_READ = 1

Wenn ein persistentes Objekt mit diesem Wert überwacht wird, wird benachrichtigt, wenn das Objekt von irgendwem aus der Datenbank gelesen wird.
Wenn ein AllSet mit diesem Wert überwacht wird, wird benachrichtigt, wenn irgendein Objekt in diesem von irgendwem aus der Datenbank gelesen wird.

◆ GloWNM_READ_TRANSACTION

const GloTdWatchNotifyMode GloWNM_READ_TRANSACTION = 2

Wie GloWNM_READ, wird in einer Transaktion ausgelöst.

◆ GloWNM_UNLOCK

const GloTdWatchNotifyMode GloWNM_UNLOCK = 128

Wenn ein persistentes Objekt mit diesem Wert überwacht wird, wird benachrichtigt, wenn dieses von irgendwem in der Datenbank freigegeben wird.
Wenn ein AllSet mit diesem Wert überwacht wird, wird benachrichtigt, wenn irgendein Objekt in diesem von irgendwem in der Datenbank freigegeben wird.

◆ GloWNM_WRITE

const GloTdWatchNotifyMode GloWNM_WRITE = 4

Wenn ein persistentes Objekt mit diesem Wert überwacht wird, wird benachrichtigt, wenn dieses von irgendwem in der Datenbank gespeichert wird.
Wenn ein AllSet mit diesem Wert überwacht wird, wird benachrichtigt, wenn irgendein Objekt in diesem von irgendwem in der Datenbank gespeichert wird.

◆ GloWNM_WRITE_TRANSACTION

const GloTdWatchNotifyMode GloWNM_WRITE_TRANSACTION = 8

Wie GloWNM_WRITE, wird in einer Transaktion ausgelöst.