home *** CD-ROM | disk | FTP | other *** search
/ ST-Computer Leser 1998 October / STC_CD_10_1998.iso / SYSTEM / OLGA13 / OLGALIB / OLGA.TXT < prev   
Text File  |  1998-09-26  |  4KB  |  85 lines

  1. Thomas Künneth
  2. Friedrich-Neuper-Str. 2b
  3. 90552 Röthenbach
  4.  
  5.  
  6. Zunächst: Wenn ich von der OLGA-Lib spreche so ist nur die Pure C - Library
  7. inkl. Headerdatei gemeint; der Manager und das dem Konzept zugrunde liegende
  8. Protokoll entstammen der Feder von Thomas Much @ KA2
  9.  
  10. OLGA-Lib ist Freeware und darf ohne weitere Kosten in eigenen Programmen
  11. eingesetzt werden; die kostenlose Weitergabe ist für Privatpersonen erlaubt
  12. und erwünscht; das Packen auf CD-ROMS oder Übernehmen in PD-Serien bedarf
  13. meiner ausdrücklichen schriftlichen Genehmigung
  14. Ausdrücklich gestattet ist es Thomas Much das Archiv OLGA_LIB in die Gesamt-
  15. distribution "OLGA" aufzunehmen
  16. Für Schäden welcher Art auch immer die durch die direkte oder indirekte
  17. Nutzung dieses Paketes entstehen übernehme ich keinerlei haftung; die ver-
  18. wendung geschieht auf eigene Gefahr
  19.  
  20. -----------
  21.  
  22. Der zweifellos wichtigste Bestandteil dieses Pakets ist die Headerdatei
  23. OLGA.H die die für die Verwendung des Protokolls nötigen Konstanten bzw.
  24. Makros bereitstellt. Darüberhinaus sind im Laufe der Zeit nützliche Funktionen
  25. entstanden, die die Handhabung des Protokolls vereinfachen oder (IMHO) andere
  26. clevere Dinge tun... :-)
  27.  
  28. Die mit olga_... beginnenden Funktionen erlauben nur eine etwas verein-
  29. fachte Handhabung des OLGA-Managers. Wichtig: die diesen Funktionen über-
  30. gebenen Zeiger müssen von anderen Prozessen aus erreichbar sein; des-
  31. halb gibt es die Funktion global_strcpy, die einen String inkl. 0-Byte
  32. in einen von der Funktion allozierten globalen Speicherbereich kopiert.
  33. Dieser Speicher kann später mit Gemdos-Mfree freigegeben werden.
  34. olga_init sucht den Manager im System; wurde er nicht gefunden wird ggf.
  35. die Environmentvariable OLGAMANAGER ausgewertet. Sie sollte den kom-
  36. pletten Pfadnamen des Managers enthalten. In diesem Fall veranla₧t die
  37. Lib die Shell dieses Programm zu starten (via AV_STARTPROG). Eine andere
  38. Möglichkeit ist es, OLGAMANAGER den Namen einer bereits laufenden Anwendung
  39. zuzuweisen. Dies wäre dann die richtige Wahl wenn eine Shell das OLGA-Proto-
  40. koll unterstützt.
  41. Die Funktion get_avserver_id wertet die Environmentvariable AVSERVER aus und
  42. versucht den angegebenen Proze₧ mit appl_find zu orten.
  43. Wird AVSERVER nicht gefunden wird nach "GEMINI  " gesucht.
  44. Die Funktion xappl_find() ist nichts weiter als ein appl_find, wobei aber
  45. auf die Länge des Namens geachtet und der String in Gro₧buchstaben
  46. gewandelt wird; wird ein kompletter Pfadname übergeben wird der Dateiname
  47. herausgefiltert und auf ihn ein appl_find gemacht.
  48. run_appl() veranla₧t einen AV-Server, das angegebene Programm zu starten
  49. und ihm die Kommandozeile zu übergeben. run_appl() sorgt selbst für das
  50. Allozieren des globalen Speichers für die beiden Strings, der beim nächsten
  51. Aufruf wieder freigegeben wird. Unabhängig davon wie die
  52. Kommandozeile aufgebaut ist mu₧ sie mit einem 0-Byte abschlie₧en. Vor dem
  53. Aufruf wird getestet ob die Anwendung schon im Speicher war. Ist dem so,
  54. wird die Kommandozeile via VA_START übergeben. Dies klappt auch, wenn kein
  55. AV-Server im System installiert wurde. Wurde kein AV-Server gefunden startet
  56. die Lib die Anwendung selbst, hierzu wird nach dem MagX-Cookie gesucht und
  57. ggf. die entsprechende Aufrufvariante verwendet. Wird kein passender Cookie
  58. gefunden verwendet die Lib die MTOS-Konvention, wenn die AES-Version >= 0x400
  59. ist. ACHTUNG: eine andere Lib mu₧ eine Funktion GetCookie() mit der üblichen
  60. Syntax bereitstellen.
  61.  
  62. sc_changed macht ab AES 4 einen Broadcast mit den der Nachricht SC_CHANGED
  63. entsprechenden Parametern
  64.  
  65. Die Funktion olga_start erwartet unterschiedliche Parameter:
  66. Mögliche Aufrufformen sind - abhängig von olga_ols - :
  67. OLS_TYPE:       void olga_start(char *cmdlin,int olga_ols,int xacc_typ)
  68. OLS_EXTENSION:  void olga_start(char *cmdlin,int olga_ols,long extension)
  69. OLS_NAME:       void olga_start(char *cmdlin,int olga_ols,char *filename)
  70.  
  71. Wichtig: olga_init liefert keine Proze₧ ID. Diese soll dem Message-Buffer
  72. entnommen werden wenn die Meldung OLGA_INIT eintrifft.
  73.  
  74. Die Lib verwendet einige Funktionen aus den Standard-Libraries, die deshalb
  75. mit eingebunden werden müssen. In einem anderen Modul mu₧ _GemParBlk und
  76. MiNTInstalled (ein Integer der einen Wert ungleich 0 hat wenn MiNT läuft)
  77. definiert werden.
  78.  
  79. Ich hoffe diese Mini-Lib ist ein paar Leuten von Nutzen.
  80.  
  81. Vorschläge, Meinungen und Kritiken bitte an:
  82. Thomas Künneth @ N (MausNet)
  83. oder
  84. tskuenne@linguistik.uni-erlangen.de
  85.