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

Status
Published
Publication Date
14-Oct-1998
Current Stage
9093 - International Standard confirmed
Completion Date
28-Jun-2021
Ref Project

Relations

Buy Standard

Standard
ISO/IEC 13719-4:1998 - Information technology -- Portable Common Tool Environment (PCTE)
English language
125 pages
sale 15% off
Preview
sale 15% off
Preview

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
ISO/IEC 13719-4:1998(E)

---------------------- Page: 1 ----------------------
ISO/IEC 13719-4:1998 (E)
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

---------------------- Page: 2 ----------------------
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

---------------------- Page: 3 ----------------------
ISO/IEC 13719-4:1998 (E) ISO/IEC
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

---------------------- Page: 4 ----------------------
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

---------------------- Page: 5 ----------------------
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.
1

---------------------- Page: 6 ----------------------
ISO/IEC 13719-4:1998 (E) ISO/IEC
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
2

---------------------- Page: 7 ----------------------
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.
3

---------------------- Page: 8 ----------------------
ISO/IEC 13719-4:1998 (E) ISO/IEC
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 datatype mapping for basic types follows ISO/IEC 13719-2 closely.
string
- string is mapped to the IDL type ;
- natural and integer are mapped to the IDL type long;
- boolean is mapped to the IDL type boolean;
- float is mapped to the IDL type float;
- Pcte_pathname, Pcte_object_reference, etc. as identifier and interface name have been
changed to be interfaces or pseudo-objects;
As IDL does not allow two identifiers which differ only by case to be used in the same scope, an
"_EI" suffix has been added to the enumeration items of the Pcte_sequence_type (which
otherwise would have been conflicting with sequence names).
4

---------------------- Page: 9 ----------------------
ISO/IEC ISO/IEC 13719-4:1998 (E)
8.2 Sequences
/* The source file "sequences.idl" */
#ifndef PCTE_SEQUENCES_INCLUDED
#define PCTE_SEQUENCES_INCLUDED 1
#include "types.idl"
enum Pcte_sequence_type {
PCTE_ACCOUNTING_FILE_EI, PCTE_ACL_EI, PCTE_AUDIT_FILE_EI,
PCTE_ATTRIBUTE_ASSIGNMENTS_EI, PCTE_H_ATTRIBUTE_ASSIGNMENTS_EI,
PCTE_ATTRIBUTE_NAMES_EI, PCTE_ATTRIBUTE_REFERENCES_EI,
PCTE_BUFFER_EI, PCTE_CONFIDENTIALITY_CRITERIA_EI,
PCTE_ENUMERATION_VALUE_TYPE_EI,
PCTE_H_ENUMERATION_VALUE_TYPE_EI,
PCTE_ENUMERATION_VALUE_TYPE_IN_SDS_EI, PCTE_GENERAL_CRITERIA_EI,
PCTE_INTEGRITY_CRITERIA_EI, PCTE_KEY_TYPES_EI, PCTE_H_KEY_TYPES_EI,
PCTE_KEY_TYPES_IN_SDS_EI, PCTE_LINK_NAMES_EI,
PCTE_LINK_SET_DESCRIPTORS_EI, PCTE_H_LINK_SET_DESCRIPTORS_EI,
PCTE_LINK_REFERENCES_EI, PCTE_MESSAGE_TYPES_EI,
PCTE_NAME_SEQUENCE_EI, PCTE_OBJECT_CRITERIA_EI,
PCTE_OBJECT_REFERENCES_EI, PCTE_TYPE_NAMES_EI,
PCTE_TYPE_NAMES_IN_SDS_EI, PCTE_TYPE_REFERENCES_EI,
PCTE_USER_CRITERIA_EI, PCTE_VOLUME_INFOS_EI,
/* New Object-Oriented extension sequences */
PCTE_PARAMETER_ITEMS_EI,
PCTE_METHOD_REQUESTS_EI,
PCTE_CONTEXT_ADOPTIONS_EI,
PCTE_METHOD_REQUEST_IDS_EI
};
typedef Object Pcte_sequence_element;
typedef Object Pcte_array_of_sequence_elements;
interface Pcte_sequence;
#define Pcte_null_sequence (Pcte_sequence) NULL
typedef Pcte_sequence Pcte_accounting_file;
typedef Pcte_sequence Pcte_audit_file;
typedef Pcte_sequence Pcte_attribute_names;
typedef Pcte_sequence Pcte_attribute_references;
typedef Pcte_sequence Pcte_buffer;
typedef Pcte_sequence Pcte_confidentiality_criteria;
typedef Pcte_sequence Pcte_enumeration_value_type;
typedef Pcte_sequence Pcte_h_enumeration_value_type;
typedef Pcte_sequence Pcte_enumeration_value_type_in_sds;
5

