ISO/IEC 13719-4:1998
(Main)Information technology — Portable Common Tool Environment (PCTE) — Part 4: IDL binding (Interface Definition Language)
Information technology — Portable Common Tool Environment (PCTE) — Part 4: IDL binding (Interface Definition Language)
Technologies de l'information — Environnement d'outil courant portable (PCTE) — Partie 4: Liaison IDL (langage de définition d'interface)
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 13719-4
First edition
1998-10-01
Information technology — Portable
Common Tool Environment (PCTE) —
Part 4:
IDL binding (Interface Definition Language)
Technologies de l'information — Environnement d’outil courant portable
(PCTE) —
Partie 4: Liaison IDL (langage de définition d’interface)
Reference number
B C
Contents
1 Scope 1
2 Conformance 1
3 Normative references 1
4 Definitions 2
5 Formal notations 2
6 Outline of the Standard 2
7 Binding strategy 2
7.1 2
IDL standard
7.2 General principles 2
7.3 Sets and sequences 3
7.4 References and names 3
7.5 4
Implementation aspects
7.5.1 4
Source files
7.5.2 4
Naming changes in the IDL
7.5.3 Difference in generated C code 4
8 Datatype mapping 4
8.1 Basic datatypes 4
8.2 Sequences 5
8.3 The global pcte source file 8
8.4 9
The PCTE basic type source file
9 Object management 9
9.1 9
Object management datatypes
9.2 Link operators 12
9.3 Object operations 16
9.4 Version operations 20
9.5 Object and version operations – reference interfaces 21
10 Schema management 25
10.1 25
Schema management datatypes
10.2 26
Update operations
© ISO/IEC 1998
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced
or utilized in any form or by any means, electronic or mechanical, including photocopying and
microfilm, without permission in writing from the publisher.
ISO/IEC Copyright Office • Case postale 56 • CH-1211 Genève 20 • Switzerland
Printed in Switzerland
ii
ISO/IEC ISO/IEC 13719-4:1998 (E)
10.3 32
Usage operations
10.4 35
Working schema operations
11 Volumes, devices, archives, and clusters 39
11.1 Volume, device, archive, and cluster datatypes 39
11.2 Volume, device, and archive operations 40
11.3 Cluster operations 43
12 Files, pipes, and devices 44
12.1 File, pipe, and device datatypes 44
12.2 File, pipe, and device operations 44
13 Process execution 47
13.1 47
Process execution datatypes
13.2 48
Process execution operations
13.3 Security operations 51
13.4 Profiling operations 52
13.5 Monitoring operations 53
13.6 Mandatory security operations 54
13.7 54
Consumer identity operations
13.8 54
Contents handle operation
14 Message queues 55
14.1 Message queue datatypes 55
14.2 Message queue operations 56
15 Notification 58
15.1 Notification datatypes 58
15.2 Notification operations 58
16 Concurrency and integrity control 59
16.1 59
Concurrency and integrity control datatypes
16.2 60
Concurrency and integrity control operations
17 Replication 61
17.1 Replication datatypes 61
17.2 Replication operations 61
18 Network connection 63
18.1 Network connection datatypes 63
18.2 Network connection operations 64
18.3 65
Foreign system operations
18.4 65
Time operations
18.5 Other workstation operations 66
19 Discretionary security 66
19.1 Discretionary security datatypes 67
19.2 Discretionary access control operations 67
19.3 Discretionary security administration operations 68
iii
20 Mandatory security 70
20.1 Mandatory_security datatypes 70
20.2 71
Operations for mandatory security operation
20.3 71
Mandatory security administration operations
21 Auditing 73
21.1 Auditing datatypes 73
21.2 Auditing operations 77
22 Accounting 78
22.1 Accounting datatypes 78
22.2 Accounting administration operations 80
23 References 82
23.1 82
Reference datatypes
23.2 83
Reference creation and discarding
23.3 Object reference operations 84
23.4 Link reference operations 85
23.5 Type reference operations 86
24 Implementation limits 87
24.1 Implementation limit datatypes 87
24.2 89
Implementation limit operations
25 Error conditions 89
25.1 89
Error condition datatypes
Annex A - Comparison with ISO/IEC 13719-2 97
Annex B - IDL file structure 100
Annex C - The object-oriented module 103
Index of abstract operations 108
Index of IDL subprograms 109
Index of IDL datatypes 125
iv
ISO/IEC ISO/IEC 13719-4:1998 (E)
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the
specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the
development of International Standards through technical committees established by the respective organization to deal with
particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other
international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work.
In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1. Draft
International Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as an
International Standard requires approval by at least 75 % of the national bodies casting a vote.
International Standard ISO/IEC 13719-4 was prepared by ECMA (as Standard ECMA-230) and was adopted, under a special
“fast-track procedure”, by Joint Technical Committee ISO/IEC JTC 1, Information technology, in parallel with its approval by
national bodies of ISO and IEC.
ISO/IEC 13719 consists of the following parts, under the general title Information technology - Portable Common Tool
Environment (PCTE):
− Part 1: Abstract specification
− Part 2: C programming language binding
− Part 3: Ada programming language binding
− Part 4: IDL binding (Interface Definition Language)
Annex C forms an integral part of this part of ISO/IEC 13719. Annexes A and B are for information only.
v
INTERNATIONAL STANDARD ISO/IEC ISO/IEC 13719-4:1998 (E)
Information technology - Portable Common Tool Environment (PCTE) -
Part 4:
IDL binding (Interface Definition Language)
1 Scope
This part of ISO/IEC 13719 defines the standard binding of the Portable Common Tool
Environment (PCTE), as specified in ISO/IEC 13719-1, to the CORBA Interface Definition
Language (IDL) defined in ISO/IEC CD 14750.
A number of features are not completely defined in ISO/IEC 13719-1, some freedom being
allowed to the implementer. Some of these features are specified as implementation limits. Some
constraints are placed on these implementation limits by this IDL Binding Standard. These
constraints are specified in clause 24, Implementation Limits.
PCTE is an interface to a set of facilities that forms the basis for constructing environments
supporting systems engineering projects. These facilities are designed particularly to provide an
infrastructure for programs which may be part of such environments. Such programs, which are
used as aids to systems development, are often referred to as tools.
2 Conformance
An implementation of PCTE conforms to this part of ISO/IEC 13719 if it conforms to 2.2 of
ISO/IEC 13719-1, where the binding referred is taken to be the IDL Binding defined in clauses 1
to 5 and 8 to 25 of this part of ISO/IEC 13719. All other clauses in this part of ISO/IEC 13719 are
provided as assistance to the reader and are not normative.
The IDL Binding defined in this part of ISO/IEC 13719 conforms to 2.1 of ISO/IEC 13719-1.
3 Normative references
The following standards contain provisions which, through reference in this text, constitute
provisions of this part of ISO/IEC 13719. At the time of publication, the editions indicated were
valid. All standards are subject to revision, and parties to agreements based on this part of ISO/IEC
13719 are encouraged to investigate the possibility of applying the most recent editions of the
standards indicated below. Members of IEC and ISO maintain registers of currently valid
International Standards.
ISO/IEC 13719-1:1998, Information technology -
Portable Common Tool Environment
(PCTE) - Part 1: Abstract specification.
ISO/IEC 13719-2:1998, Information technology - Portable Common Tool Environment
(PCTE) - Part 2: C programming language binding.
1)
ISO/IEC 14750:— ,
Information technology - Open Distributed Processing - Interface
Definition Language.
__________
1) To be published.
4 Definitions
All technical terms used in this part of ISO/IEC 13719, other than a few in widespread use, are
defined in the body of this part of ISO/IEC 13719 or in the referenced documents.
5 Formal notations
For the IDL binding for each operation, the function syntax is used as defined in ISO/IEC CD
14750.
6 Outline of the Standard
Clause 7 describes the strategy used to develop this binding specification
Clause 8 contains the mapping from the datatypes that are used in the Abstract Specification to the
IDL datatypes.
Clause 9 to 22 define the binding of datatypes and operations in the corresponding clauses of
ISO/IEC 13719-1. The extensions for fine-grain objects are added at the end of clause 11.
Clause 23 defines the binding of object, attribute, link, and type references, as specified in 23.1.2
and 23.2 of ISO/IEC 13719-1.
Clause 24 defines the binding of the implementation limit functions described in clause 24 of
ISO/IEC 13719-1.
Clause 25 defines the binding of the error conditions described in annex C of ISO/IEC 13719-1,
and defines binding-defined error conditions for the IDL Binding.
There are 2 informative annexes. Annex A compares the structures of this IDL binding and of the
C binding of ISO/IEC 13719-2, explaining the differences. Annex B describes the source file
structure of the IDL binding.
Annex C, which is normative, contains the extensions for object orientation, corresponding to
annex G of ISO/IEC 13719-1.
7 Binding strategy
7.1 IDL standard
This part of ISO/IEC 13719 conforms to the definition of IDL in ISO/IEC 14750.
7.2 General principles
The following general principles were applied when generating the binding in this part of
ISO/IEC 13719.
The C interface generated from the IDL binding should be as close as possible to the PCTE C
language binding of ISO/IEC 13719-2, so as to minimize changes to existing C applications.
The binding should leave open the possibility for an implementation of the binding to allow a
non-PCTE process to access the PCTE object base without being statically linked to the PCTE
ISO/IEC ISO/IEC 13719-4:1998 (E)
interface. This implies that the implementation of the static bindings generated from the IDL
must not make use of any PCTE operations. The IDL binding has been structured, through the
use of Pseudo-IDL (PIDL), to leave this implementation option open.
The majority of the operations accept a Pcte_object_reference as controlling object. Therefore,
ideally, there should exist a Pcte_object_reference interface which inherits from almost all other
interfaces. This approach would allow for a static type checking but it is awkward. It has been
decided instead to allow casting and let the PCTE implementation raise an exception if the passed
controlling object is not of the right type.
Many operations said to be applied to a process object are only applicable to the current process
object. This is specified whenever it is necessary. This is also meant sometimes by the comment:
/* Operation is applied to self */.
Sequences should be implemented as pseudo-objects to be mapped internally into CORBA
sequences. This implies that each operation accepting or returning a sequence must map it in the
correct format for the PCTE implementation server. In the case of a sequence of object or link
references, each reference must be mapped to a CORBA interface and returned to the client as
such. The major reason for this is that in general an object reference may not be easily mapped
by an implementation into a format meaningful for network transport. It is easier to assume that
the object references are kept on the implementation side, and that at the client side CORBA
brings an object handle. This mapping allows the use of dynamic bindings as well as static
bindings.
The possibility should be left open of a special implementation choice to implement the PCTE
CORBA static bindings stubs to make direct use of the current PCTE C interface: this could be
more efficient, but does not allow a distributed implementation of the IDL interface and might
preclude the use of dynamic bindings.
7.3 Sets and sequences
All sequence operations are grouped under the Pcte_sequence interface. A difficulty is that the
operation create is not part of the interface of an object. To keep the resulting generated C code
in line with ISO/IEC 13719-2, it is still part of the Pcte_sequence interface, but the controlling
object is a constant.
The input and/or result of a sequence create, insert, or get has been mapped to the IDL type any.
7.4 References and names
A departure from ISO/IEC 13719-1 is the introduction of an extra interface called PCTE_RF
(Reference Factory), which contains those operations that return a reference but do not use a
reference as a controlling object.
The rest of the mapping is straightforward, with three interfaces Pcte_object_reference,
Pcte_link_reference, and Pcte_type_reference.
7.5 Implementation aspects
7.5.1 Source files
The source file structure is described in annex B. To simplify the IDL compilation process a
few new IDL source files are introduced; this is because the ISO/IEC 13719-2 header structure
includes both types and operations, where in many cases the latter are not needed. With IDL
this leads to many forward references, eliminated by the introduction of oms_types.idl,
discretionary_types.idl and mandatory_types.idl.
7.5.2 Naming changes in the IDL
All parameters with name containing 'attribute' have been renamed with 'attribute' replaced by
'attribute_ref'.
All parameters with name containing 'object' have been removed (i.e. as controlling object) or
renamed with 'object' replaced by 'object_ref'.
The enumeration values PCTE_KEY, PCTE_NON_KEY to PCTE_KEY_ATTR,
PCTE_NON_KEY_ATTR have been renamed to avoid clashes of the first item with Pcte_key,
as IDL does not allow two identifiers which differ only by case to be used in the same scope.
The sequence enumeration items have been renamed to avoid clashes with the typedef of the
sequences.
7.5.3 Difference in generated C code
All unions have extra '_d' and '_u' fields and are introduced by means of typedef. A result is that
the resulting C code must be changed to use these extra fields.
The enumeration items cannot have a user-defined value. The generated header files must be
changed manually.
8 Datatype mapping
8.1 Basic datatypes
The datatyp
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.