当前位置:首页 > 工业技术
CORBA语言映射
CORBA语言映射

CORBA语言映射PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:(美)OMG编著;韦乐平等编译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2001
  • ISBN:7505367323
  • 页数:570 页
图书介绍:本书是《CORBA技术系列丛书》的第二册。根据OMG1999年6月《CORBA Language Mapping》,由信息产业部电信研究院、北京邮电大学和朗讯科技贝尔实验室的多位专家、教授和工程师共同编译而成。内容包括IDL-Java语言映射、Java-IDL语言映射、IDL-C++语言映射、IDL-C语言映射、IDL-COBOL语言映射、IDL-Ada语言映射和IDL-Smalltalk语言映射。中国工程院院士顾冠群为本书作序。本书可作为高等院校通信与计算机相关专业的教学参考书,以及相关专业软件工程师的实用参考书。CORBA是一种工业标准的中间件,可以用于多重异种环境下的集成与分布式对象编程方面的应用。CORBA采用开放、标准的方式,在网络管理及其应用开发中引入了面向对象的概念和工具以及客户/服务器范例。它具有合并传统应用集成和已有断完善之中,而且已被ITU-T作为一种用于网管的标准中间件技术而采用。在中国引进和提高CORBA技术将大力推进信息产业,特别是电信系统网管技术的水平。
《CORBA语言映射》目录

第1章 IDL到Java语言映射 1

1.1 概述 1

1.1.1 org.omg.包 2

1.1.1.1 允许的修改 2

1.2 名字 3

1.2.1 保留名字 3

1.3 模块的映射 4

1.3.1 例子 4

1.4 基本类型的映射 5

1.4.1 概述 5

1.4.1.1 将来的支持 5

1.4.1.2 IDL Entity 6

1.4.1.3 Java序列化 6

1.4.1.4 Holder类 6

1.4.1.5 使用Java null 11

1.4.2 布尔类型 11

1.4.3 字符类型 12

1.4.4 Octet类型 12

1.4.5 字符串类型 12

1.4.6 整数类型 12

1.4.7 浮点数类型 12

1.4.8 定点类型 12

1.4.9 未来版本的长双精度类型 13

1.5 Helper类 13

1.5.1 用于盒值的Helpers 13

1.5.2 除盒值类型外的Helper类 13

1.5.2.1 值类型生成库的convenience方法 14

1.5.3 举例 14

1.6 常量映射 15

1.6.1 接口中的常量 16

1.6.1.1 举例 16

1.6.2 不在接口中的常量 16

1.6.2.1 举例 16

1.7 枚举类型的映射 17

1.7.1 举例 18

1.8 结构类型的映射 20

1.8.1 举例 20

1.9 联合类型的映射 21

1.9.1 举例 22

1.10 序列类型的映射 24

1.10.1 举例 24

1.11 数组类型的映射 26

1.11.1 举例 27

1.12 接口的映射 28

1.12.1 基本概念 28

1.12.1.1 举例 29

1.12.2 参数传递模式 32

1.12.2.1 举例 33

1.12.3 操作中的上下文参数 34

1.13 值类型的映射 35

1.13.1 用于值类型的Java接口 35

1.13.1.1 ValueBase的接口 35

1.13.1.2 StreamableValue接口 36

1.13.1.3 CustomMarshal接口 36

1.13.1.4 CustomValue接口 37

1.13.1.5 ValueFactory接口 37

1.13.2 Stateful值类型的基本概念 37

1.13.2.1 值类型的继承 38

1.13.3 抽象值类型 39

1.13.4 CORBA::ValueBase 39

1.13.5 例A 39

1.13.6 例B 41

1.13.7 参数传递模式 44

1.13.7.1 举例 45

1.13.8 值生成库和封装 46

1.14 盒值类型 47

1.14.1 一般的盒值Helper接口 47

1.14.2 映射为基本类型的盒值 47

1.14.2.1 基本类型的例子 49

1.14.3 复杂类型 51

1.14.3.1 复杂类型的例子 51

1.15 异常的映射 53

1.15.1 用户定义的异常 54

1.15.1.1 举例 54