---------------------- Page: 10 ----------------------
ISO/IEC 13719-4:1998 (E) ISO/IEC
typedef Pcte_sequence Pcte_general_criteria;
typedef Pcte_sequence Pcte_integrity_criteria;
typedef Pcte_sequence Pcte_key_types;
typedef Pcte_sequence Pcte_h_key_types;
typedef Pcte_sequence Pcte_key_types_in_sds;
typedef Pcte_sequence Pcte_link_set_descriptors;
typedef Pcte_sequence Pcte_h_link_set_descriptors;
typedef Pcte_sequence Pcte_link_names;
typedef Pcte_sequence Pcte_link_references;
typedef Pcte_sequence Pcte_message_types;
typedef Pcte_sequence Pcte_name_sequence;
typedef Pcte_sequence Pcte_object_criteria;
typedef Pcte_sequence Pcte_object_references;
typedef Pcte_sequence Pcte_type_names;
typedef Pcte_sequence Pcte_type_names_in_sds;
typedef Pcte_sequence Pcte_type_references;
typedef Pcte_sequence Pcte_user_criteria;
typedef Pcte_sequence Pcte_volume_infos;
typedef Pcte_sequence Pcte_parameters_items;
typedef Pcte_sequence Pcte_method_requests;
typedef Pcte_sequence Pcte_method_requests;
typedef Pcte_sequence Pcte_method_request_ids;
interface Pcte_sequence { //PIDL
/* Mapped to a CORBA sequence. */
/* This interface is conventionally applied to the PCTE object type "process". */
Pcte_error_type create (
in Pcte_sequence_type type,
in Pcte_array_of_sequence_elements data,
in Pcte_natural count,
out Pcte_sequence out_sequence
);
Pcte_error_type discard (
);
6

---------------------- Page: 11 ----------------------
ISO/IEC ISO/IEC 13719-4:1998 (E)
Pcte_error_type copy (
out Pcte_sequence destination_list,
in Pcte_natural index,
in Pcte_natural source_index,
in Pcte_natural count
);
Pcte_error_type insert_elements (
in Pcte_natural index,
in Pcte_array_of_sequence_elements data,
in Pcte_natural count
);
Pcte_error_type delete (
in Pcte_natural index,
in Pcte_natural count
);
Pcte_error_type are_equal (
in Pcte_sequence second_sequence,
out Pcte_boolean equality
);
Pcte_error_type get_index (
in Pcte_sequence_element element,
out Pcte_integer index
);
Pcte_error_type get_length (
out Pcte_natural length
);
Pcte_error_type get_elements (
in Pcte_natural index,
out Pcte_array_of_sequence_elements data,
in Pcte_natural count
);
Pcte_error_type get (
in Pcte_natural index,
out Pcte_sequence_element element
);
Pcte_error_type insert (
in Pcte_natural index,
in Pcte_sequence_element element
);
Pcte_error_type replace (
in Pcte_natural index,
in Pcte_sequence_element element
);
7

---------------------- Page: 12 ----------------------
ISO/IEC 13719-4:1998 (E) ISO/IEC
Pcte_error_type append (
in Pcte_sequence_element element
);
Pcte_error_type normalize (
);
};
#endif
8.3 The global pcte source file
/* The source file "pcte.idl" */
#ifndef PCTE_INCLUDED
#define PCTE_INCLUDED 1
#include "types.idl" // 8.4
#include "sequences.idl" // 8.2
#include "references.idl" // clause 23
#include "limits.idl" // clause 24
#include "errors.idl" // clause 25
#include "oms.idl" // clause 9
#include "sms.idl" // clause 10
#include "devices.idl" // clause 11
#include "contents.idl" // clause 12
#include "execution.idl" // clause 13
#include "messages.idl" // clause 14
#include "notification.idl" // clause 15
#include "activities.idl" // clause 16
#include "replication.idl" // clause 17
#include "network.idl" // clause 18
#include "discretionary.idl" // clause 19
#include "mandatory.idl" // clause 20
#include "auditing.idl" // clause 21
#include "accounting.idl" // clause 22
/* #include directive used for cluster management */
#include "clusters.idl"
/* #include directives used by Pcte object-oriented extensions */
#include "interfaces.idl"
#include "methods.idl"
#endif // ! PCTE_INCLUDED
8

