Zurück |
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.