Industrial automation systems and integration — Product data representation and exchange — Part 23: Implementation methods: C++ language binding to the standard data access interface

This part of ISO 10303 specifies the implementation of the functional interface specified in the standard data access interface (SDAI), ISO 10303-22, in the C++ programming language. The following are within the scope of this part of ISO 10303: — access to and manipulation of data types and entities which are specified in ISO 10303-22; — convenience functions suitable to this language binding; — binding of functions to operations and attributes specified in ISO 10303-22 with the linking of application schema definition at either compile-time or run-time; — implementation mechanisms for the handling of errors as specified in ISO 10303-22; — implementation mechanisms for the validation of constraints as specified in ISO 10303-22. The following is outside the scope of this part of ISO 10303: — all items listed as out of scope in ISO 10303-22.

Systèmes d'automatisation industrielle et intégration — Représentation et échange de données de produits — Partie 23: Méthodes de mise en application: Liant de langage C++ à l'interface d'accès aux données normalisées

General Information

Status
Published
Publication Date
20-Dec-2000
Current Stage
9093 - International Standard confirmed
Completion Date
28-Jun-2024
Ref Project

Relations

Buy Standard

Standard
ISO 10303-23:2000 - Industrial automation systems and integration — Product data representation and exchange — Part 23: Implementation methods: C++ language binding to the standard data access interface Released:21. 12. 2000
English language
160 pages
sale 15% off
Preview
sale 15% off
Preview
Standard
ISO 10303-23:2000 - Industrial automation systems and integration -- Product data representation and exchange
English language
160 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)


INTERNATIONAL ISO
STANDARD 10303-23
First edition
2000-12-01
Industrial automation systems and
integration — Product data representation
and exchange —
Part 23:
Implementation methods: C++ language
binding to the standard data access
interface
Systèmes d'automatisation industrielle et intégration — Représentation et
échange de données de produits —
Partie 23: Méthodes de mise en application: Liant de langage C++ à
l'interface d'accès aux données normalisées
Reference number
©
ISO 2000
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but shall not
be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In downloading this
file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat accepts no liability in this
area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation parameters
were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event
that a problem relating to it is found, please inform the Central Secretariat at the address given below.
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 either ISO at the address below or ISO's member body
in the country of the requester.
ISO copyright office
Case postale 56 � CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.ch
Web www.iso.ch
Printed in Switzerland
ii © ISO 2000 – All rights reserved