---------------------- Page: 13 ----------------------
ISO/IEC ISO/IEC 13719-4:1998 (E)
8.4 The PCTE basic type source file
/* The source file "types.idl" */
#ifndef PCTE_TYPES_INCLUDED
#define PCTE_TYPES_INCLUDED 1
typedef unsigned long time_t;
#include "errors.idl"
#define PCTE_OK 0
#define PCTE_ERROR 1
typedef unsigned short Pcte_boolean;
#define PCTE_TRUE (Pcte_boolean) 1
#define PCTE_FALSE (Pcte_boolean) 0
typedef long Pcte_integer;
typedef unsigned long Pcte_natural;
typedef float Pcte_float;
typedef time_t Pcte_time;
#define Pcte_time_accuracy_factor (Pcte_natural)
#define Pcte_reference_time (Pcte_time)
#define Pcte_null_time (Pcte_time)
typedef octet Pcte_octet;
struct Pcte_string {
Pcte_natural size;
Pcte_octetarray;
};
#endif // !PCTE_TYPES_INCLUDED
9 Object management
9.1 Object management datatypes
/* The source file "oms_types.idl" */
#define PCTE_OMS_TYPES_INCLUDED 1
enum Pcte_category {
PCTE_COMPOSITION,
PCTE_EXISTENCE,
PCTE_REFERENCE,
PCTE_DESIGNATION,
PCTE_IMPLICIT
};
typedef Pcte_natural Pcte_categories ;
9

---------------------- Page: 14 ----------------------
ISO/IEC 13719-4:1998 (E) ISO/IEC
#define PCTE_ALL_CATEGORIES (Pcte_natural) PCTE_COMPOSITION |\
PCTE_EXISTENCE |\
PCTE_REFERENCE |\
PCTE_DESIGNATION |\
PCTE_IMPLICIT
enum Pcte_value_type {
PCTE_BOOLEAN_ATTRIBUTE,
PCTE_INTEGER_ATTRIBUTE,
PCTE_NATURAL_ATTRIBUTE,
PCTE_FLOAT_ATTRIBUTE,
PCTE_STRING_ATTRIBUTE,
PCTE_TIME_ATTRIBUTE,
PCTE_ENUMERATION_ATTRIBUTE
};
union Pcte_value_value switch (long) {
case 1 : Pcte_boolean v_boolean;
case 2 : Pcte_integer v_integer;
case 3 : Pcte_natural v_natural;
case 4 : Pcte_float v_float;
case 5 : Pcte_string v_string;
case 6 : Pcte_time v_time;
case 7 : Pcte_natural v_enumeral_type_position;
};
struct Pcte_attribute_value {
Pcte_value_type type;
Pcte_value_value value;
};
struct Pcte_attribute_assignment {
Pcte_attribute_name name;
Pcte_attribute_value value;
};
struct Pcte_h_attribute_assignment {
Pcte_attribute_reference reference;
Pcte_attribute_value value;
};
enum Pcte_link_scope {
PCTE_INTERNAL_LINKS, PCTE_EXTERNAL_LINKS, PCTE_ALL_LINKS
};
enum Pcte_type_ancestry {
PCTE_EQUAL_TYPE, PCTE_ANCESTOR_TYPE,
PCTE_DESCENDANT_TYPE, PCTE_UNRELATED_TYPE
};
10