1.15.1.2 未知的用户异常 55

1.15.2 系统异常 56

1.15.3 间接异常 58

1.16 Any类型的映射 59

1.17 特定嵌套类型的映射 64

1.17.1 举例 64

1.18 typedef类型的映射 64

1.18.1 简单的IDL类型 64

1.18.2 复杂的IDL类型 65

1.18.2.1 举例 65

1.19 伪对象到Java的映射 65

1.19.1 简介 65

1.19.1.1 伪接口 66

1.19.2 特定异常 66

1.19.3 Environment 67

1.19.4 NamedValue 67

1.19.5 NVList 68

1.19.6 ExceptionList 69

1.19.7 上下文 70

1.19.8 Request 71

1.19.9 TypeCode 72

1.19.10 ORB 78

1.19.10.1 set_delegate 88

1.19.10.2 get_value_def 88

1.19.11 CORBA::Object 88

1.19.12 Principal 90

1.20 服务器方的映射 91

1.20.1 概述 91

1.20.2 实现接口 91

1.20.2.1 PortableServer::Servant的映射 91

1.20.2.2 动态程序框架接口的映射 95

1.20.2.3 程序框架的可移植性 97

1.20.2.4 程序框架的操作 97

1.20.2.5 基于继承的接口实现 97

1.20.2.6 基于授权的接口的实现 98

1.20.3 PortableServer::ServantManager的映射 101

1.20.3.1 Cookie的映射 101

1.20.3.2 ServantManagers和AdapterActivators 101

1.21 Java ORB可移植性接口 102

1.21.1 概述 102

1.21.1.1 设计目标 102

1.21.2 总体结构 102

1.21.2.1 可移植性包 103

1.21.3 Streamable API 103

1.21.4 Streaming API 103

1.21.4.1 输入流方法的语义 110

1.21.4.2 输出流方法的语义 110

1.21.5 可移植根程序和程序框架接口 111

1.21.5.1 根程序/程序框架的结构 111

1.21.5.2 根程序和程序框架类的层次结构 118

1.21.5.3 可移植的ObjectImpl 119

1.21.5.4 InvokeHandler 124

1.21.5.5 Response Handler 125

1.21.5.6 ApplicationException 126

1.21.5.7 RemarshalException 126

1.21.5.8 UnknownException 126

1.21.6 授权根程序 127

1.21.7 Servant 130

1.21.8 仆从的授权 130

1.21.9 ORB初始化 131

1.21.9.1 标准特性 131

1.21.9.2 orb.properties文件 131

1.21.9.3 ORB初始化方法 131

第2章 Java语言到IDL映射 135

2.1 概述 135

2.2 Java的RMI/IDL子集 135

2.2.1 符合RMI/IDL类型一致性的概述 135

2.2.2 基本类型 136

2.2.3 RMI/IDL远程接口 136

2.2.3.1 根程序和远程实现类 137

2.2.4 RMI/IDL值类型 137

2.2.4.1 Java Srting类型 138

2.2.5 RMI/IDL数组 138

2.2.6 RMI/IDL异常类型 138

2.2.7 CORBA对象引用类型 139

2.2.8 IDL实体类型 139

2.3 IDL映射 139

2.3.1 概述 139

2.3.1.1 特殊大小写映射总结 140

2.3.2 Java名字到IDL名字的映射 140

2.3.2.1 将包映射为模块 140

2.3.2.2 与IDL关键字冲突的Java名 140

2.2.2.3 有下划线的Java名 141

2.3.2.4 具有非法IDL标识字符的Java名 141

2.3.2.5 内部类的命名 141

2.3.2.6 重载方法名 141

2.3.2.7 仅大小写不同的名字 142

2.3.2.8 与其他名字冲突的方法名 142

2.3.2.9 引起OMG IDL名字冲突的命名 142

2.3.3 基本类型的映射 142

2.3.4 RMI/IDL远程接口的映射 143

2.3.4.1 java.rmi.Remote的特例 143

2.3.4.2 被继承接口 144

2.3.4.3 属性存取器方法 144

2.3.4.4 方法 145

