1 / 46
文档名称:

高级软件工程(idl与orb接口).ppt

格式:ppt   大小:83KB   页数:46页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

高级软件工程(idl与orb接口).ppt

上传人:相惜 2022/5/2 文件大小:83 KB

下载得到文件列表

高级软件工程(idl与orb接口).ppt

相关文档

文档介绍

文档介绍:4、OMG IDL
OMG IDL
IDL特点
IDL规范
模块
接口
提前声明
常量
类型声明
序列
any 类型
属性
户之间的边界
接口的不足之处:未显示代码之间的关系
OMG IDL
精选课件
例子:
Interface Account {
//Account definitions
}
Interface Cheking: Account {
//Inherits all Account definitions
//adds Checking definitions
};
Interface Saving: Account {
//Inherits all Account definitions
//adds Savings definitions
};
IDL 支持多继承
OMG IDL
精选课件
(3) IDL Forward
用于声明 一个未定义的接口
例子:
interface Employee; //forward declaration
struct EmployeeContacts {
Employee supervisor;
Employee secretary;
Employee union_shop_leader;
}
interface Employee {
attribute EmployeeContacts contacts;
typedef string JobTitle;
// other definitions
}
OMG IDL
精选课件
(5) IDL 类型声明
(4) IDL 常量 (Constants)
IDL中类型定义的目的在于
支持操作签名的强类型检查
类型声明包括:
IDL中特殊类型的重命名
创建用户定义的类型
例如:
枚举
结构
数组
序列
联合 等
OMG IDL
精选课件
例子:
typedef unsigned long PhoneNumber;
typedef string GuestName, Address;
enum ChargeCard {MasterCard, Visa, AmericanExpress};
struct GuestRecord {
GuestName name;
Address address;
PhoneNumber number;
ChargeCard card_kind;
unsigned long card_number, expiration;
};
typedef sequence<GuestRecord> GuestList;
OMG IDL
精选课件
typedef struct Employeestruct {
string name;
Address address;
unsigned long social_security_number;
} EmployeeRecord;
typedef EmployeeRecord Employee[100];
enum PersonKind {A_GUEST, AN_EMPLOYEE,AN_OTHER};
cunion Person switch (PersonKind) {
case A_GUEST:
GuestRecord guest_record;
case AN_EMPLOYEE
EmployeeRecord employee_record;
default: string description;
};
OMG IDL
精选课件
(6) IDL序列 (Sequence)
序列是IDL特有的特殊数据类型
其本质上是变长数组
下面的例子通过IDL向C语言的映射
显示了序列的实现方式
IDL:
typedef sequence<long> LongSeq;
struct Automobile {
string make, model;
unsigned short year;};
typedef sequence<Automobile> AutomobileSeq;
OMG IDL
精选课件
C:
typedef struct {
CORBA_unsigned_long _maximum;
CORBA_unsigned_long _length