Einträge in CLASSIX.INI
Das Initialisierungs-File CLASSIX.INI beschreibt
in Sektion | |
---|---|
Modellklassen | MetaInfo |
die DLLs der Modellklassen | MetaInfo |
wie die Objekte dieser Klassen in der Datenbank gespeichert werden | MetaInfo |
alle generierbaren Slots | Dictionary |
Eigenschaften 'normaler' Datenmember | Dictionary |
Schema-Datenbank | MetaInfo |
Check-illegal-Pointer-Modus | MetaInfo |
CLASSIX.INI ist in zwei Sektionen unterteilt. Der Beginn einer Sektion wird mit den in obiger Tabelle angegeben Schlüsselwörtern MetaInfo bzw. Dictionary gekennzeichnet. Für die Einführung neuer Modellklassen ist nur die Sektion 'MetaInfo' von Interesse:
Die Syntax der Sektion 'MetaInfo'
MetaInfoSection ::= MetaInfo | AuxParamList MetaInfo | MetaInfo ::= ClassDescription FileDescription StorageDescription ClassDescription ::= ClassEntry | ClassDescription ClassEntry ClassEntry ::= Class(className, classID, fileName) | Class(className, classID, fileName, baseClassName) className ::= identifier baseClassName ::= identifier FileDescription ::= FileEntry | FileDescription FileEntry FileEntry ::= File(fileName, storageList) storageList ::= storageName | storageList, storageName fileName ::= name StorageDescription ::= StorageEntry | StorageDescription StorageEntry StorageEntry ::= Storage(storageName, physicalDataBase, Segment, EP(rootEPList), CSeg(collSegList), Garbage(rootEntryPoint, segmentName)) storageName ::= name Segment ::= segmentName | segmentName(EXTERN) rootEPList ::= rootEntryPoint | rootEPList, rootEntryPoint rootEntryPoint ::= rootEntryPointName | rootEntryPointName(collectionType) rootEntryPointName ::= name collectionType ::= BAG | SET | LIST | ARRAY collSegList ::= segmentName | collSegList, segmentName segmentName ::= name name ::= identifier | string AuxParamList ::= AuxParam | AuxParamList AuxParam AuxParam ::= CheckIllegalPointers | SchemaDB | ModelDLLs SchemaDB ::= Schema(fileName) ModelDLLs ::= DLLs(dllList) dllList ::= fileName | dllList, fileName
Für jede neue Klasse wird benötigt:
- ein Eintrag zur Beschreibung der Klasse (ClassEntry)
- eventuell weitere Angaben zur persistenten Speicherung (FileEntry, StorageEntry)
- Angabe der DLL, die den Code der neuen Klassen enthält (ModelDLLs)
Die folgende Abbildung zeigt das Zusammenspiel zwischen der Information aus CLASSIX.INI, der Funktion New() und dem Objektmanager, wenn dieser eine Instanz einer Klasse A erzeugt:
In der Sektion 'MetaInfo' können die Umgebungsvariablen gesetzt werden. Das Setzen von Umgebungsvariablen beginnt mit dem Schlüsselwort [ENVIRONMENT], gefolgt von Variablennamen und der Wertzuweisung. z.B.: [ENVIRONMENT] CX_BITMAP=y:\classix\classix_bmp; CX_CLUSTERING=255 OS_AS_SIZE=0x5000000000
Achtung!
Die Umgebungsvariablen CX_ROOTDIR und CX_SYSTEM können nicht in CLASSIX.INI gesetzt werden.
Um die Umgebungsvariablen außerhalb von der CLASSIX.INI zu setzen kann in der Sektion 'MetaInfo' mit dem Schlüsselwort #include eine externe INI-Datei eingebunden werden. z.B:
- include "extern.ini" // for environment variables