•  Back 
  •  OLGA 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  ATOS Hilfe 
  •  Show info about hypertext 
  •  View a new file 
Topic       : ATOS-Magazin März/April 1996
Author      : Das ATOS-Team
Version     : 2/96 (2.4.1996)
Subject     : ATOS Diskettenmagazine
Nodes       : 138
Index Size  : 3380
HCP-Version : 3
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : 
@help       : ATOS Hilfe
@options    : -i -s +zz -t2
@width      : 75
View Ref-FileOLGA 4/7                                         Das ATOS-Magazin 2/96

Initialisierung

Das OLGA-Protokoll besteht im wesentlichen aus der Kommunikation mit
dem OLGA-Manager. Dazu muß man die AES-ID des Managers kennen, die
wie folgt ermittelt wird:

a) Wenn appl_find("OLGA    ") erfolgreich ist, hat man den Manager
   schon gefunden.
b) Ansonsten wird nun die Environmentvariable OLGAMANAGER mit getenv()
   ausgewertet. Dort kann ein kompletter Zugriffspfad stehen! Zunächst
   extrahiert man aus diesem Pfad einen Programmnamen für appl_find()
   und geht entsprechend wie unter a) vor.
   Konnte auch dieser Name nicht gefunden werden, startet man das
   Programm, das von OLGAMANAGER bezeichnet wird, mit shel_write()
   nach.
c) Wenn das bisherige nicht zum Erfolg geführt hat, gibt es offen-
   sichtlich keinen OLGA-Manager, man muß nun nach einem OLE-Manager
   suchen. Dazu macht man - analog zu a) - ein appl_find("OLEMANGR").
d) Konnte auch dieses Programm nicht gefunden werden, wertet man nun
   noch die Environmentvariable OLEMANAGER wie unter b) aus.

Hat man einen Manager gefunden, schickt man ihm mit appl_write() fol-
gende Message:

OLE_INIT
(App -> Manager)
msg[0] $4950 (18768)
msg[1] apID
msg[2] 0
msg[3] Applikation ist Server (1), Client (2) oder beides (3)
msg[4] 0
msg[5] 0
msg[6] 0
msg[7] maschinenlesbarer XAcc-Programmtyp (oder 0):
                "WP" ($5750) = Textverarbeitung
                "DP" ($4450) = DTP
                "ED" ($4544) = Texteditor
                "DB" ($4442) = Datenbank
                "SS" ($5353) = Tabellenkalkulation
                "RG" ($5247) = Rastergrafikprogramm
                "VG" ($5647) = Vektorgrafikprogramm
                "GG" ($4747) = allgemeines Grafikprogramm
                "MU" ($4d55) = Musikanwendung
                "CD" ($4344) = CAD
                "DC" ($4443) = Datenkommunikation
                "DT" ($4454) = Desktop
                "PE" ($5045) = Programmierumgebung

Der OLGA-Manager verschickt als Bestätigung die OLGA_INIT-Message.
Applikationen sollten den OLGA-Mechanismus erst verwenden, nach-
dem sie folgende Message erhalten haben und diese keinen Fehler sig-
nalisiert hat. Für Applikationen, die während der Startphase Doku-
mente öffnen, kann es allerdings sinnvoll sein, auch ohne empfangene
OLGA_INIT-Message die nötigen OLGA-Messages zu verschicken, nur
sollten bei einer solchen Applikation keine Fehlfunktionen auftreten,
falls sich der Manager doch nicht meldet.

OLGA_INIT
(Manager -> App)
msg[0] $1236 (4662)
msg[1] manID
msg[2] 0
msg[3] reserviert
msg[4] reserviert
msg[5] 0
msg[6] 0
msg[7] 0=Fehler, sonst: OLGA-Manager korrekt initialisiert

Beim Programmende wird dem Manager folgende Message geschickt. Wenn
sich ein OLGA-Client abmeldet, werden automatisch alle zugehörigen
Links und Documents gelöscht.

Außerdem verschickt der Manager diese Nachricht an alle angemeldeten
Applikationen, wenn er vorzeitig beendet wird.

OLE_EXIT
(App -> Manager, Manager -> App)
msg[0] $4951 (18769)
msg[1] apID bzw. manID
msg[2] 0
msg[3] 0
msg[4] 0
msg[5] 0
msg[6] 0
msg[7] 0

Wenn ein Manager nachgestartet wird, verschickt er an alle erreich-
baren Applikationen folgende Message:

OLE_NEW
(Manager -> App)
msg[0] $4952 (18770)
msg[1] manID
msg[2] 0
msg[3] reserviert
msg[4] reserviert
msg[5] reserviert
msg[6] reserviert
msg[7] reserviert

Eine OLGA-fähige Applikation muß daraufhin manID als AES-ID des OLGA-
Managers übernehmen und diesem Manager eine OLE_INIT-Message senden.
Bei der Programmierung muß man beachten, daß OLE_NEW, OLE_INIT und
OLGA_INIT beliebig oft verschickt werden können, da sie auch zur
Aktualisierung der Manager- bzw. Applikationsdaten benutzt werden.

Hier geht es weiter.