gif gif up gif contents
Nächste Seite: 6.1.3 Beurteilung der Schnittstelle Vorige Seite: 6.1.1 Kommunikationsschnittstelle

6.1.2 Programmierschnittstelle

Die Programmierschnittstelle von ConceptBase ist eine Bibliothek von C-Funktionen, die die Methoden des Servers in einem Anwendungsprogramm zur Verfügung stellen. Der Anwendungsprogrammierer braucht sich daher nicht um die oben beschriebene Kommunikationsschnittstelle und um die Syntax der IPC-Nachrichten zu kümmern.

Der Verbindungsaufbau zu einem ConceptBase-Server ist für den Anwendungsprogrammierer deshalb nur ein Funktionsaufruf. Bei den Methoden zum Eintragen und Löschen von Objekten (TELL/UNTELL) müssen die Objekte jedoch in der Sprache O-Telos angegeben werden. Ähnliches gilt für Anfragen an die Objektbank: die Antwort ist entweder eine Liste von Objektnamen, eine Liste von O-Telos-Frames oder hat ein applikationsspezifisches Format wie z.B. für den ConceptBase GraphBrowser. In jedem Fall ist die Antwort aber zunächst nur eine Zeichenkette, die mit Hilfe eines Parsers analysiert werden muß.

  Die C-Funktion print_classes ist ein Beispiel für die Verwendung der Programmierschnittstelle. Sie trägt eine Klasse Employee in die Objektbank ein, und stellt dann eine Anfrage nach allen Klassen.
void print_classes() {
    Completion comp;
    Server *gserver;
    char*  ans;

    connect_CB_server(4711,"turner","ExampleClient","quix",&gserver);

    if(gserver) {
        comp=tell( gserver,"Employee in Class end");
        ans=ask_objnames("find_instances[Class/objname]","LABEL","Now");
    
        printf("Die Instanzen von Class sind: %s\n",ans);
    }
}
Zuerst wird mit der Funktion connect_CB_server eine Verbindung zu einem ConceptBase-Server auf dem Rechner turner aufgebaut, der die Port-Nummer 4711 benutzt. Falls der Verbindung erfolgreich hergestellt werden konnte, wird mit tell das Objekt eingetragen und mit ask_objnames die Anfrage gestellt. Das Antwortformat ist hier als LABEL angegeben, das entspricht einer durch Kommata getrennte Liste von Objektnamen.

Eine Antwort in Form von O-Telos-Frames kann der Anwendungsprogrammierer mit dem Telos-Parser in C-Strukturen umwandeln. Die Strukturen sind allerdings nicht anwendungsspezifisch, d.h. alle Objekte werden unabhängig von ihrem Typ auf die gleiche Struktur in C abgebildet.



Christoph Quix
31. Juli 1996