如何在CORBA中指定枚举字段值

时间:2013-04-12 10:36:12

标签: corba

我想在idl文件中写一个枚举为 -

module Media 
{
enum eSpeed
{
    int speed1 = 2000,
    int speed2 = 4000,
    int speed3 = 8000
};
};

但是在枚举的情况下,CORBA不允许任何值赋值。如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

IDL枚举不能给出值。通常我所做的是将IDL枚举重新映射到我自己在C ++中创建的枚举(可能带有查找表),在我的应用程序代码中使用它之前具有正确的值。换句话说,例如,服务器实现可以在CORBA调用中接收IDL枚举,但随后通过表查找将其映射到具有定义值的内部C ++枚举,然后将其传递给应用程序代码。

如果您不想这样做,可以在IDL中使用常量而不是枚举:

const long speed1 = 2000;
const long speed2 = 4000;

然后,您将在IDL中传递long而不是eSpeed作为参数。