2.3.4.5 常量 145

2.3.4.6 库ID 145

2.3.4.7 举例 145

2.3.5 RMI/IDL值类型的映射 146

2.3.5.1 继承基类 147

2.3.5.2 继承接口 147

2.3.5.3 方法 147

2.3.5.4 构造方法 147

2.3.5.5 常量 148

2.3.5.6 数据 148

2.3.5.7 库ID 149

2.3.5.8 无writeObject的例子 149

2.3.5.9 有writeObject的例子 150

2.3.5.10 映射到java.lang.String 151

2.3.5.11 映射到java.lang.Class 151

2.3.6 RMI/IDL数组的映射 151

2.3.6.1 防止盒化序列类型的重新定义 152

2.3.6.2 数组实例 152

2.3.7 RMI/IDL异常的映射 153

2.3.7.1 IDL值类型 154

2.3.7.2 IDL异常 154

2.3.7.3 引用到RML/IDL异常的映射 154

2.3.7.4 举例 154

2.3.8 CORBA对象引用类型的映射 155

2.3.9 IDL实体类型的映射 156

2.3.10 不符合一致性的类和接口的映射 157

2.3.10.1 java.io.Serializable和java.io.Externalizable 157

2.3.10.2 java.lang.Object映射 158

2.3.10.3 继承接口 158

2.3.10.4 方法和常量 158

2.3.10.5 举例 158

2.3.11 抽象接口映射 159

2.3.11.1 继承接口 159

2.3.11.2 方法和常量 159

2.3.11.3 举例 159

2.3.12 映射实现类 160

2.3.12.1 举例 160

2.4 实时运行的问题 161

2.4.1 值对象的子类 161

2.4.2 远程引用根程序的定位 161

2.4.3 限定 161

2.4.4 为远程分配Tie 162

2.4.5 超大字符支持 162

2.4.6 根程序和Tie的定位 162

2.4.7 RMI异常到CORBA系统异常的映射 163

2.4.8 CORBA系统异常到RMI异常的映射 163

2.4.8.1 UnknownExceptionInfo服务上下文的映射 164

2.4.9 代码下载 164

2.4.9.1 定义 164

2.4.9.2 Codebase的选择 165

2.4.9.3 Codebase的传输 165

2.4.9.4 codebase的存取 165

2.4.9.5 codebase的用法 166

2.4.10 定制封装格式 167

2.4.11 封装RMI/IDL数值 168

2.4.12 运行时间限制 168

2.4.12.1 共享的引用对象 168

2.4.12.2 分布式垃圾收集 168

2.4.12.3 限定 168

2.5 可移植性接口 169

2.5.1 可移植性API 169

2.5.1.1 Tie 169

2.5.1.2 Stub 170

2.5.1.3 ValueHandler 171

2.5.1.4 Util 174

2.5.1.5 附加的可移植性API 176

2.5.2 生成类 176

2.5.2.1 根程序类 176

2.5.2.2 本地根程序 178

2.5.2.3 Tie类 179

2.5.3 API实现的可置换性 181

2.5.3.1 StubDelegate 181

2.5.3.2 UtilDelegate 182

2.5.3.3 PortableRemoteObjectDelegate 183

2.5.3.4 指派机制 184

2.6 应用程序接口 184

2.6.1 ProtableRemoteObject 185

2.7 生成的IDL文件结构 186

2.7.1 Java定义 189

2.7.2 生成的OMG IDL定义 189

第3章 IDL到C++语言映射 193

3.1 预备信息 194

3.1.1 概述 194

3.1.1.1 关键的设计决定 194

3.1.1.2 一致性 194

3.1.1.3 C++实现要求 194

3.1.1.4 C数据格式安排的兼容性 194

3.1.1.5 无实现描述 195

3.1.2 作用域的名称 195

3.1.3 C++类型大小的要求 196

3.1.4 CORBA模块 196

3.2 模块的映射 196

3.3 接口的映射 197

3.3.1 对象引用类型 198

3.3.2 扩展对象引用 198

3.3.3 对象引用操作 199

3.3.4 限定对象引用 200

