Zurück

Interface Description Language - IDL

Allgemeines
Die IDL (Interface Description Language) stellt Mittel zu Beschreibung von Schnittstellen zu verfügung. Dabei ist der entstehende Code nicht direkt durch die Programmiersprachen zu übersetzten. Es müssen diese Konstrukte zunächst umgesetzt werden in die entsprechende Sprache. Derzeit ist es möglich diesen Code in die folgenden Sprachen zu überstzten: C,C++,Java,Smalltalk,ADA. Dabei wird derzeit C++ am häufigsten verwendet. Um einen IDL Code in eine spezielle Sprache zu übertragen, ist es nötig diesen Code zu übersetzen. Dies geschiet mittels der sog. Language Mapping

Die Sprache
Die von der IDL verwendete Sprache ist C++ sehr ähnlich. Nicht nur die Notation ist vergleichbar, sondern auch die zu verwendenden Schlüsselwörter. Dennoch verleiten derartige Ähnlichkeiten auch zu Fehlern. Hier zunächst einen Überblick über die reservierten Schlüsselwörter:
any default inout out switch
attribute double interface raises TRUE
boolean enum long readonly typedef
case exception module sequence unsigned
char FALSE Object short union
const float octet string void
context in oneway struct

C++ und IDL Gleichheiten

Unterschiede zu C++

Ein kleines Beispiel
//Dies ist das erste einfache Interface in IDL
interface foo {
   void print(in string msg) ;
};

Hier wurde ein Interface Deklariert names foo. Dort exitiert eine Prozedur print. Print erwartet einen Parameter vom Typ String. Dieser Parameter ist ein Eingangsparameter.

Ein 2. Beispiel
//Dies ist das zweite einfache Interface in IDL
interface foo {
   oneway void print(in string msg) ;
   attribute short var1;
   readonly attribute long var2;
};

Das oben beschriebene Beispiel wurde ergänzt. Die Prozedur print liefert nun keine Erfolgsmeldung mehr an den Client zurück. Weiterhin wurden 2 Variablen definiert. Die eine von Type short, die andere vom Typ long. Var2 kann nur gelesen werden. Der Bezeichner Attribute kennzeichnet Variablen nicht nur. Er kapselt diese. Der Zugriff auf die Variablen ist nur über dafür vorgesehene Methoden gestattet. Der Zusatz readonly verhindet, dass die Methode zum schreiben der Variablen erzeugt wird. Dadurch ist der Zugriff beschränkt.