| |
Oktober 2001 Abbildender Ada, v1.2: Diagramm für irgendeine Art 3-13 3 Das erste Einzelteil umfaßt den meisten normalen Verbrauch von irgendwie schreiben Sie, die Umwandlung von geschrieben Werte in und aus irgendein heraus . Das zweite Einzelteil umfaßt Situationen wie die Mit.einbeziehen der Aufnahme eines Antrags oder der Antwort, die irgendein enthalten diese Einflußdaten von a schreiben Sie Unbekanntes zum Empfänger, als es mit einem Ada-Compiler verursacht wurde. Das folgende spezifiziert einen Satz Ada-Service, der beide dieser Fälle sein läßt angefaßt in einer Artsafeweise. 3,15,1 Behandlung Der Bekannten Arten Für jede eindeutige Art T in einer IDL-Spezifikation vorbestimmt oder IDL-definiert, anpassende Implementierungen sind zum Erzeugen von Funktionen, um einzusetzen fähig und extrahieren Sie Werte dieser Art nach und von Art irgendwie . Die Form dieser Funktionen ist: Funktion From_Any(Item: in irgendwelchen) Rückhol t Funktion To_Any(Item: in T Rückkehr irgendwie; Ein Versuch, From_Any durchzuführen auf irgendeinem bewerten Sie, dem nicht einen Wert von enthält schreiben Sie T ergibt das Anheben von CORBA.Bad_Typecode. Zusätzlich wird die folgende Funktion im Paket CORBA definiert Funktion Get_Type(The_Any: in irgendwelchen) RückholTypeCode.Ref; Diese Funktion erlaubt die Entdeckung der Art von irgendwie . 3,15,2 Behandlung Der Unbekannten Arten Bestimmte Anwendungen können und möchten Gegenstände der Art irgendwelche anfassen empfangen das enthalten Werte einer Art, die nicht an bekannt ist, Kompilierzeit und so für die ein zusammenpassendes TypeCode Konstante ist nicht vorhanden. Der Service TypeCode erlaubt die Aufspaltung von irgendwelchen TypeCode zu einem Punkt, in dem alle Bestandteile einer Art von vorbestimmt sind (und folglich bekannte) Art. um den Wert zu extrahieren verband mit jedem Bestandteil dieser Brut von irgendwelchen stellen anpassende Implementierungen ein iterator zur Verfügung CORBA.Iterate_Over_Any_Elements definiert, wie folgt: generisch mit Verfahren Process(The_Any: in irgendwelchen; Fahren Sie fort: aus Booleschem); Verfahren CORBA.Iterate_Over_Any_Elements(In_Any: in irgendwelchen); Eine anpassende Implementierung von Iterate_Over_Any_Elements sollen Sie wiederholend benennen Sie Prozeß für jeden Bestandteil von In_Any . Das The_Any Argument zum Prozeß enthält das TypeCode und das value(s) des Bestandteils des In_Any . Jeder Bestandteil kann selbst Mittel sein und kann von vorher unbekannter Art sein; folglich die Art des Teil The_Any ist ein anderes irgendein . Durch das rekursive Gebrauch des iterator, der Eingang In_Any kann zum Punkt zerlegt werden, der alle |  |
|
| |
|
|