参考《Ice 分布式程序设计》马维达译,冯立彬的博客
Ice文件定义
:
module demo {
interface Printer {
void printString(string s);
};
};
在命令行终端,,使用如下命令编译ice文件:slice2java 。会在目录下面生成一个demo文件夹,里面生成了一些java文件,如下图示:
类图结构
这些文件的类图结构如下:
-------------------------------------------------------------
文件说明
这里对生成的一些文件做些解释,分为两部份,服务端类文件及客户端类文件:
服务器文件
<interface-name>.java
这个源文件声明在ICE文件中定的接口名称的Java接口,如这里是Printer。
_<interface-name>
_<interface-name>
这两个接口文件都会被接口文件_<interface-name>.java继承。
这是两个定义操作的接口文件,每个接口文件中定义了一个操作实现,定义的操作与Slice接口中定义的操作相一致,_PrinterOperationsNC中操作:void printString(String s),只是在_<interface-name>“ __current”,_PrinterOperations中的操作:void printString(String s, __current),这个参数的作用是可以允许我们访问“正在执行的请求”和“服务器中的操作的实现”等信息,通过它可以访问如下对象:
1、adapter
通过adapter 成员,你可以访问负责分派当前请求的对象适配器。通过适配器,你又可以访问它的通信器(municator 操作)。
2、id
id 成员提供当前请求的对象标识。如:
c
idCopy = new ();//new一个对象标示符idCopy对象
= ;//通过Current获取当前请求的servant对象标示符的name
= ;//对象标示符的category
每个Ice 对象都有一个唯一的对象标识。对象标识是用于把一个对象与其他所有对象区别开来的标识值。Ice 对象模型假定对象标识是全局唯一的,也就是说,在一个Ice 通信域中,不会有两个对象具有相同的对象标识。对象标示Identity只有两个成员,name和category成员。
3、facet
通过facet 成员,你可以访问请求的facet 。
4、operation
operation 成员含有正在被调用的操作的名字。注意,这个操作名可
能是Ice::Obje
slice2java编译Printer.ice生成文件说明 来自淘豆网www.taodocs.com转载请标明出处.