| |
1-34 C-Sprache, die August 1997 Abbildet 1 Wie mit PortableServer_ServantBase ist der Name des zweiten Mitgliedes standardisiert zum vepv für Beweglichkeit. Das EPV, das für das Skelett erzeugt wird, ist eine interessantere Spitze. Für den Kostenzähler die Schnittstelle, die oben definiert wird, erscheint er, wie folgt: /*c*/ typedefstruct POA_Counter__epv { Lücke * _ privat; CORBA_Long (* add)(PortableServer_Servant Bediensteter, CORBA_Long val, CORBA_Environment * env); } POA_Counter__epv; Da alle Bediensteten effektiv von PortableServer_ServantBase abgeleitet werden der komplette Satz der Eingänge muß EPVs für beide mit einschließen PortableServer_ServantBase und für Kostenzähler selbst: /*c*/ typedefstruct POA_Counter__vepv { PortableServer_ServantBase__epv * _ base_epv; POA_Counter__epv * Counter_epv; } POA_Counter__vepv; Das erste Mitglied des POA_Counter__vepv struct ist ein Zeiger zu PortableServer_ServantBase EPV. Beweglichkeit der Initialisierung sicherstellen und Zugangkennziffer, dieses Mitglied wird immer _ base_epv genannt. Sie muß die erste immer sein Mitglied. Das zweite Mitglied ist ein Zeiger zu einem POA_Counter__epv . Die Zeiger zu EPVs in der VEPV-Struktur sind im diesem Auftrag die IDL-Schnittstellen erscheinen Sie in einem horizontalen von links nach rechts verlaufenden traversal der Erbschafthierarchie von am meisten-abgeleitete Schnittstelle. Die Unterseite dieser Hierarchie, insoweit Bedienstete, ist immer PortableServer_ServantBase . Z.B. betrachten Sie das folgende schwierige Schnittstellenhierarchie: // IDL schließen Sie A { }; an Schnittstelle B: A { }; Schnittstelle C: B { }; Schnittstelle D: B { }; Schnittstelle E: C, D { }; Schnittstelle F { }; Schnittstelle G: E, F { leeres foo(); }; Die VEPV-Struktur für Schnittstelle G wird erzeugt, wie folgt: /*c*/ typedefstruct POA_G__epv { Lücke * _ privat; Lücke (* foo)(PortableServer_Servant, CORBA_Environment *); |  |
|
| |
|
|