| |
1-38 C-Sprache, die August 1997 Abbildet 1 Counter_epv POA_Counter__epv = { NULL, /* ignorieren Sie * der privaten Daten ORB,/ app_servant_add /* zeigen Sie auf unser addieren Funktions*/ }; /* Vektor von * EPVs,/ Counter_vepv POA_Counter__vepv = { &base_epv, &counter_epv }; }; AppServant my_servant = { /* initialisieren Sie * POA_Counter,/ { NULL, /* ignorieren Sie * der privaten Daten ORB,/ &counter_vepv /* Gegenvektor von * EPVs,/ }, 0 /* initialisieren Sie Gegenwert*/ }; Bevor sie diesen Bediensteten registriert oder aktiviert, benennt die Anwendung: /*c*/ CORBA_Environment-env; POA_Counter__init(&my_servant, &env); Wenn die Anwendung eine spezielle Zerstörungsfunktion für my_servant erfordert stellt sie ein der Wert des PortableServer_ServantBase__epv beenden Sie Mitglied irgendein vor oder nach dem Benennen von POA_Counter__init() /*c*/ my_servant.epv._base_epv.finalize = my_finalizer_func; Merken Sie das, wenn die Anwendung statisch das beendenmitglied initialisierte, bevor sie benannte die Bedienstetinitialisierungsfunktion, ausdrückliche Anweisung zum beendenmitglied wie gezeigt hier nicht notwendig, seit dem PortableServer_ServantBase __init() Funktion ändert es nicht, wenn sie Nichtnull ist. Das Beispiel, das oben gezeigt wird, veranschaulicht statische Initialisierung des EPV und des VEPV Strukturen. Wenn beweglich, hängt diese Methode der Initialisierung von der Einrichtung von ab VEPV-structmitglieder für niedrige Schnittstellen wenn die horizontale von links nach rechts verlaufende Einrichtung von der Schnittstellenerbschaft wird die Hierarchie, der Auftrag dieser Felder ist auch geändert geändert. Eine weniger zerbrechliche Weise der Initialisierung dieser Felder soll die Initialisierung an durchführen Laufzeit, beruhend auf Anweisung zu den genannten structfeldern. Seit den Namen der Felder werden in dieser Annäherung, es bricht nicht verwendet, wenn der Auftrag der niedrigen Schnittstellen ändert. Das Durchführen von Feldinitialisierung innerhalb einer Bedienstetinitialisierungsfunktion liefert auch a der bequeme Platz zum Hervorrufen der Bedienstetinitialisierung arbeitet. In irgendeinem Fall beide Annäherungen sind beweglich und er ist schließlich bis zum Entwickler zum Wählen das das ist für jede Anwendung am besten. |  |
|
| |
|
|