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