CORBA编程基础:IDL映射与应用初始化
1. CORBA::ORB::run()操作
CORBA::ORB::run()操作是阻塞的,它会在以下事件发生时返回:
- 当调用CORBA::ORB::shutdown()操作且参数为FALSE(在C++中为0,在Java中为false)时。由于CORBA::ORB::run()会占用主线程,所以调用shutdown()的时机只能是在操作调用过程中或从子线程调用。
- 当向服务器发送信号时。此时,应安装一个信号处理程序,捕获该信号并以false参数(C++中为0,Java中为false)调用CORBA::ORB::shutdown()。
2. 基本IDL映射(示例1)
2.1 IDL标识符
IDL标识符是由任意长度的ASCII字母、数字和下划线(_)组成的序列,所有字符都有意义。标识符的第一个字符必须是ASCII字母,除非它是转义标识符,转义标识符以下划线开头,后跟一个ASCII字母。
在大小写敏感性方面,有以下规则:
- 同一标识符的每次出现必须使用相同的大小写。
- 如果两个标识符仅大小写不同且出现在同一作用域内,则会发生冲突,冲突的标识符通常会导致编译错误。这些规则确保了IDL标识符可以一致地映射到区分大小写或不区分大小写的编程语言。
为了解决新关键字与现有用户定义标识符冲突的问题,CORBA 2.3规范引入了下划线(_)作为IDL转义字符(在CORBA的后续版本中同样有效)。如果一个标识符以下划线开头,IDL编译器会跳过关键字冲突检查步骤,去掉下划线前缀,并将去掉前缀后的标识符视为普通标识符。例如,将CORBA生命周期
超级会员免费看
订阅专栏 解锁全文
1181

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



