CONTENTS

�1���� Scope
�2���� References
�3���� Abbreviations
�4���� Definitions
�5���� Foundations and rules
������� 5.1���� Definitions and conventions
����������������� 5.1.1���� Definitions
����������������� 5.1.2���� Graphical conventions
������� 5.2 ����Naming and scoping
������� 5.3���� Interface template, object template and object group template separation and sharing
����������������� 5.3.1���� Data types
����������������� 5.3.2���� Operations
����������������� 5.3.3���� Flows
����������������� 5.3.4���� Interface templates
����������������� 5.3.5���� Object templates
����������������� 5.3.6���� Scoping rules
������� 5.4���� Behaviour
������� 5.5���� Inheritance
����������������� 5.5.1���� Introduction and motivation
����������������� 5.5.2���� Definitions
����������������� 5.5.3���� Inheritance in construct declarations
�6���� Specification of ITU-ODL
������� 6.1���� Type and constant declaration
����������������� 6.1.1���� Structure
����������������� 6.1.2���� Example of type and constant declarations
������� 6.2���� Interface template
����������������� 6.2.1���� Structure
����������������� 6.2.2���� Interface template inheritance
����������������� 6.2.3���� Interface template behaviour specification
����������������� 6.2.4���� Operational interface signature
����������������� 6.2.5���� Operational interface attributes
����������������� 6.2.6���� Stream (flow) signature
����������������� 6.2.7���� Example of interface template declaration
������� 6.3���� Object template
����������������� 6.3.1���� Structure
����������������� 6.3.2���� Object template inheritance
����������������� 6.3.3���� Object template behaviour specification
����������������� 6.3.4���� Required interface templates
����������������� 6.3.5���� Supported interface templates
������� ����������6.3.6���� Object template initialization specification
����������������� 6.3.7���� Example of object template declaration
������� 6.4���� Object group template
����������������� 6.4.1���� Structure
����������������� 6.4.2���� Object group template inheritance
����������������� 6.4.3���� Object group template predicate specification
����������������� 6.4.4���� Member object templates and group templates
����������������� 6.4.5���� Contracts
����������������� 6.4.6���� Example of group template declaration
Annex A � BNF
������� A.1���� Compliance
������� A.2���� Lexical conventions
������� A.3���� Keywords
������� A.4���� Extended BNF notation
������� A.5���� Syntax
����������������� A.5.1���� Module syntax
����������������� A.5.2���� Group syntax
� ����������������A.5.3���� Object syntax
����������������� A.5.4���� Interface syntax
����������������� A.5.5���� (Operational) interface syntax
����������������� A.5.6���� (Stream) interface syntax
����������������� A.5.7���� Supporting definition syntax
Annex B � Mapping to SDL and ASN.1
������� B.1���� Motivation
������� B.2���� Basic requirements
������� B.3���� Structure
������� B.4���� Scoped names
������� B.5���� Module mapping
������� B.6���� Interface template, operation, flow and attribute mapping
������� B.7���� Interface template inheritance
������� B.8���� Mapping for object templates
������� B.9���� Mapping for object group templates
������ B.10���� Mapping for constants
������ B.11���� Mapping for basic data types
������ B.12���� Mapping for constructed data types
���������������� B.12.1���� Mapping for structure types
���������������� B.12.2���� Mapping for union
���������������� B.12.3���� Mapping for enumeration
���������������� B.12.4���� Mapping for sequence types
���������������� B.12.5�� ��Mapping for strings
���������������� B.12.6���� Mapping for arrays
������ B.13���� Mapping for exceptions
������ B.14���� Additional definitions
Annex C � Mapping to C++
������� C.1���� Motivation
������� C.2���� Basic requirements
������� C.3���� Structure
������� C.4���� Scoped names
������� C.5���� Module mapping
������� C.6���� Interface template, operation, flow and attribute mapping
����������������� C.6.1���� Behaviour and usage clauses
����������������� C.6.2���� Flows
����������������� C.6.3���� Interface template inheritance
������� C.7���� Mapping for object templates
����������������� C.7.1���� Required interface specification
����������������� C.7.2���� Supported interface specification
����������������� C.7.3���� Initialization specification
����������������� C.7.4���� Inheritance
����������������� C.7.5���� Example
������� C.8���� Mapping for group templates
������� C.9���� Mapping for constants
������ C.10���� Mapping for basic data types
������ C.11���� Mapping for constructed data types
� �����C.12���� Mapping for exceptions
Appendix I � Quality of service
������� I.1���� Motivation
������� I.2���� Syntax
������� I.3���� Example
������� I.4���� Mapping to SDL
Appendix II � Comparison of ITU-ODL with ODP-IDL and TINA-ODL
������ II.1���� ITU-ODL objective vs. ODP-IDL objective
������ II.2���� Object model
������ II.3���� ITU-ODL syntax vs. ODP-IDL syntax
���������������� II.3.1���� General syntax
���������������� II.3.2���� Interface syntax
���������������� II.3.3���� Operation syntax