| |
C-Sprache, die das Diagramm für Gegenstandimplementierungen Aug. 1997 abbildet 1-33 1 Das PortableServer_ServantBase__epv _ privates Mitglied, das undurchlässig ist zu den Anwendungen wird zur Verfügung gestellt, um ORB-Implementierungen Daten mit jedem verbinden zu lassen ServantBase EPV. Da es erwartet wird, daß EPVs unter Mehrfachverbindungsstelle geteilt wird Bedienstete, dieses Mitglied ist nicht für Probedienstetdaten verwendbar. Das zweite Mitglied ist a Zeiger zur Vollendungfunktion für den Bediensteten, der hervorgerufen wird, wenn der Bedienstete ist etherealized. Die anderen Funktionszeiger entsprechen dem üblichen Bediensteten Betriebe. Das tatsächliche PortableServer_ServantBase Struktur kombiniert ein EPV mit pro Bedienstetdaten, wie unten gezeigt: /*c*/ typedef PortableServer_ServantBase__epv * PortableServer_ServantBase__vepv; typedefstruct PortableServer_ServantBase { Lücke * _ privat; PortableServer_ServantBase__vepv * vepv; } PortableServer_ServantBase; Das erste Mitglied ist eine Lücke * das zeigt auf Datenbesonderen auf jede ORB-Implementierung. Dieses Mitglied, das ORB-Implementierungen Probedienstetdaten führen läßt, ist undurchlässig zu den Anwendungen. Das zweite Mitglied ist ein Zeiger zu einem Zeiger zu a PortableServer_ServantBase__epv . Der Grund für das doppelte Niveau von Umweg ist, daß Bedienstete für abgeleitete Kategorien mehrfache EPV-Zeiger enthalten, einer für jede niedrige Schnittstelle sowie eine für die Schnittstelle selbst. (dieses wird weiter innen erklärt das nextsection.) Der Name des zweiten Mitgliedes, vepv, wird standardisiert, um zu gewähren beweglicher Zugang durch ihn. 1,26,5 SchnittstellencSkelette Alle c-Skelette für IDL-Schnittstellen haben im Wesentlichen die gleiche Struktur wie ServantBase, mit der Ausnahme daß hat das zweite Mitglied eine Art, die Zugang zu allem EPVs erlaubt für den Bediensteten einschließlich deren für niedrige Schnittstellen sowie für am meisten-abgeleitet Schnittstelle. Z.B. betrachten Sie die folgende IDL-Schnittstelle: // IDL Schnittstelle Gegen { langes add(in lang val); }; Das Bedienstetskelett, das durch den IDL-Compiler für diese Schnittstelle erzeugt wird, erscheint wie folgt (die Art des zweiten Mitgliedes wird weiter unten) definiert: /*c*/ typedefstruct POA_Counter { Lücke * _ privat; POA_Counter__vepv * vepv; } POA_Counter; |  |
|
| |
|
|