Issue 16004: Abstract interface spec is missing (rclm-rtf) Source: Remedy IT (Mr. Martin Corino, mcorino(at)remedy.nl) Nature: Enhancement Severity: Significant Summary: Abstract interface spec is missing. Should be added. Resolution: Add the text as below to the specification Revised Text: 7.21 Mapping for Abstract Interfaces The Ruby mapping for abstract interfaces is identical to that of regular interfaces except for the following: Ruby modules generated for abstract interfaces get the repository id of the CORBA::AbstractInterface interface added to the list of supported interfaces The typecode for the generated Ruby type is an AbstractInterface typecode instead of an ObjectRef typecode 7.21.1 Argument passing and return values On the client side valuetype instances supporting an abstract interface and object references supporting the same abstract interface are interchangeable as in arguments to any IDL declared interface operation (or attribute modifier) specifying that abstract interface as argument type. Out arguments and return values will be returned as either valuetype instances or object references according to the type of the object provided on the opposite side. For server side mappings the reverse applies. For example: // IDL abstract interface Base { ... }; interface Ops : Base { ... }; valuetype Node : supports Base { … }; interface Foo { void pass_base(in Base b) Base get_base (); }; could be implemented in Ruby as # Ruby module Base ... end module Ops … end class Node ... end module Foo … def pass_base(b) ... end def get_base() … end ... end … # 'my_node' is Node valuetype instance # 'my_ops' is object reference narrowed to Ops my_foo = Foo._narrow(an_object_ref) if must_pass_object == true my_foo.pass_base(my_ops) else my_foo.pass_base(my_node) end … retval = my_foo.get_base() unless retval.nil? || retval.is_a?(CORBA::ValueBase) # handle valuetype … else # handle object reference … end Actions taken: February 2, 2011: received issue January 11, 2012: closed issue Discussion: End of Annotations:===== m: webmaster@omg.org Date: 02 Feb 2011 09:48:41 -0500 To: Subject: Issue/Bug Report ******************************************************************************* Name: Martin Corino Employer: Remedy IT mailFrom: mcorino@remedy.nl Terms_Agreement: I agree Specification: RCLM Section: 7.21 FormalNumber: 2010-03-02 Version: 1 Doc_Year: 2010 Doc_Month: March Doc_Day: 01 Page: 23 Title: Abstract interface spec is missing Nature: Enhancement Severity: Significant CODE: 3TMw8 B1: Report Issue Description: Abstract interface spec is missing. Should be added.