---------------------- Page: 15 ----------------------
ISO/IEC ISO/IEC 13719-4:1998 (E)
enum Pcte_version_relation {
PCTE_ANCESTOR_VSN, PCTE_DESCENDANT_VSN, PCTE_SAME_VSN,
PCTE_RELATED_VSN, PCTE_UNRELATED_VSN
};
enum Pcte_object_scope {
PCTE_ATOMIC, PCTE_COMPOSITE
};
#define PCTE_MAX_EXACT_IDENTIFIER_SIZE PCTE_MAX_KEY_SIZE
typedef Pcte_octet
Pcte_exact_identifier [PCTE_MAX_EXACT_IDENTIFIER_SIZE + 1];
#endif // !PCTE_TYPES_INCLUDED
/* The source file "oms.idl" */
#ifndef PCTE_OMS_INCLUDED
#define PCTE_OMS_INCLUDED 1
#include "types.idl"
#include "references.idl"
#include "oms_types.idl"
#include "sequences.idl"
#include "contents_types.idl"
typedef Object Pcte_contents;
typedef Pcte_sequence Pcte_attribute_assignments;
typedef Pcte_sequence Pcte_h_attribute_assignments;
enum Pcte_volume_accessibility {
PCTE_ACCESSIBLE, PCTE_INACCESSIBLE, PCTE_UNKNOWN
};
#include "devices.idl"
struct Pcte_volume_info {
Pcte_volume_identifier volume;
Pcte_volume_accessibility mounted;
};
struct Pcte_link_set_descriptor {
Pcte_object_reference origin;
Pcte_link_names links;
};
struct Pcte_h_link_set_descriptor {
Pcte_object_reference origin;
Pcte_link_references links;
};
#include "discretionary.idl"
11

