| |
1-32 C-Sprache, die August 1997 Abbildet 1 Adapter PortableServer_POA, CORBA_Identifier-op_name, PortableServer_ServantLocator_Cookie * Plätzchen ); extern PortableServer_ServantLocator_postinvoke( PortableServer_ObjectId * oid, Adapter PortableServer_POA, CORBA_Identifier-op_name, Plätzchen PortableServer_ServantLocator_Cookie, Bediensteter PortableServer_Servant ); 1,26,4 BedienstetcDiagramm Ein Bediensteter ist ein sprachspezifisches Wesen, das incarnate einen CORBA-Gegenstand kann. In C a Bediensteter besteht aus einer Datenstruktur, die den Zustand des Gegenstandes zusammen mit a hält Ansammlung Methodenfunktionen das manipulieren diesen Zustand, um das CORBA einzuführen Gegenstand. Das PortableServer::Servant schreiben Sie Diagramme in C, wie folgt: /*c*/ typedef leer * PortableServer_Servant; Bediensteter wird zu a abgebildet Lücke * anstatt ein Zeiger zu ServantBase damit alle Bedienstetarten für abgeleitete Schnittstellen können zu allen Betrieben geführt werden, die a nehmen Bediensteter Parameter, ohne Gußteil zu erfordern. Jedoch wird es daß ein Fall erwartet von PortableServer_Servant Punkte zu einem Fall von a PortableServer_ServantBase oder sein Äquivalent für abgeleitete Schnittstellen, wie unten beschrieben. Ein BediensteterIST mit einer Tabelle der Zeiger zu den Methodenfunktionen verbunden. Diese Tabelle wird benannt ein Eingangsvektor oder EPV. Das EPV hat den gleichen Namen wie die Bedienstetart mit __epv angefügt (merken Sie das doppelte Unterstreichen). Das EPV für PortableServer_Servant wird definiert, wie folgt: /*c*/ typedefstruct PortableServer_ServantBase__epv { Lücke * _ privat; Lücke (* finalize)(PortableServer_Servant, CORBA_Environment *); PortableServer_POA (* default_POA)( PortableServer_Servant, CORBA_Environment *); } PortableServer_ServantBase__epv; extern PortableServer_POA PortableServer_ServantBase__default_POA( PortableServer_Servant, CORBA_Environment * ); |  |
|
| |
|
|