Issue 4502: Alignment with CORBA 2.4.2 (idlscript-ftf) Source: INRIA (Dr. Philippe Merle, merle@lifl.fr) Nature: Uncategorized Issue Severity: Summary: The CORBA Scripting Language Specification v1.0 (OMG TC Document formal/01-06-05) is aligned with CORBA version 2.3 (see note at page 1-1). It is needed to align this specification with CORBA 2.4.2. Here is a list of alignment requirements: * In Section 2.2 page 2-3, replace all: CORBA 2.3 by: CORBA 2.4.2 * In Section 3.11.3 page 3-17 Table 3-2, add new IDLscript identifiers to refer recent CORBA system exceptions: * CORBA.REBIND * CORBA.TIMEOUT * CORBA.TRANSACTION_UNAVAILABLE * CORBA.TRANSACTION_MODE * CORBA.BAD_QOS * In Section 3.11.3 and 3.11.4 page 3-18, replace all: CORBA.CompletionStatus by: CORBA.completion_status * In Section 3.13.5 page 3-29, replace: CORBA::BAD_INV_ORDER by: CORBA::UNKNOWN with minor code equals to 2 | OMGVMCID * In Section 3.18.1 page 3-40 Table 3-6, add recent CORBA::Object operations and their IDLscript reflection: * get_client_policy is reflected by _get_client_policy * get_policy_overrides is reflected by _get_policy_overrides * validate_connection is reflected by _validate_connection * Add the new section 3.11 (i.e. Binding for OMG IDL Fixed) at page 3-16 for describing rules for OMG IDL fixed types. Then next sections must be renumbered. * Adding binding rules for OMG IDL local interfaces allowing to access to all Policy and Current objects, interceptors, etc. This requires to add a new section in the Chapter 3 or update the section 3.12 (i.e. Binding for OMG IDL Interface). Resolution: see above Revised Text: Following must be applied to the formal/01-06-05 document. At pages 1-1, 2-3, 2-5, 3-27, 3-34, and 3-35, replace CORBA 2.3 by CORBA 3.0. At page 2-5, replace Table 3-2 on page 3-4 by Table 3-2 on page 3-3, Table 3-4 on page 3-5 by Table 3-4 on page 3-4, Table 3-5 on page 3-6 by Table 3-5 on page 3-5. At page 3-17, Table 3-2, add the exception identifiers CORBA.REBIND, CORBA.TIMEOUT, CORBA.TRANSACTION_UNAVAILABLE, CORBA.TRANSACTION_MODE, CORBA.BAD_QOS, CORBA.INVALID_ACTIVITY, CORBA.ACTIVITY_COMPLETED, and CORBA.ACTIVITY_REQUIRED. At page 3-18, replace all occurrences of CompletionStatus by completion_status. At page 3-29, replace CORBA::BAD_INV_ORDER by CORBA::UNKNOWN with minor code equal to 2 | OMGVMCID. At page 3-40, Table 3-6, add the following lines at the end of the table get_client_policy _get_client_policy get_policy_overrides _get_policy_overrides validate_connection _validate_connection get_component _get_component At pages 3-41 and 3-42, Table 3-7, add the following lines id id register_initial_reference register_initial_reference At page 3-1, Table contents, add cross references to the Section "Binding for OMG IDL Fixed". At page 3-16, before section 3.11, add the following section 3.11 Binding for OMG IDL Fixed All IDL fixed types and values are directly accessible from the IDLscript interpreter. They are represented by internal objects managed by the Interface Repository cache of the IDLscript interpreter. 3.11.1 OMG IDL Example Consider the following example which presents the Money fixed type with nine significant digits and a scale factor of two. Only named fixed types are supported by IDLscript, no binding for anonymous fixed types is provided. // This definition can be located inside or outside an IDL module or interface typedef fixed<9,2> Money; 3.11.2 IDLscript Representation In IDLscript, access to an IDL fixed type is done simply by providing its IDL fixed type identifier. This identifier can be prefixed by its module or interface scopes where it is defined. The evaluation of an IDL fixed type displays the IDL definition of this type definition. >>> Money < OMG-IDL typedef fixed<9,2> Money; > >>> t = Money >>> t < OMG-IDL typedef fixed<9,2> Money; > The previous code presents the access to the Money fixed type. As IDL fixed types are represented by IDLscript objects, they can be assigned to variables to create aliases, compared and passed as arguments to procedures. 3.11.3 Fixed Values The creation of an IDL fixed value is achieved by the calling notation with an initial value. When the given value is of an integer, floating, or fixed type, the interpreter automatically coerces this given value to the required IDL fixed value. If the given value is a string, the interpreter automatically converts the string to a fixed value or throws a CORBA::DATA_CONVERSION exception when the string does not denote a valid fixed value. >>> mi = Money(10) >>> mi Money(10) >>> Money(100.56) Money(100.56) >>> Money("999.99") Money(999.99) >>> try { m = Money("not a valid fixed value string") } catch(CORBA.DATA_CONVERSION e) { println("Data conversion exception!") }; Data conversion exception! >>> mf = Money(mi) >>> mf Money(10) >>> mf._type < OMG-IDL typedef fixed<9,2> Money; > >>> mf._is_a(Money) true The previous code presents some examples of IDL fixed value creations with different initial value types. As IDL fixed values are represented by IDLscript objects, it is possible to use common value attributes and methods such as _type and _is_a. Moreover, IDLscript fixed values have specific attributes and methods enumerated in Table 3?2. Table 3-2 The IDLscript Fixed Value Functionalities Functionality Explanation f.digits Returns the smallest digits that can hold the complete f fixed object. f.scale Returns the smallest scale that can hold the complete f fixed object. f.round(s) Returns a new fixed object equal to the f fixed object rounded down the specified s scale, where s is an unsigned short. If the new scale requires the value to lose precision on the right, the round method will round away from zero values that are halfway or more to the next absolute value for the new fixed precision. f.truncate(s) Returns a new fixed object equal to the f fixed object truncated to the specified s scale, where s is an unsigned short. If the new scale requires the value to lose precision on the right, the truncate method always truncates the value towards zero. Consider the following examples: >>> m = Money(100.56) >>> m.digits 5 >>> m.scale 2 >>> m.round(0) Money(101) >>> m.round(1) Money(100.6) >>> m.round(2) Money(100.56) >>> m.truncate(0) Money(100) >>> m.truncate(1) Money(100.5) >>> m.truncate(2) Money(100.56) Actions taken: August 16, 2001: received issue December 11, 2002: closed issue Discussion: The CORBA Scripting Language Specification v1.0 (OMG TC Document formal/01-06-05) must be aligned with the CORBA 3.0 Specification (formal/02-06-01): · Add recent CORBA system exceptions, · Replace CompletionStatus by completion_status, · Replace the BAD_INV_ORDER exception by UNKNOWN. · Add recent CORBA::Object operations, · Add recent CORBA::ORB operations, · Add a section describing the binding for OMG IDL fixed types and values. No changes are required for local interfaces as they are reflected by the IDLscript interpreter and implemented by user scripts as normal interfaces are, i.e. through the rules already defined in section 3.13 "Binding for OMG IDL Interface" and section 3.14 "Implementing OMG IDL Interfaces" of the CORBA Scripting Language Specification. End of Annotations:===== From: Philippe.Merle@lifl.fr Received: from (merle@localhost) by karjala.lifl.fr (8.9.1b+Sun/jtpda-5.3.3) id RAA23060 ; Thu, 16 Aug 2001 17:50:11 +0200 (MET DST) Date: Thu, 16 Aug 2001 17:50:11 +0200 (MET DST) Message-Id: <200108161550.RAA23060@karjala.lifl.fr> To: issues@omg.org Subject: Issues for the CORBA Scripting Language Specification Cc: juergen@omg.org, idlscript-ftf@omg.org X-Sun-Charset: US-ASCII Content-Type: text X-UIDL: jNl!!:lO!!,e*e9:QF!! Hello Juergen, I am knowing that the Public Comment Deadline for IDLscript is out but I have collected from my archives four issues that should be resolved in the next IDLscript RTF. Thank you to report me assigned issue numbers allowing me to write the final IDLscript RTF report (for tomorrow). - Issue 3 ------------------------------------------------------------------------ Alignment with CORBA 2.4.2 -------------------------- The CORBA Scripting Language Specification v1.0 (OMG TC Document formal/01-06-05) is aligned with CORBA version 2.3 (see note at page 1-1). It is needed to align this specification with CORBA 2.4.2. Here is a list of alignment requirements: * In Section 2.2 page 2-3, replace all: CORBA 2.3 by: CORBA 2.4.2 * In Section 3.11.3 page 3-17 Table 3-2, add new IDLscript identifiers to refer recent CORBA system exceptions: * CORBA.REBIND * CORBA.TIMEOUT * CORBA.TRANSACTION_UNAVAILABLE * CORBA.TRANSACTION_MODE * CORBA.BAD_QOS * In Section 3.11.3 and 3.11.4 page 3-18, replace all: CORBA.CompletionStatus by: CORBA.completion_status * In Section 3.13.5 page 3-29, replace: CORBA::BAD_INV_ORDER by: CORBA::UNKNOWN with minor code equals to 2 | OMGVMCID * In Section 3.18.1 page 3-40 Table 3-6, add recent CORBA::Object operations and their IDLscript reflection: * get_client_policy is reflected by _get_client_policy * get_policy_overrides is reflected by _get_policy_overrides * validate_connection is reflected by _validate_connection * Add the new section 3.11 (i.e. Binding for OMG IDL Fixed) at page 3-16 for describing rules for OMG IDL fixed types. Then next sections must be renumbered. * Adding binding rules for OMG IDL local interfaces allowing to access to all Policy and Current objects, interceptors, etc. This requires to add a new section in the Chapter 3 or update the section 3.12 (i.e. Binding for OMG IDL Interface).