CORBA开发中的对象引用与内存管理全解析
1. 命名冲突与伪IDL
在某些情况下,会出现命名冲突的问题。例如,在特定的继承结构中,若类型 A1::T 在 A1 的作用域中声明,类型 A2::T 在 A2 的作用域中声明,当 A1 和 A2 被继承到接口 B 中时,就会发生命名冲突。解决这种歧义的方法是,在 B 中无论何时引用 A1::T 和 A2::T ,都使用完全限定名。
CORBA规范需要为构成ORB核心的许多对象指定API,像ORB对象和POA对象就属于这个基本API。通常,这些对象的代码会以库(C++ ORBs)或类包(Java ORBs)的形式提供。然而,CORBA面临一个独特的难题,即它必须同时为多种语言定义其基本API。
为了避免为CORBA支持的每种语言都费力重写核心文档,CORBA的设计者利用IDL以一种与语言无关的格式来指定API。因此,像ORB和POA这样的对象声明采用了与IDL非常相似的形式,但实际上它并不是真正的IDL,而是伪IDL(PIDL)。
IDL和PIDL之间存在许多显著差异:
- PIDL接口并不代表CORBA对象,对PIDL对象的调用处理方式不同(通常作为普通函数调用)。
- PIDL对象通常是本地对象,而非远程对象。
- PIDL操作和属性不必遵循特定语言映射的常规规则。
- PIDL
超级会员免费看
订阅专栏 解锁全文
386

被折叠的 条评论
为什么被折叠?