3.3.5 Nil对象引用 201

3.3.6 对象引用Out参数 201

3.3.7 接口映射举例 202

3.4 常量的映射 204

3.4.1 超大字符和超大字符串常量 205

3.4.2 定点常量 205

3.5 基本数据类型的映射 206

3.6 枚举型的映射 207

3.7 字符串类型的映射 208

3.8 超大字符串类型的映射 211

3.9 结构化类型的映射 211

3.9.1 T_var类型 212

3.9.2 T_out类型 216

3.10 结构类型的映射 217

3.11 固定类型的映射 220

3.11.1 固定的T_var和T_out类型 223

3.12 联合类型的映射 223

3.13 序列类型的映射 228

3.13.1 序列举例 232

3.13.2 使用“release”构造函数参数 233

3.13.3 额外的内存管理功能 234

3.13.4 T_var序列和T_out类型 234

3.14 数组类型的映射 235

3.15 typedef的映射 237

3.16 Any类型的映射 239

3.16.1 处理类型的值 239

3.16.2 到Any的插入值 239

3.16.3 从Any提取值 243

3.16.4 区别boolean、octet、char、wchar、限定字符串和限定超大字符串 245

3.16.5 对象的扩展 249

3.16.6 抽象接口的扩展 250

3.16.7 处理Untyped值 250

3.16.8 TypeCode替换 251

3.16.9 Any构造函数、析构函数和指定操作符 252

3.16.10 Aay类 253

3.16.11 Any_var类 253

3.17 valuetype的映射 253

3.17.1 valuetype的数据成员 254

3.17.2 构造函数、赋值操作符和析构函数 256

3.17.3 valuetype操作 256

3.17.4 valuetype举例 257

3.17.5 ValueBase和引用计数 258

3.17.5.1 CORBA模块的补充 260

3.17.6 引用计数混合类 260

3.17.7 值盒 261

3.17.7.1 底层盒类型的参数传递 261

3.17.7.2 基类、枚举和对象引用 262

3.17.7.3 结构类型 263

3.17.7.4 字符串和超大字符串类型 265

3.17.7.5 联合、序列、固定和Any类型 267

3.17.7.6 数组类型 268

3.17.8 抽象的valuetype 270

3.17.9 valuetype的继承 270

3.17.10 valuetype生成库 271

3.17.10.1 ValueFactoryBase类 272

3.17.10.2 ValueFactoryBase_var类 273

3.17.10.3 类型特定的值生成库 275

3.17.10.4 拆包特性 276

3.17.11 定制打包 277

3.17.12 另一个valuetype范例 277

3.17.13 valuetype的结构成员 278

3.18 抽象接口的映射 279

3.18.1 抽象接口库 279

3.18.2 客户端的映射 280

3.19 异常类型的映射 281

3.19.1 UnknownUserException 284

3.19.2 异常的Any插入和抽取 285

3.20 操作和属性的映射 285

3.21 操作的隐式变元 286

3.22 变元传递的考虑 286

3.22.1 操作参数和参数说明 290

3.23 伪对象到C++的映射 293

3.24 使用 294

3.25 映射规则 294

3.26 与C PIDL映射的关系 295

3.27 Environment 296

3.27.1 Environment接口 296

3.27.2 Environment C++类 296

3.27.3 与C-PIDL的区别 297

3.27.4 内存管理 297

3.28 NamedValue 297

3.28.1 NamedValue接口 297

3.28.2 NamedValue C++类 297

3.28.3 与C-PIDL的区别 298

3.28.4 内存管理 298

3.29 NVList 298

3.29.1 NVList接口 299

3.29.2 NVList C++类 299

3.29.3 与C-PIDL的区别 300

3.29.4 内存管理 300

3.30 请求 300

3.30.1 Request接口 302

3.30.2 Request C++类 303

3.30.3 与C-PIDL的区别 304

3.30.4 内存管理 305

3.31 上下文 305

3.31.1 Context接口 305

3.31.2 Context C++类 306

3.31.3 与C-PIDL的区别 306

3.31.4 内存管理 306

3.32 TypeCode 307

3.32.1 TypeCode接口 307

