Februar 2003 Sprache CORBA Scripting: Binden für Reihe OMG IDL 3-15 3 3,10,1 Beispiele OMG IDL Betrachten Sie das folgende Beispiel, das einige Matrixvereinbarungen darstellt: ArrayLong für ein langes Reihe und ArrayPoint für einen Punkt Reihe. IDL-Reihen haben eine gesprungene Größe definiert an der Erklärung. Nur genannte Reihenarten werden von IDLscript, keine Schwergängigkeit gestützt für anonyme Reihen wird zur Verfügung gestellt. // diese Definition können innerhalb oder außerhalb eines IDL-Moduls oder -schnittstelle sich befinden typedef langes ArrayLong[10 ]; typedefpunkt ArrayPoint[10 ]; 3,10,2 Darstellung IDLscript In IDLscript wird Zugang zu einer IDL-Reihenart einfach erfolgt, indem man seine IDL-Reihe zur Verfügung stellt Bezeichner. Dieser Bezeichner kann durch seine Modul- oder Schnittstellenbereiche vorgesetzt werden, in denen er ist definiert. Die Auswertung einer Reihe zeigt die IDL-Definition dieser Artdefinition an. > > > ArrayLong < typedef long[10 ] ArrayLong Omg-idl; >, > > > a = ArrayPoint > > > a < typedef Point[10 ] ArrayPoint Omg-idl; >, Der vorhergehende Code stellt Zugang zum ArrayLong dar und ArrayPoint IDL-Reihe Arten. Während IDL-Reihenarten durch IDLscriptwerte dargestellt werden, können sie zugewiesen werden Variablen zum Verursachen der Namensabkürzungen, verglichen und als Argumente zu den Verfahren geführt. 3,10,3 ReihencWerte Die Kreation eines IDL-Reihenwertes wird durch die Benennendarstellung mit einer Liste von erzielt Werte. Wenn kein Wert zur Verfügung gestellt wird, initialisiert alle Reiheneinzelteile (rekursiv) zu ihrem Default-Werte. Wenn Werte zur Verfügung gestellt werden, muß t, das er von jedem Wert schreibt, an das Einzelteil sich anpassen Art der IDL-Reihe. Bei Bedarf zwingt der Interpret automatisch gegebene Werte zu angeforderten IDL-Werten. Außerdem überprüft der Interpret ob die Zahl gegebenen Werten ist der Größe der IDL-Reihenart gleich. > > > a = ArrayLong() > > > a ArrayLong(0,0,0,0,0,0,0,0,0,0) > > > a = ArrayLong(1,2,3,4,5) Ausnahme: < BadArraySize: Reihe muß 10 Einzelteile haben > Ordnen Sie "stdin" ein, zeichnen Sie 1 Zoll? > > > a = ArrayLong(1,2,3,4,5,6,7,8,9,10) > > > a ArrayLong(1,2,3,4,5,6,7,8,9,10) |