我想在 idl 文件中写一个枚举为 -
module Media
{
enum eSpeed
{
int speed1 = 2000,
int speed2 = 4000,
int speed3 = 8000
};
};
但是 CORBA 不允许在枚举的情况下进行任何值分配。如何解决这个问题?
我想在 idl 文件中写一个枚举为 -
module Media
{
enum eSpeed
{
int speed1 = 2000,
int speed2 = 4000,
int speed3 = 8000
};
};
但是 CORBA 不允许在枚举的情况下进行任何值分配。如何解决这个问题?
IDL 枚举不能被赋予值。通常,我所做的是将 IDL 枚举重新映射到我自己在 C++ 中制作的枚举(可能使用查找表),该枚举在我的应用程序代码中使用它之前具有正确的值。换句话说,例如,服务器实现可能会在 CORBA 调用中接收 IDL 枚举,然后通过表查找将其映射到具有定义值的内部 C++ 枚举,然后将其传递给应用程序代码。
如果您不想这样做,您可以在 IDL 中使用常量而不是枚举:
const long speed1 = 2000;
const long speed2 = 4000;
然后,您将在 IDL 中传递long
而不是eSpeed
作为参数。