3.32.2 TypeCode C++类 307

3.32.3 与C-PIDL的区别 308

3.32.4 内存管理 308

3.33 ORB 308

3.33.1 ORB接口 309

3.33.2 ORB C++类 310

3.33.3 与C-PIDL的区别 311

3.33.4 ORB初始化操作的映射 311

3.34 对象 312

3.34.1 Object接口 312

3.34.2 Object C++类 313

3.35 服务器端映射 314

3.36 接口的实现 315

3.36.1 PortableServer::Servant的映射 315

3.36.2 仆从的引用内部计数 317

3.36.3 ServantBase_var类 317

3.36.4 仆从内存管理的考虑 319

3.36.5 程序框架操作 321

3.36.6 基于继承的接口的实现 322

3.36.7 基于授权的接口的实现 324

3.37 实现操作 328

3.37.1 对象的程序框架衍生 329

3.38 DSI到C++的映射 330

3.38.1 ServerRequest到C++的映射 330

3.38.2 处理操作参数和结果 331

3.38.3 PortableServer动态实现程序的映射 331

3.39 PortableServer函数 332

3.40 PortableServer::ServantManager的映射 332

3.40.1 Cookie的映射 332

3.40.2 ServantManagers和AdapterActivators 333

3.40.3 服务器端对抽象接口的映射 333

3.41 CORBA的C++定义 334

3.41.1 初等类型 334

3.41.2 String_var和String_out类 335

3.41.3 WString_var和WString_out 336

3.41.4 Fixed类 336

3.41.5 Any类 337

3.41.6 Any_var类 341

3.41.7 Exception类 342

3.41.8 SystemException类 342

3.41.9 UserException类 343

3.41.10 UnknownUserException类 343

3.41.11 release和is_nil 343

3.41.12 Object类 344

3.41.13 Environment类 345

3.41.14 NamedValue类 345

3.41.15 NVList类 346

3.41.16 ExceptionList类 346

3.41.17 ContextList类 347

3.41.18 Request类 347

3.41.19 Context类 348

3.41.20 TypeCode类 348

3.41.21 ORB类 349

3.41.22 ORB初始化 351

3.41.23 普通T_out类型 351

3.42 C++专用语的替代映射 352

3.42.1 无命名空间 352

3.42.2 无异常的处理 352

3.43 C++关键字 354

第4章 IDL到C语言映射 355

4.1 语言映射的要求 356

4.1.1 基本数据类型 356

4.1.2 构造数据类型 356

4.1.3 常量 356

4.1.4 对象 357

4.1.5 操作的调用 357

4.1.6 异常 357

4.1.7 属性 358

4.1.8 ORB接口 358

4.2 限域名字 358

4.3 接口的映射 359

4.4 继承名和操作名 361

4.5 属性的映射 361

4.6 常量的映射 363

4.7 基本数据类型的映射 363

4.8 构造类型的映射的考虑 364

4.9 结构类型的映射 365

4.10 联合类型的映射 365

4.11 序列类型的映射 366

4.12 字符串的映射 370

4.13 超大字符串的映射 371

4.14 固定类型的映射 371

4.15 数组的映射 373

4.16 异常类型的映射 373

4.17 操作的隐含变元 374

4.18 对有空变元表的函数的解释 375

4.19 变元传递的考虑 375

4.20 返回值传递的考虑 376

4.21 变元/结果传递的总结 377

4.22 异常的处理 379

4.23 方法程序的参数说明 382

4.24 包含文件 382

4.25 伪对象 383

4.25.1 ORB操作 383

4.26 对象实现的映射 384

4.26.1 专门操作的细节 384

4.26.2 PortableServer函数 384

4.26.3 PortableServer::ServantLocator::Cookie的映射 385

4.26.4 仆从映射 386

4.26.5 接口的程序框架 387

4.26.6 仆从结构的初始化 389

4.26.7 应用程序的仆从 391

4.26.8 方法的参数说明 393

4.27 DSI到C语言的映射 393

4.27.1 ServerRequest到C语言的映射 394

4.27.2 动态实现例程到C语言的映射 395