Contents
Page
1 Scope . 1
2 Normative references . 1
3 Definitions and abbreviations . 2
3.1 Definitions . 2
3.1.1 Terms defined in ISO 10303-1 . 2
3.1.2 Terms defined in ISO 10303-11 . 3
3.1.3 Terms defined in ISO 10303-22 . 3
3.1.4 Terms defined in The Annotated C++ Reference Manual . 4
3.1.5 Term defined in IEEE standard . 5
3.1.6 Other definitions . 5
3.2 Abbreviations . 6
3.3 Typographical conventions . 6
4 Overall requirements . 6
4.1 Characteristics of the binding functions . 6
4.2 Language specific features . 8
4.2.1 Names of types and operations . 8
4.2.2 Memory management . 8
4.3 Binding styles . 8
5 Constants and data type definitions and global functions . 9
5.1 SDAI namespace . 9
5.2 EXPRESS built-in constants . 9
5.3 EXPRESS attribute data types . 10
5.3.1 Primitive data types . 10
5.3.2 Aggregate and iterator data types . 18
5.3.3 Enumeration data type . 20
5.3.4 Select data type . 22
5.3.5 Number data type . 28
5.3.6 Handles . 28
5.3.7 TYPE data type . 29
5.3.8 ENTITY data type . 30
5.3.9 Entity instance . 32
5.3.10 Persistent data and persistent object identifiers . 35
5.3.11 Domain equivalence for early binding . 42
5.3.12 Application instance . 43
5.3.13 Binding-specific data types . 52
5.4 EXISTS functions . 60
iii
6 Error handling . 61
6.1 Event . 63
6.2 Error event . 63
7 C++ binding of the SDAI operations . 64
7.1 Session classes . 64
7.1.1 Session_instance . 64
7.1.2 Session . 69
7.1.3 Implementation . 75
7.1.4 Transaction . 75
7.2 Schema_instance . 76
7.2.1 Rename schema instance . 77
7.2.2 Add SDAI-model . 77
7.2.3 Remove SDAI-model . 77
7.2.4 Validate global rule . 77
7.2.5 Validate uniqueness rule . 78
7.2.6 Validate instance reference domain . 78
7.2.7 Validate schema instance . 79
7.2.8 Is validation current . 79
7.2.9 SDAI query . 79
7.3 Schema-specific schema_instance (early binding) . 80
7.4 Repository classes . 80
7.4.1 Repository_contents . 80
7.4.2 Repository . 81
7.5 Model classes . 84
7.5.1 Model . 84
7.5.2 Model_contents_instances . 87
7.5.3 Model_contents . 87
7.5.4 Entity extent . 90
7.5.5 Model contents by schema . 91
7.5.6 Scope . 92
7.6 Aggregate and iterator classes . 93
7.6.1 Aggregate instance . 93
7.6.2 Array . 94
7.6.3 List . 100
7.6.4 Set . 105
7.6.5 Bag . 108
7.6.6 Iterator . 112
7.7 Dictionary Classes . 116
7.7.1 Named_type . 116
7.7.2 Dictionary_instance . 117
7.7.3 Schema_definition . 117
7.7.4 Defined_type . 119
7.7.5 Entity_definition . 120
iv
7.7.6 Attribute . 121
7.7.7 Derived_attribute . 122
7.7.8 Explicit_attribute . 122
7.7.9 Inverse_attribute . 123
7.7.10 Uniqueness_rule . 124
7.7.11 Where_rule . 124
7.7.12 Enumeration_type . 125
7.7.13 Select_type . 125
7.7.14 Global_rule . 126
7.7.15 Simple_type . 126
7.7.16 Number_type . 127
7.7.17 Integer_type . 127
7.7.18 Real_type . 128
7.7.19 String_type . 128
7.7.20 Binary_type . 129
7.7.21 Logical_type . 129
7.7.22 Boolean_type . 130
7.7.23 Bound . 130
7.7.24 Population_dependent_bound . 131
7.7.25 Integer_bound . 131
7.7.26 Aggregation_type . 132
7.7.27 Variable_size_aggregation_type . 132
7.7.28 Set_type . 133
7.7.29 Bag_type . 133
7.7.30 List_type . 134
7.7.31 Array_type . 134
7.7.32 Underlying_type . 135
7.7.33 Base_type . 136
7.7.34 Constructed_type . 137
7.7.35 Interface_specification . 138
7.7.36 Interfaced_item . 138
7.7.37 Explicit_item_id . 139
7.7.38 Used_item . 139
7.7.39 Referenced_item . 140
7.7.40 Implicit_item_id . 140
7.7.41 External_schema . 141
7.7.42 Domain_equivalent_type . 141
7.7.43 Type_or_rule . 142
7.7.44 Explicit_or_derived . 143
8 Conformance levels . 144
8.1 Conformance level features . 144
8.2 Header files . 144
8.3 Indexing of aggregates . 145
v
Annex A (normative) Information object registration . 146
Annex B (informative) Concept of operations . 147
B.1 Background . 147
B.2 Influence of IDL on this part of ISO 10303 . 148
B.3 IDL-C++ concepts . 149
B.4 Influence of POS on this part of ISO 10303 . 150
B.4.1 Object . 150
B.4.2 SessionInstance and DAObject . 150
B.4.3 SessionInstance . 151
B.4.4 ModelContents . 151
B.4.5 PID and PID_SDAI . 151
B.4.6 DAObject and DAObject_SDAI . 152
B.4.7 Application_instance and application_instance factory . 152
B.4.8 PID_DA . 152
B.5 Scenarios . 152
Bibliography . 154
Index . 155
Figures
Figure B.1 - Inheritance hierarchy . 151
Tables
Table 1 - Arguments and return values . 7
Table 2 - EXPRESS built-in constants . 10
Table 3 - Mapping of EXPRESS types to TypeCode values . 54
vi
Foreword
ISO (the International Organization for Standardization) is a worldwide federation of national
standards bodies (ISO member bodies). The work of preparing International Standards is normally
carried out through ISO technical committees. Each member body interested in a subject for which a
technical committee has been established has the right to be represented on that committee.
International organizations, governmental and non-governmental, in liaison with ISO, also take part in
the work. ISO co
...


