Previous Table of Contents Next


10.3 The CORBA IDL for the Reflective Interfaces

   This sub clause describes the relevant excerpts of the CORBA IDL for the Reflective module.

10.3.1 Introduction

   The Reflective module starts with forward declarations of the three object types RefObject, RefAssociation, and RefPackage.

   module Reflective {

    interface RefBaseObject; interface RefObject;typedef sequence < RefObject > RefObjectUList;

    interface RefAssociation; interface RefPackage;

10.3.2 Data Types

   Operations on the Reflective interfaces need to identify the elements (e.g., attributes, operations, roles, classes, etc.) that they apply to. Some exceptions have similar requirements. The type DesignatorType is used to denote uses of RefObject with this meaning.

   typedef RefObject DesignatorType;

   Links are expressed as bounded sequences of (two) RefObject values.

   typedef sequence <RefObject, 2> Link;typedef sequence <Link> LinkSet;

   The following type is used to pass multiple CORBA Any values.

   typedef sequence < any > AnyList;

   The ’refVerifyConstraints’ operation uses an instance of ViolationTypeSet to return descriptions of any constraints that do not hold. This type and the ViolationType type are defined below. The fields called ’error_kind,’ ’element_in_error,’ ’extra_info,’ and ’error_description’ of ViolationType are equivalent to fields of the MofError exception; see 9.4, “Exception Framework,? on page 183. The ’object_in_error’ field gives the MOF object (if any) whose state violates the constraint reported. When a Constraint on a DataType is violated, ’object_in_error’ will refer to the MOF object, which has the erroneous DataType instance as an attribute value.

   struct ViolationType {wstring error_kind;RefBaseObject object_in_error; RefObject element_in_error; NamedValueList extra_info; wstring error_description;

   };

   typedef sequence < ViolationType > ViolationTypeSet;

Annex A (normative)