4.28 ORB的初始化操作 398

第5章 IDL到COBOL语言映射 401

5.1 概述 402

5.2 IDL类型到COBOL的映射 402

5.2.1 IDL标识符到COBOL的映射 402

5.2.1.1 限域名字 402

5.2.1.2 IDL标识符到COBOL名字的映射 403

5.2.1.3 IDL标识符到COBOL字面量的映射 403

5.3 接口映射 404

5.3.1 对象引用 404

5.3.2 作为变元的对象引用 404

5.4 基本数据类型的映射 405

5.4.1 基本的整数类型 405

5.4.2 布尔型 406

5.4.3 枚举 406

5.5 any类型的映射 407

5.5.1 any类型映射 407

5.5.2 any类型操作 407

5.5.2.1 客户端any类型处理 407

5.5.2.2 对象实现的any类型处理 408

5.6 固定类型的映射 408

5.7 结构类型的映射 409

5.8 联合类型的映射 409

5.9 序列类型的映射 410

5.9.1 序列映射 411

5.9.2 序列的操作 411

5.9.2.1 客户端序列的操作 411

5.9.2.2 对象实现的序列处理 412

5.9.2.3 嵌套序列 412

5.10 字符串的映射 412

5.10.1 限界字符串的映射 413

5.10.2 非限界字符串的映射 413

5.10.2.1 客户端非限界字符串的处理 414

5.10.2.2 对象实现的非限界字符串处理 414

5.10.3 Wstring的映射 414

5.11 数组的映射 415

5.12 异常类型的映射 415

5.12.1 异常的映射 415

5.13 属性的映射 416

5.14 伪对象 416

5.15 辅助数据类型例程 416

5.15.1 概述 416

5.15.2 ANYGET 417

5.15.3 ANYFREE 418

5.15.4 ANYSET 419

5.15.5 OBJDUP 420

5.15.6 OBJREL 420

5.15.7 OBJTOSTR 421

5.15.8 SEQALLOC 421

5.15.9 SEQFREE 422

5.15.10 SEQGET 423

5.15.11 SEQLEN 424

5.15.12 SEQMAX 424

5.15.13 SEQSET 425

5.15.14 STRFREE 426

5.15.15 STRGET 426

5.15.16 STRLEN 427

5.15.17 STRSET和STRSETP 428

5.15.18 STRTOOBJ 428

5.15.19 TYPEGET 429

5.15.20 TYPESET 430

5.16 动态COBOL映射的基本原理 431

5.16.1 概述 431

5.16.2 接口的映射 431

5.16.3 IDL生成的COBOL COPY文件内容 431

5.16.3.1 操作名字块 432

5.16.3.2 接口描述块 432

5.16.3.3 操作参数块 432

5.16.3.4 异常块 433

5.16.3.5 接口COPY文件的例子 433

5.16.4 全局CORBA COPY文件 435

5.16.4.1 COA-REQUEST-INFO 435

5.16.4.2 ORB-STATUS-INFORMATION 435

5.16.5 属性的映射 436

5.16.6 类型定义和常数的映射 436

5.16.7 异常类型的映射 437

5.17 通用辅助函数 438

5.17.1 概述 438

5.17.2 ORBREG 438

5.17.3 ORBSTAT 439

5.18 对象调用 440

5.18.1 概述 440

5.18.2 ORBEXEC 440

5.19 COBOL对象适配器 441

5.19.1 概述 441

5.19.2 对象实现的初始化 442

5.19.3 对象实现调度程序 442

5.19.4 对象实现操作 443

5.20 COBOL对象适配器函数 444

5.20.1 概述 444

5.20.2 COAERR 444

5.20.3 COAGET 445

5.20.4 COAINIT 446

5.20.5 COAPUT 447

5.20.6 COAREQ 448

5.20.7 OBJNEW 449

5.21 特殊类型的COBOL映射基本原理 450

5.21.1 内存管理 450

5.21.2 MEMALLOC 451

5.21.3 MEMFREE 451

5.21.4 属性的映射 452

5.21.5 类型定义的映射 452

5.21.6 常量的映射 452

