Issue 3706: Mapping of CORBA.Request in Ada (ada-rtf) Source: (, ) Nature: Revision Severity: Significant Summary: Modification of the IDL specification of the CORBA.Object package in order to include another way of creating Requests. Addition of two new interfaces : ExceptionList and ContextList. Modification of the CORBA.Request package to allow the user to set the result type. Description: The mapping of the IDL specification of the CORBA.Object package in Ada provides a single way of creating requests through the create_request procedure. This procedure does not take into account the context nor the exception possibly returned by the method invoked. Therefore I suggest to add a new create_request procedure whose Ada specification is : procedure Create_Request (Self : in CORBA.AbstractBase.Ref; Ctx : in CORBA.Context.Ref; Operation : in Identifier; Arg_List : in CORBA.NVList.Ref; Result : in out NamedValue; Exc_List : in ExceptionList; Ctxt_List : in ContextList; Request : out CORBA.Request.Object; Req_Flags : in Flags); The specification of the types ExceptionList and ContextList are mapped from the following pseudo Idl : interface ExceptionList { readonly attribute unsigned long count; void add(in TypeCode exc); TypeCode item(in unsigned long index) raises(Bounds); void remove(in unsigned long index) raises(Bounds); }; pseudo interface ContextList { readonly attribute unsigned long count; void add(in string ctxt); string item(in unsigned long index) raises(Bounds); void remove(in unsigned long index) raises(Bounds); }; In addition, a method is missing in the package CORBA.Request to allow the user to set the result type if he passed a null NamedValue at creation of the request. I suggest to add the following method in CORBA.Request : package CORBA.request { procedure Set_Return_Type (CORBA.TypeCode.Object Tc); }; Resolution: Revised Text: Actions taken: June 13, 2000: received issue Discussion: End of Annotations:===== Date: Tue, 13 Jun 2000 18:42:42 +0200 From: Sebastien Ponce To: issues@omg.org Subject: Mapping of CORBA.Request in Ada Message-ID: <20000613184242.E230@fourmi> Reply-To: Sebastien Ponce Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Mailer: Balsa 0.6.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=ISO-8859-1 X-UIDL: "+)!!Cn#!!:U3!!hV5!! Specification: Ada Language Mapping Specification, v1.2 Formal: formal/99-07-29 Nature: Revision Severity: Significant Summary: Modification of the IDL specification of the CORBA.Object package in order to include another way of creating Requests. Addition of two new interfaces : ExceptionList and ContextList. Modification of the CORBA.Request package to allow the user to set the result type. Description: The mapping of the IDL specification of the CORBA.Object package in Ada provides a single way of creating requests through the create_request procedure. This procedure does not take into account the context nor the exception possibly returned by the method invoked. Therefore I suggest to add a new create_request procedure whose Ada specification is : procedure Create_Request (Self : in CORBA.AbstractBase.Ref; Ctx : in CORBA.Context.Ref; Operation : in Identifier; Arg_List : in CORBA.NVList.Ref; Result : in out NamedValue; Exc_List : in ExceptionList; Ctxt_List : in ContextList; Request : out CORBA.Request.Object; Req_Flags : in Flags); The specification of the types ExceptionList and ContextList are mapped from the following pseudo Idl : interface ExceptionList { readonly attribute unsigned long count; void add(in TypeCode exc); TypeCode item(in unsigned long index) raises(Bounds); void remove(in unsigned long index) raises(Bounds); }; pseudo interface ContextList { readonly attribute unsigned long count; void add(in string ctxt); string item(in unsigned long index) raises(Bounds); void remove(in unsigned long index) raises(Bounds); }; In addition, a method is missing in the package CORBA.Request to allow the user to set the result type if he passed a null NamedValue at creation of the request. I suggest to add the following method in CORBA.Request : package CORBA.request { procedure Set_Return_Type (CORBA.TypeCode.Object Tc); }; The AdaBroker team