Lade...
 

Einträge in CLASSIX.INI

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:

  1. include "extern.ini" // for environment variables