5.21.7 异常类型的映射 453

5.22 特殊类型的COBOL映射对象调用 453

5.22.1 操作的隐含变元 453

5.22.2 变元传递的考虑 454

5.22.2.1 in参数 454

5.22.2.2 inout参数 454

5.22.2.3 out和返回参数 455

5.22.3 变元/结果传递的总结 455

5.23 内存管理 456

5.23.1 参数存储空间责任的总结 456

5.24 异常的处理 458

5.24.1 把异常细节传回给调用程序 458

5.24.2 异常处理函数 459

5.24.2.1 CORBA-exception-set 459

5.24.2.2 CORBA-exception-id 459

5.24.2.3 CORBA-exception-value 459

5.24.2.4 CORBA-exception-free 460

5.24.2.5 CORBA-exception-as-any 460

5.24.3 如何处理CORBA-Exception参数的例子 460

5.25 特殊类型的COBOL服务器映射 462

5.25.1 与操作有关的细节 462

5.25.2 PortableServer函数 462

5.25.3 PortableServer::ServantManager::Cookie的映射 463

5.25.4 仆从映射 464

5.25.5 接口的程序框架 465

5.25.6 仆从结构的初始化 466

5.25.7 应用程序的仆从 469

5.25.8 方法的参数说明 470

5.25.9 动态程序框架接口到COBOL的映射 471

5.25.9.1 ServerRequest到COBOL的映射 471

5.25.9.2 操作 472

5.25.9.3 ctx 472

5.25.9.4 变元 472

5.25.9.5 set-result 473

5.25.9.6 set-exception 473

5.25.10 动态实现例程到COBOL的映射 473

5.26 COBOL 85的扩展 476

5.26.1 概述 476

5.26.2 无类型指针和指针控制 476

5.26.2.1 无类型指针 476

5.26.2.2 指针控制 476

5.26.3 浮点 477

5.26.4 常量 477

5.26.5 类型定义 477

第6章 IDL到Ada语言映射 479

6.1 简介 480

6.1.1 Ada实现需求 480

6.1.2 调用惯例 480

6.1.3 内存管理 480

6.1.4 任务处理 480

6.1.5 Ada类型大小需求 481

6.2 映射方法总结 481

6.2.1 接口和标记类型 481

6.2.1.1 客户方 481

6.2.1.2 前向声明 482

6.2.1.3 服务器方 482

6.2.2 操作 482

6.2.3 属性 482

6.2.4 继承关系 483

6.2.5 数据类型 483

6.2.6 异常 483

6.2.7 名字和作用域 484

6.3 词法映射 484

6.3.1 标识符的映射 484

6.3.2 字面量的映射 485

6.3.2.1 整型字面量 485

6.3.2.2 浮点型字面量 485

6.3.2.3 固定小数点字面量 486

6.3.2.4 字符型字面量 486

6.3.2.5 超大字符字面量 486

6.3.2.6 字符串型字面量 487

6.3.2.7 超大字符串字面量 487

6.3.2.8 枚举字面量 487

6.3.3 常量表达式的映射 487

6.3.3.1 操作符的映射 488

6.4 IDL到Ada的名字映射 489

6.4.1 标识符 489

6.4.2 限域名字 489

6.5 IDL文件的映射 489

6.5.1 文件包含 489

6.5.2 注释 490

6.5.3 其他的预处理 490

6.5.4 全局名字 490

6.6 CORBA子系统 490

6.7 映射模块 491

6.8 客户方特有的接口映射 491

6.8.1 对象引用类型 491

6.8.2 接口和继承 492

6.8.3 前向声明映射 492

6.8.4 对象引用操作 493

6.8.5 对象引用的扩展 493

6.8.6 对象引用的限制 494

6.8.7 空对象引用 494

6.8.8 类型对象 495

6.8.9 接口映射举例 495

6.9 基本类型的映射 499

6.10 固定类型的映射 501

6.11 布尔型的映射 501

6.12 枚举类型的映射 501

6.13 结构类型的映射 502

6.14 联合类型的映射 503

6.15 序列类型的映射 504

