Issue 636: Inconsistency in CORBA 2.0 C mapping (c_mapping-rtf) Source: (, ) Nature: Uncategorized Severity: Summary: Summary: I currently implement a subset of CORBA 2.0. Not CORBA-compliant in terms of C-mapping for arguments to pseudo-objects and real objects. Give clear statement on argument order for real objects Resolution: Revised Text: Actions taken: July 29, 1997: received issue Discussion: End of Annotations:===== Return-Path: Sender: pangburn@fnal.gov Date: Tue, 29 Jul 1997 12:12:20 -0500 From: Jim Pangburn Organization: Fermi National Accelerator Lab To: issues@omg.org Subject: Inconsistency in CORBA 2.0 C mapping I have already implemented a freeware CORBA ORB in C, with wrappers for C++ and Java. I currently implement a subset of CORBA 2.0, and people seem happy with it. However, I worry that even this subset is not CORBA-compliant in terms of the C mapping for arguments to pseudo-objects and real objects. There is no way for me to tell from the document, because I believe it is not consistent. For example, in 14.15 ("Implicit Arguments to Operations"), it says: From the point of view of the C programmer, all operations ... have addition *leading* parameters *preceding* the operation-specific parameters: It then enumerates the CORBA_Object, (CORBA_Environment *), and CORBA_Context arguments. From the statement above, these should all come BEFORE any operation-specific arguments. However, in the description for (CORBA_Environment *), it says: The last parameter to each operation is a (CORBA_Environment *) output parameter ... and for CORBA_Context: If an operation ... has a context specification, then a CORBA_Context input parameter *precedes* the (CORBA_Environment *) parameter and *follows* any operation-specific arguments. So does the (CORBA_Environment *) go last (that is, following any operation-specific arguments) or not? I have assumed it does, because it was the last statement I read. The remainder of the chapter contains several examples of real and pseudo-objects, some of which go one way (i.e. foo_bar), and some of which go the other (i.e. example4_op5). Could you please give me a clear statement on argument order for real objects? And it would be really nice to just have a concrete declaration of the entire C mapping for pseudo-objects in the form of full ANSI prototypes... Thanks very much, Jim Pangburn -- ------------------------------------------------------------------------ Jim Pangburn | "Any opinions expressed herein are in no Fermi Nat'l Accelerator Lab | way intended to represent those of the P.O. Box 500 / MS 318 | United States government, or any of its Batavia, IL 60510 (USA) | agencies, affiliates, or contractors." (630) 840-2207 FAX: -6315 | NO SOLICITORS! ------------------------------------------------------------------------