IDL基础

IDL 基础

IDL 模块和接口

在任何项目中(亦或名字空间中)都可能存在大量的 CORBA 对象,如果所有这些对象需要有唯一的名字那么一定会有名字空间冲突。所以 IDL 允许定义模块(module),模块指定一个独立的名字空间,类似于 C++ 的名字空间的功能性。现在对于任何接口都可以指定模块,就象下面例子展示的那样:

module FruitsBasket {
            interface Apple {};
            interface Orange {};
            };
            

在这里,我们在 FruitsBasket 模块中定义了两个对象: Apple 和 Orange。如果我们要从其他模块中引用一个对象,我们必须给出完全的对象引用,例如,从 VegetablesBasket 模块中引用  Apple 要这样做:FruitsBasket::Apple。

也可能重新打开同一个模块来增加接口定义:下面的例子严格的等价于上一个。

module FruitsBasket {
            interface Apple {};
            };
            module FruitsBasket {
            interface Orange {};
            };
            

IDL象 C++ 一样也有预编译宏指令(directive): 支持 #include 和 #pragma (这些宏指令由 idl-compiler 展开)。 #include 同在 C/C++ 中有类似的语义。允许你出于清晰的目的而把在同一个模块中的不同的接口分隔在不同的文件中。

/* 这是一个 C 式样的注释 */
            // 这是一个 C++ 式样的注释 : 两者都有效
            // 这些代码在 apple.idl 文件中
            #include "orange.idl"
            module FruitsBasket
            interface Apple {};
            };
            
// 这些代码在 orange.idl 文件中
            module FruitsBasket
            interface Orange {};
            };
            

转载于:https://www.cnblogs.com/kaikaile/archive/2008/09/23/1296756.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值