6.16 字符串类型的映射 506

6.17 超大字符串类型的映射 507

6.18 数组的映射 508

6.19 常量的映射 508

6.20 typedef的映射 509

6.21 TypeCode的映射 510

6.22 any类型的映射 511

6.22.1 已知类型的处理 511

6.22.2 未知类型的处理 511

6.23 异常类型的映射 512

6.23.1 异常标识符 512

6.23.2 异常的成员 513

6.23.2.1 标准异常 513

6.23.2.2 与特定应用相关的异常 514

6.23.2.3 实例应用 515

6.24 客户方特有的属性映射 517

6.25 客户方特有的操作映射 517

6.26 参数传递的考虑 518

6.27 任务的考虑 518

6.28 伪对象的Ada映射 518

6.28.1 映射规则 519

6.28.2 对象语义 519

6.29 NamedValue 519

6.30 NVList 520

6.31 请求 520

6.32 上下文 521

6.33 TypeCode 522

6.34 ORB 525

6.35 对象 529

6.36 Current对象 531

6.37 Policy对象 531

6.38 DomainManager 532

6.39 ConstructionPolicy 532

6.40 服务器方映射总则 533

6.41 接口的实现 533

6.42 操作和属性的实现 533

6.43 服务器方映射举例 534

6.44 PortableServer 535

6.45 PortableServer.AdapterActivator 536

6.46 PortableServer.Current 536

6.47 PortableServer.IdAssignmentPolicy 537

6.48 PortableServer.IdUniquenessPolicy 537

6.49 PortableServer.ImplicitActivationPolicy 537

6.50 PortableServer.LifeSpanPolicy 538

6.51 PortableServer.POA 538

6.52 PortableServer.POAManager 543

6.53 PortableServer.RequestProcessingPolicy 544

6.54 PortableServer.ServantActivator 544

6.55 PortableServer.ServantLocator 545

6.56 PortableServer.ServantManager 545

6.57 PortableServer.ServantRetentionPolicy 546

6.58 PortableServer.ThreadPolicy 546

附录 Ada术语词汇表 546

第7章 IDL到Smalltalk语言映射 549

7.1 映射总结 549

7.2 关键的设计思想 550

7.2.1 风格的一致性、实现的灵活性和可移植性 551

7.3 实现的限制 551

7.3.1 避免名字空间冲突 551

7.3.2 对OMG IDL类型的限制 552

7.4 Smalltalk实现的要求 552

7.5 名字到Smalltalk标识符的转换 553

7.6 接口的映射 554

7.7 内存的使用 554

7.8 对象的映射 554

7.9 操作的调用 554

7.10 属性的映射 555

7.10.1 常量的映射 556

7.11 基本数据类型的映射 556

7.11.0.1 short 557

7.11.0.2 long 557

7.11.0.3 long long 557

7.11.0.4 unsigned short 557

7.11.0.5 unsigned long 557

7.11.0.6 unsigned long long 557

7.11.0.7 float 557

7.11.0.8 double 557

7.11.0.9 long double 557

7.11.0.10 char 558

7.11.0.11 wchar 558

7.11.0.12 boolean 558

7.11.0.13 octet 558

7.12 Any类型的映射 558

7.13 枚举类型的映射 558

7.14 结构类型的映射 559

7.15 固定类型的映射 560

7.16 联合类型的映射 560

7.16.1 隐含联编 560

7.16.2 显式联编 561

7.17 序列类型的映射 561

7.18 字符串类型的映射 561

7.19 超大字符串类型的映射 562

7.20 数组类型的映射 562

7.21 异常类型的映射 562

7.22 操作的映射 562

7.23 操作的隐含变元 563

7.24 变元传递的考虑 563

7.25 异常的处理 563

7.26 异常值 564

7.26.1 CORBAExceptionValue协议 565

7.26.2 伪对象映射概述 566

7.27 CORBA::Request 566

7.28 CORBA::Context 567

7.29 CORBA::Object 567

7.30 CORBA::ORB 568

7.31 CORBA::NamedValue 569

7.32 CORBA::NVList 570

附录 词汇表 570

返回顶部