| |
2-26 PL-/icSprache, die Spezifikation, v1.0 Abbildet September 2002 2 , POS_SERVLOC_POSTINVOKE(PTR BYVALUE/* Gegenstand Identifikation */ BEGRENZTES, der EINTRAGUNG BYVALUE/* PortableServer POA */ CHAR(*) BYVALUE, /* CORBA IDENTIFIKATION */ ÖRTLICH FESTGELEGTES BIN(31) BYVALUE-,/* Länge von CORBA Identifikation */ PTR BYVALUE, /* Plätzchen */ PTR BYVALUE); /* Bediensteter */ /* Äquivalent zu PortableServer::ServantLocator::postinvoke() */ 2,13,3 PortableServer::Servant-Diagramm Ein Bediensteter ist ein sprachspezifisches Wesen, das incarnate einen CORBA-Gegenstand kann. In PL/I a Bediensteter besteht aus einer Datenstruktur, die den Zustand des Gegenstandes zusammen mit a hält Ansammlung Methodenverfahren, die diesen Zustand manipulieren, um einzuführen CORBA-Gegenstand. Das PortableServer::Servant schreiben Sie Diagramme in PL/I, wie folgt: definieren Sie pos_servant alias PTR; Mit einem BedienstetenIST eine Tabelle der Zeiger zu den Methodenverfahren verbunden. Diese Tabelle ist benannte einen Eingangsvektor oder EPV. Das EPV hat den gleichen Namen wie die Bedienstetart mit _ epv hinzugefügt. Das EPV für pos_servant wird definiert, wie folgt: pos_servantbase_epv des dcl 1 gegründet, ctl 3 PTR, 3 beenden begrenzte Eintragung, default_poa 3 begrenzte Eintragung; Die zwei begrenzten Eintragungsverfahren werden wie folgt definiert. FINALIZE(PTR BYADDR); /* Bediensteter */ // beenden Sie Definition DEFAULT_POA(PTR BYADDR, /* Bediensteter */ BEGRENZTES EINTRAGUNGS);/* Bewegliches POA */ // Definition der Rückstellung POA Das pos_servantbase_epv ' s- ctl Mitglied, das zu den Anwendungen undurchlässig ist, ist zur Verfügung gestellt, um ORB-Implementierungen Daten mit jedem ServantBase verbinden zu lassen EPV. Da es erwartet wird, daß EPVs unter mehreren Bediensteten geteilt wird, dieses Mitglied ist nicht für Probedienstetdaten verwendbar. Das zweite Mitglied ist ein Zeiger zu Vollendungverfahren für den Bediensteten, der hervorgerufen wird, wenn der Bedienstete ist etherealized. Die anderen Verfahrenszeiger entsprechen den üblichen Bedienstetbetrieben. Das tatsächliche pos_servantbase Struktur kombiniert ein EPV mit Probedienstetdaten, wie unten dargestellt: /* PEPV ist ein Zeiger zu EPV-*/ dclpos_servantbase_pepv PTR gegründet; pos_servantbase des dcl 1 gegründet, |  |
|
| |
|
|