INTERNATIONAL ISO
STANDARD 10303-23
First edition
2000-12-01
Industrial automation systems and
integration — Product data representation
and exchange —
Part 23:
Implementation methods: C++ language
binding to the standard data access
interface
Systèmes d'automatisation industrielle et intégration — Représentation et
échange de données de produits —
Partie 23: Méthodes de mise en application: Liant de langage C++ à
l'interface d'accès aux données normalisées
Reference number
©
ISO 2000
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but shall not
be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In downloading this
file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat accepts no liability in this
area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation parameters
were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event
that a problem relating to it is found, please inform the Central Secretariat at the address given below.
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 either ISO at the address below or ISO's member body
in the country of the requester.
ISO copyright office
Case postale 56 � CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.ch
Web www.iso.ch
Printed in Switzerland
ii © ISO 2000 – All rights reserved

Contents
Page
1 Scope . 1
2 Normative references . 1
3 Definitions and abbreviations . 2
3.1 Definitions . 2
3.1.1 Terms defined in ISO 10303-1 . 2
3.1.2 Terms defined in ISO 10303-11 . 3
3.1.3 Terms defined in ISO 10303-22 . 3
3.1.4 Terms defined in The Annotated C++ Reference Manual . 4
3.1.5 Term defined in IEEE standard . 5
3.1.6 Other definitions . 5
3.2 Abbreviations . 6
3.3 Typographical conventions . 6
4 Overall requirements . 6
4.1 Characteristics of the binding functions . 6
4.2 Language specific features . 8
4.2.1 Names of types and operations . 8
4.2.2 Memory management . 8
4.3 Binding styles . 8
5 Constants and data type definitions and global functions . 9
5.1 SDAI namespace . 9
5.2 EXPRESS built-in constants . 9
5.3 EXPRESS attribute data types . 10
5.3.1 Primitive data types . 10
5.3.2 Aggregate and iterator data types . 18
5.3.3 Enumeration data type . 20
5.3.4 Select data type . 22
5.3.5 Number data type . 28
5.3.6 Handles . 28
5.3.7 TYPE data type . 29
5.3.8 ENTITY data type . 30
5.3.9 Entity instance . 32
5.3.10 Persistent data and persistent object identifiers . 35
5.3.11 Domain equivalence for early binding . 42
5.3.12 Application instance . 43
5.3.13 Binding-specific data types . 52
5.4 EXISTS functions . 60
iii
6 Error handling . 61
6.1 Event . 63
6.2 Error event . 63
7 C++ binding of the SDAI operations . 64
7.1 Session classes . 64
7.1.1 Session_instance . 64
7.1.2 Session . 69
7.1.3 Implementation . 75
7.1.4 Transaction . 75
7.2 Schema_instance . 76
7.2.1 Rename schema instance . 77
7.2.2 Add SDAI-model . 77
7.2.3 Remove SDAI-model . 77
7.2.4 Validate global rule . 77
7.2.5 Validate uniqueness rule . 78
7.2.6 Validate instance reference domain . 78
7.2.7 Validate schema instance . 79
7.2.8 Is validation current . 79
7.2.9 SDAI query . 79
7.3 Schema-specific schema_instance (early binding) . 80
7.4 Repository classes . 80
7.4.1 Repository_contents . 80
7.4.2 Repository . 81
7.5 Model classes . 84
7.5.1 Model . 84
7.5.2 Model_contents_instances . 87
7.5.3 Model_contents . 87
7.5.4 Entity extent . 90
7.5.5 Model contents by schema . 91
7.5.6 Scope . 92
7.6 Aggregate and iterator classes . 93
7.6.1 Aggregate instance . 93
7.6.2 Array . 94
7.6.3 List . 100
7.6.4 Set . 105
7.6.5 Bag . 108
7.6.6 Iterator . 112
7.7 Dictionary Classes . 116
7.7.1 Named_type . 116
7.7.2 Dictionary_instance . 117
7.7.3 Schema_definition . 117
7.7.4 Defined_type . 119
7.7.5 Entity_definition . 120
iv
7.7.6 Attribute . 121
7.7.7 Derived_attribute . 122
7.7.8 Explicit_attribute . 122
7.7.9 Inverse_attribute . 123
7.7.10 Uniqueness_rule . 124
7.7.11 Where_rule . 124
7.7.12 Enumeration_type . 125
7.7.13 Select_type . 125
7.7.14 Global_rule . 126
7.7.15 Simple_type . 126
7.7.16 Number_type . 127
7.7.17 Integer_type . 127
7.7.18 Real_type . 128
7.7.19 String_type . 128
7.7.20 Binary_type . 129
7.7.21 Logical_type . 129
7.7.22 Boolean_type . 130
7.7.23 Bound . 130
7.7.24 Population_dependent_bound . 131
7.7.25 Integer_bound . 131
7.7.26 Aggregation_type . 132
7.7.27 Variable_size_aggregation_type . 132
7.7.28 Set_type . 133
7.7.29 Bag_type . 133
7.7.30 List_type . 134
7.7.31 Array_type . 134
7.7.32 Underlying_type . 135
7.7.33 Base_type . 136
7.7.34 Constructed_type . 137
7.7.35 Interface_specification . 138
7.7.36 Interfaced_item . 138
7.7.37 Explicit_item_id . 139
7.7.38 Used_item . 139
7.7.39 Referenced_item . 140
7.7.40 Implicit_item_id . 140
7.7.41 External_schema . 141
7.7.42 Domain_equivalent_type . 141
7.7.43 Type_or_rule . 142
7.7.44 Explicit_or_derived . 143
8 Conformance levels . 144
8.1 Conformance level features . 144
8.2 Header files . 144
8.3 Indexing of aggregates . 145
v
Annex A (normative) Information object registration . 146
Annex B (informative) Concept of operations . 147
B.1 Background . 147
B.2 Influence of IDL on this part of ISO 10303 . 148
B.3 IDL-C++ concepts . 149
B.4 Influence of POS on this part of ISO 10303 . 150
B.4.1 Object . 150
B.4.2 SessionInstance and DAObject . 150
B.4.3 SessionInstance . 151
B.4.4 ModelContents . 151
B.4.5 PID and PID_SDAI . 151
B.4.6 DAObject and DAObject_SDAI . 152
B.4.7 Application_instance and application_instance factory . 152
B.4.8 PID_DA . 152
B.5 Scenarios . 152
Bibliography . 154
Index . 155
Figures
Figure B.1 - Inheritance hierarchy . 151
Tables
Table 1 - Arguments and return values . 7
Table 2 - EXPRESS built-in constants . 10
Table 3 - Mapping of EXPRESS types to TypeCode values . 54
vi
Foreword
ISO (the International Organization for Standardization) is a worldwide federation of national
standards bodies (ISO member bodies). The work of preparing International Standards is normally
carried out through ISO technical committees. Each member body interested in a subject for which a
technical committee has been established has the right to be represented on that committee.
International organizations, governmental and non-governmental, in liaison with ISO, also take part in
the work. ISO co
...

Questions, Comments and Discussion

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