| |
B-2 Hartnäckiger ZustandcService, v2.0 September 2002 B Gegenstandresolve(in CosNaming::NameComponent N) raises(CosNaming::NotFound, CosNaming::CannotProceed, CosNaming::InvalidName); leeres bind(in CosNaming::NameComponent n, im Gegenstandobj) raises(CosNaming::NotFound, CosNaming::CannotProceed, CosNaming::InvalidName, CosNaming::AlreadyBound); leeres rebind(in CosNaming::NameComponent n, im Gegenstandobj) raises(CosNaming::NotFound, CosNaming::CannotProceed, CosNaming::InvalidName); leeres unbind(in CosNaming::NameComponent n, im Gegenstandobj) raises(CosNaming::NotFound, CosNaming::CannotProceed, CosNaming::InvalidName); Boolesches is_empty(); CosNaming::BindingIterator-create_iterator(); }; abstraktes storagehome NamingContextStateHome von NamingContextState { Fabrikcreate(); }; B.1.2 Einführen Der Bediensteter NamingContext Die Implementierung eines nennenkontextbediensteten ist ziemlich einfach: die meisten Betriebe einfach "packen Sie" einen Namen aus, indem Sie Beschluß benennen, um seine Länge bis eine zu verringern. Wenn Namenslänge ist eine, die Implementierungsdelegierten die reale Arbeit zu seinem Speichergegenstand. Die Verbindung herstellen, die Kontextgegenstand nennt -- Speichergegenstand, beschließen wir zu verwenden das Speichergegenstandkurzschlußpid als die nennendes kontextGegenstandkennzeichnung gegenstandes. Weiter für Einfachheit (und scalability), verwenden wir einen einzelnen Bediensteten, um alle Anträge zu anzufassen Gegenstände NamingContext. In diesem ersten Schnitt benutzen wir den gleichen Speicherhauptfall (und folglich Katalog) um zugänglich zu machen alle Speichergegenstände. // POA-gründete Javabedienstetkategorie allgemeine Kategorie NamingContextImpl verlängert POA_NamingContext { // Felder privates m_home NamingContextStateHome; privates POA-m_poa; // Helfermethoden My_state() NamingContextState { Rückkehr (NamingContextState) my_home().find_by_short_pid(_object_id()); } |  |
|
| |
|
|