定义 CORBA 联合

您可以在模型中定义 CORBA 联合,并在 .idl 文件中生成这些联合。

过程

要定义 CORBA 联合:

  1. 向构造型为 CORBAModule 包添加新类型或添加构造型为 CORBAInterface 的类。
  2. 对创建的类型打开“功能部件”窗口,然后将“种类”字段设置为 Union。
  3. 对于创建的类型,请将 CORBA::Type::Discriminator 属性的值设置为您将使用的鉴别器的类型,例如 short
  4. 向该类型添加属性(代表联合中的每种数据类型),例如名为 length_short、length_long 和 length_double 的属性。
  5. 对于每个属性,相应地设置属性类型,例如:short 代表 length_short,long 代表 length_long,double 代表 length_double。
  6. 对于每个属性,打开“功能部件”窗口,然后设置属性 CORBA::Attribute::UnionCase 的值。属性的值应该为用于该属性的鉴别器值。 值应该反映为属性 CORBA::Type::Discriminator 指定的类型。请注意,对于您希望用作联合的缺省数据类型的数据类型,您也可以将属性 UnionCase 设置为字符串 default。例如,对于属性 length_short,将 UnionCase 属性的值设置为 1,对于属性 length_long,设置为 2,对于属性 length_double,设置为 default

示例

如果您使用这些步骤中提及的示例值,那么生成的代码与以下代码类似:

    union length switch (short) {
        case 1 :	short length_short;		//## attribute length_short
        case 2 :	long length_long;		//## attribute length_long
        default :	double length_double;		//## attribute length_double
    };

反馈