Issue 3674: Polymorphic Valuetypes and the DII (corba-rtf) Source: Humboldt-Universitaet (Mr. Martin von Loewis, loewis(at)informatik.hu-berlin.de) Nature: Uncategorized Issue Severity: Summary: Using the static invocation interfaces, it is possible to receive a valuetype that derives from the one declared in an operation, as long as a valuetype factory is known in the receiver (truncation is not the issue here). The same is not possible at the DII: When creating the request, the caller must indicate what type it expects, by forming a named value. Conceptually, the typecode in the named value should be the typecode of the base of all acceptable value types. However, if the ORB receives a derived type, it has no means of unmarshalling it - even if the application has knowledge about the derived type. What is missing is an interface to make typecodes of value types known to the ORB; with those, the ORB could then understand the CDR of the valuetype, and create a DynAny when asked to. Resolution: Revised Text: Actions taken: June 7, 2000: received issue April 11, 2012: Deferred Discussion: End of Annotations:===== Date: Wed, 7 Jun 2000 17:43:18 +0200 (MET DST) Message-Id: <200006071543.RAA15281@pandora.informatik.hu-berlin.de> X-Authentication-Warning: pandora.informatik.hu-berlin.de: loewis set sender to loewis@informatik.hu-berlin.de using -f From: Martin von Loewis To: orb_revision@omg.org, issues@omg.org Subject: Polymorphic Valuetypes and the DII User-Agent: SEMI/1.13.7 (Awazu) FLIM/1.13.2 (Kasanui) Emacs/20.6 (sparc-sun-solaris2.6) MULE/4.0 (HANANOEN) MIME-Version: 1.0 (generated by SEMI 1.13.7 - "Awazu") Content-Type: text/plain; charset=US-ASCII X-UIDL: !,5!!C^cd9V,cd9#\Ae9 Using the static invocation interfaces, it is possible to receive a valuetype that derives from the one declared in an operation, as long as a valuetype factory is known in the receiver (truncation is not the issue here). The same is not possible at the DII: When creating the request, the caller must indicate what type it expects, by forming a named value. Conceptually, the typecode in the named value should be the typecode of the base of all acceptable value types. However, if the ORB receives a derived type, it has no means of unmarshalling it - even if the application has knowledge about the derived type. What is missing is an interface to make typecodes of value types known to the ORB; with those, the ORB could then understand the CDR of the valuetype, and create a DynAny when asked to. Regards, Martin Sender: jbiggar@corvette.floorboard.com Message-ID: <393E95E4.310A1734@floorboard.com> Date: Wed, 07 Jun 2000 11:35:16 -0700 From: Jonathan Biggar X-Mailer: Mozilla 4.7 [en] (X11; U; SunOS 5.6 sun4u) X-Accept-Language: en MIME-Version: 1.0 To: Martin von Loewis CC: orb_revision@omg.org Subject: Re: Polymorphic Valuetypes and the DII References: <200006071543.RAA15281@pandora.informatik.hu-berlin.de> Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: S$g!!,pNe9_]V!!S2@!! Martin von Loewis wrote: > > Using the static invocation interfaces, it is possible to receive a > valuetype that derives from the one declared in an operation, as long > as a valuetype factory is known in the receiver (truncation is not the > issue here). > > The same is not possible at the DII: When creating the request, the > caller must indicate what type it expects, by forming a named value. > Conceptually, the typecode in the named value should be the typecode > of the base of all acceptable value types. However, if the ORB > receives a derived type, it has no means of unmarshalling it - even if > the application has knowledge about the derived type. > > What is missing is an interface to make typecodes of value types known > to the ORB; with those, the ORB could then understand the CDR of the > valuetype, and create a DynAny when asked to. This is tied up with the problems we are still debating on how valuetypes and DynAny interact semantically. I suspect when we figure out that problem, we will have the solutions to this as well. I've been meaning to find the time to develop a new screed that highlights the problem in detail, but I haven't been able to do that yet. Anyway, there actually is a mechanism for an ORB to find out the typecode of a valuetype, the GIOP context SendingContext including the RunTime interface. -- Jon Biggar Floorboard Software jon@floorboard.com jon@biggar.org