| Implementation hierarchies in the IOR code |
| |
| Utility classes: |
| impl.ior.ByteBuffer class used to speed up computation of the adapter id |
| impl.ior.EncapsulationUtility misc. utilities for dealing with CDR encapsulation |
| impl.ior.FreezableList special list class that can change from mutable to immutable (one way only) |
| impl.ior.MinorCodes minor codes for all IOR errors |
| impl.ior.ORTImpl wrapper around IORTemplate for ORT |
| spi.ior.IORFactories factory for all basic IOR types |
| spi.ior.IIOP.???Factories factory for IIOP IOR factory types (IIOPProfile, IIOPProfileTemplate, |
| and all of the supported IIOP tagged component factories) |
| This needs to provide access to all of the IdentifiableFactory instances |
| we need for registration. It also needs to provide factory methods for |
| creating all of these types. |
| impl.ior.iiop.TaggedComponentFactories needs to be absorbed here. |
| |
| |
| Support for non-registered (unknown) TaggedComponent and TaggedProfile instances |
| impl.ior.GenericIdEncapsulation |
| impl.ior.GenericTaggedComponent |
| impl.ior.GenericTaggedProfile |
| |
| Basic common representation for writing, getting ids, inherited lists: |
| spi.ior.IdentifiableContainerBase |
| spi.ior.Writeable |
| spi.ior.Identifiable |
| spi.ior.IdentifiableBase |
| |
| Some basic IOR types and their implementation: |
| spi.ior.IOR |
| impl.ior.IORImpl |
| |
| spi.ior.IORTemplate |
| impl.ior.IORTemplateImpl |
| |
| spi.ior.IdentifiableFactory (the basic factory type, which is never created in the spi.ior package. |
| All instances of this factory are necessarily protocol dependent, for example IIOP in the |
| spi.ior.iiop package). |
| spi.ior.IdentifiableFactoryFinder |
| impl.ior.IdentifiableFactoryFinderBase |
| impl.ior.TaggedComponentFactoryFinderImpl |
| impl.ior.TaggedProfileFactoryFinderImpl |
| |
| spi.ior.ObjectAdapterId |
| impl.ior.ObjectAdapterIdBase |
| impl.ior.ObjectAdapterIdArray |
| impl.ior.ObjectAdapterIdNumber |
| |
| spi.ior.ObjectId |
| impl.ior.ObjectIdImpl |
| |
| spi.ior.ObjectKey |
| impl.ior.ObjectKeyImpl |
| |
| The ObjectKeyTemplate family, which needs some work for pluggability yet: |
| impl.ior.ObjectKeyFactory |
| impl.ior.ObjectKeyTemplateFactory : should this be in the SPI? |
| spi.ior.ObjectKeyTemplate |
| impl.ior.WireObjectKeyTemplate |
| impl.ior.ObjectKeyTemplateBase |
| impl.ior.OldObjectKeyTemplateBase |
| impl.ior.OldJIDLObjectKeyTemplate |
| impl.ior.OldPOAObjectKeyTemplate |
| impl.ior.NewObjectKeyTemplateBase |
| impl.ior.JIDLObjectKeyTemplate |
| impl.ior.POAObjectKeyTemplate |
| |
| IIOP types and their implementations: |
| spi.ior.TaggedComponent |
| spi.ior.TaggedComponentBase |
| impl.ior.iiop.AlternateIIOPAddressComponent |
| impl.ior.iiop.CodeSetsComponent |
| impl.ior.iiop.JavaCodebaseComponent |
| impl.ior.iiop.MaxStreamFormatVersionComponent |
| impl.ior.iiop.ORBTypeComponent |
| impl.ior.iiop.PoliciesComponent |
| |
| spi.ior.TaggedProfile |
| spi.ior.iiop.IIOPProfile |
| impl.ior.iiop.IIOPProfileImpl |
| |
| spi.ior.TaggedProfileTemplate |
| spi.ior.iiop.IIOPProfileTemplate |
| impl.ior.iiop.IIOPProfileTemplateImpl |
| |
| spi.ior.iiop.IIOPAddress |
| impl.ior.iiop.IIOPAddressBase |
| impl.ior.iiop.IIOPAddressFutureImpl |
| impl.ior.iiop.IIOPAddressImpl |
| |
| Issues: |
| |
| 1. GIOPVersion.chooseRequestVersion( ORB, IOR ) is not well-defined: it should be |
| (ORB, IIOPProfile). |
| Call sites: |
| Connection.locate: not used |
| Called from GIOPImpl.locate: not used |
| CorbaContactInfoImpl.createMessageMediator |
| This needs a version that looks only at a single profile. |
| |
| 2. MessageBase.createRequest takes an IOR instead of an IIOPProfile. |
| |
| 3. CDRInputStream_1_0.read_Object( Class ) calls IOR.getCodebase() in |
| a call to Utility.loadStubClass, which is |
| only defined on a profile. What do we do here? |
| Similar problem in same class internalIORToObject, which call IOR.getServant |
| and IOR.getCodebase. IOR.getCodeBase is called in loadStub. |