---------------------- Page: 16 ----------------------
ISO/IEC 13719-4:1998 (E) ISO/IEC
9.2 Link operators
interface Pcte_link {
/* This interface is applied to the PCTE object type "object" */
/* 9.2.1 LINK_CREATE */
Pcte_error_type create (
in Pcte_link_name new_link,
in Pcte_object_reference dest,
in Pcte_key reverse_key
);
/* 9.2.2 LINK_DELETE */
Pcte_error_type delete (
in Pcte_link_name link
);
/* 9.2.3 LINK_DELETE_ATTRIBUTE */
Pcte_error_type delete_attribute (
in Pcte_link_name link,
in Pcte_attribute_reference attribute_ref
);
/* 9.2.4 LINK_GET_ATTRIBUTE */
Pcte_error_type get_attribute (
in Pcte_link_name link,
in Pcte_attribute_name name,
out Pcte_attribute_value value
);
/* 9.2.5 LINK_GET_DESTINATION_VOLUME */
Pcte_error_type get_destination_volume (
in Pcte_link_name link,
out Pcte_volume_info volume_info
);
/* 9.2.6 LINK_GET_KEY */
Pcte_error_type get_key (
in Pcte_link_name link,
out Pcte_key key
);
12

---------------------- Page: 17 ----------------------
ISO/IEC ISO/IEC 13719-4:1998 (E)
/* 9.2.7 LINK_GET_REVERSE */
Pcte_error_type get_reverse (
in Pcte_link_name link,
out Pcte_link_name reverse_link,
out Pcte_object_reference dest
);
/* 9.2.8 LINK_GET_SEVERAL_ATTRIBUTES */
Pcte_error_type get_attributes_in_working_schema (
in Pcte_link_name link,
out Pcte_attribute_assignments values
);
Pcte_error_type get_attributes_of_types (
in Pcte_link_name link,
in Pcte_attribute_names attributes,
out Pcte_attribute_assignments values
);
/* 9.2.9 LINK_REPLACE */
Pcte_error_type replace (
in Pcte_link_name link,
in Pcte_object_reference new_origin,
in Pcte_link_name new_link,
in Pcte_key new_reverse_key
);
/* 9.2.10 LINK_RESET_ATTRIBUTE */
Pcte_error_type reset_attribute (
in Pcte_link_name link,
in Pcte_attribute_reference attribute_ref
);
/* 9.2.11 LINK_SET_ATTRIBUTE */
Pcte_error_type set_attribute (
in Pcte_link_name link,
in Pcte_attribute_name attribute_ref,
in Pcte_attribute_value value
);
/* 9.2.12 LINK_SET_SEVERAL_ATTRIBUTES */
Pcte_error_type set_several_attributes (
in Pcte_link_name link,
in Pcte_attribute_assignments attributes
);
13

---------------------- Page: 18 ----------------------
ISO/IEC 13719-4:1998 (E) ISO/IEC
/* 11.2.7 LINK_GET_DESTINATION_ARCHIVE */
Pcte_error_type get_destination_archive (
in Pcte_link_name link,
out Pcte_archive_identifier archive_identifier
);
};
interface Pcte_h_link {
/* This interface is applied to the PCTE object type "object" \f B*/
/* 9.2.1 LINK_CREATE */
Pcte_error_type create (
in Pcte_link_reference new_link,
in Pcte_object_reference dest,
in Pcte_key reverse_key
);
/* 9.2.2 LINK_DELETE */
Pcte_error_type delete (
in Pcte_link_reference link
);
/* 9.2.3 LINK_DELETE_ATTRIBUTE */
Pcte_error_type delete_attribute (
in Pcte_link_reference link,
in Pcte_attribute_reference attribute_ref
);
/* 9.2.4 LINK_GET_ATTRIBUTE */
Pcte_error_type get_attribute (
in Pcte_link_reference link,
in Pcte_attribute_reference attribute_ref,
out Pcte_attribute_value value
);
/* 9.2.5 LINK_GET_DESTINATION_VOLUME */
Pcte_error_type get_destination_volume (
in Pcte_link_reference link,
out Pcte_volume_inf volume_info
);
/* 9.2.6 LINK_GET_KEY */
Pcte_error_type get_key (
in Pcte_link_reference link,
out Pcte_key key
);
14

---------------------- Page: 19 ----------------------
ISO/IEC ISO/IEC 13719-4:1998 (E)
/* 9.2.7 LINK_GET_REVERSE */
Pcte_error_type get_reverse (
in Pcte_link_reference link,
out Pcte_link_reference reverse_link,
out Pcte_object_reference dest
);
/* 9.2.8 LINK_GET_SEVERAL_ATTRIBUTES */
Pcte_error_type get_attributes_in_working_schema (
in Pcte_link_reference link,
out Pcte_h_attribute_assignments values
);
Pcte_error_type get_attributes_of_types (
in Pcte_link_reference link,
in Pcte_attribute_references attributes,
out Pcte_h_attribute_assignments values
);
/* 9.2.9 LINK_REPLACE */
Pcte_error_type replace (
in Pcte_link_reference link,
in Pcte_object_reference new_origin,
in Pcte_link_reference new_link,
in Pcte_key new_reverse_key
);
/* 9.2.10 LINK_RESET_ATTRIBUTE */
Pcte_error_type reset_attribute (
in Pcte_link_reference link,
in Pcte_attribute_reference attribute_ref
);
/* 9.2.11 LINK_SET_ATTRIBUTE */
Pcte_error_type set_attribute (
in Pcte_link_reference link,
in Pcte_attribute_reference attribute_ref,
out Pcte_attribute_value value
);
/* 9.2.12 LINK_SET_SEVERAL_ATTRIBUTES */
Pcte_error_type set_several_attributes (
in Pcte_link_reference link,
in Pcte_h_attribute_assignments attributes
);
15

---------------------- Page: 20 ----------------------
ISO/IEC 13719-4:1998 (E) ISO/IEC
/* 11.2.7 LINK_GET_DESTINATION_ARCHIVE */
Pcte_error_type get_destination_archive (
in Pcte_link_reference link,
out Pcte_archive_identifier archive_identifier
);
};
9.3 Object operations
interface Pcte_object {
/* This interface is applied to the PCTE object type "object" */
/* 9.3.1 OBJECT_CHECK_TYPE */
Pcte_error_type check_type (
in Pcte_type_name type2,
in Pcte_type_ancestry relation
);
/* 9.3.2 OBJECT_CONVERT */
Pcte_error_type convert (
in Pcte_type_name type
);
/* 9.3.3 OBJECT_COPY */
Pcte_error_type copy (
in Pcte_link_name new_link,
in Pcte_key reverse_key,
in Pcte_object_reference on_same_volume_as,
in Pcte_atomic_access_rights access_mask,
out Pcte_object_reference new_object
);
/* 9.3.4 OBJECT_CREATE */
Pcte_error_type create (
in Pcte_type_name type,
in Pcte_link_name new_link,
in Pcte_key reverse_key,
in Pcte_object_reference on_same_volume_as,
in Pcte_atomic_access_rights access_mask,
out Pcte_object_ref
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.