Home Inhaltsverzeichnis Konfigurationsabfrage Abschließende Hinweise
 Object Linking for GEM Applications OLGA Rev 1.5

9 Das OLGA-Info-Dateiformat

Info-Dateien erlauben den Austausch von spezielleren Informationen zwischen Client und Server. Solche Dateien bestehen aus zwei Arten von Datenstrukturen:

  OLGAInfHeader = record
    magic  : longint;  { 'OLGA' }
    version,           { z.Z. $0100 }
    skip   : word      { Anzahl der folgenden Headerbytes, die
                         überlesen werden müssen; z.Z. 0       }
  end;

  OLGABlockHeader = record
    id,              { Block-ID }
    length: longint  { Anzahl der folgenden Datenbytes }
  end;

Die Dateien sind folgendermaßen aufgebaut:

  InfHeader
  BlockHeader 1
  Daten 1
  BlockHeader 2
  Daten 2
  ...
  BlockHeader n-1
  Daten n-1
  BlockHeader n (id=0)

Das Dateiende (und damit Block n) wird durch die ID 0 gekennzeichnet. Folgende Block-IDs sind bereits definiert (es ist damit allerdings nicht festgelegt, welche Blöcke überhaupt bzw. in welcher Reihenfolge gespeichert werden):

$00000000
Dateiende (length sollte n.M. auch 0 sein)
 
'REM '
Kommentar; die einzelnen Zeilen sind 0-terminiert, das Ende wird über die Länge erkannt (damit man auch Leerzeilen verschicken kann)
 
'AUTH'
Autor; Codierung siehe 'REM ', allerdings sollte man sich auf eine (0-terminierte) Zeile beschränken
 
'KEYW'
Stichworte; Codierung s. 'REM '; innerhalb der Zeilen liegen die Stichworte durch Komma getrennt vor
 
'DATE'
Datum der letzten Änderung als DOSTIME-Struktur
 
'ICON'
Ein mit der Datei bzw. derem Inhalt verknüpftes Icon vom Typ G_ICON (nicht G_CICON!). Die Länge des Blocks berechnet sich aus sizeof(ICONBLK) + 2*((ib_wicon+7) >> 3)*ib_hicon + (Länge des Icontextes ohne Nullbyte) + 1. Der Block ist folgendermaßen aufgebaut:
 
  1. ein kompletter ICONBLK; die Felder ib_pmask, ib_pdata und ib_ptext sollten vom Server auf NULL gesetzt werden und müssen vom Client ignoriert werden
     
  2. Maskendaten
     
  3. Bilddaten
     
  4. ein Byte, das die Länge des Icontextes angibt (kann auch Null sein)
     
  5. der Icontext (falls Längenbyte>0)
     

Unbekannte Blöcke müssen ignoriert (d.h. überlesen) werden. D.h. natürlich auch, daß neue Block-IDs ohne Probleme angelegt werden können - damit es nicht zu Kollisionen kommt, wäre es nett, wenn ich (Adresse s. "Kontakt") verständigt würde, dann kann ich die Block-ID in obige Liste aufnehmen.


Home Inhaltsverzeichnis Konfigurationsabfrage Abschließende Hinweise