三、ICE服务——slice描述文件

Slice(Specification Language for Ice)是一种用于使对象接口与其实现相分离的基础性抽象机制。 Slice 在客户与服务器之间建立合约,描述应用所使用的各种类型及对象接口。这种描述与实现语言无关,所以编写客户所用的语言是否与编写服务器所用的语言相同,这没有什么关系。
Slice 定义由编译器编译到特定的实现语言 。编译器把与语言无关的定义翻译成针对特定语言的类型定义和 API。开发者使用这些类型和 API 来提供应用功能,并与 Ice 交互。用于各种实现语言的翻译算法称为语言映射
Ice 目前定义了 C++ 和 Java 的语言映射
因为 Slice 描述的是接口和类型 (不是实现),它是一种纯粹的描述性语言;你无法用 Slice 编写可执行语句

  slice的一些特点:

文件命名和文件格式
预处理
定义次序
注释  支持 C++注释模式
关键字 标识符
slice 支持的基本数据类型
接口 操作 以及异常定义
模块
Slice 编译器

 ice文件例子

#include "pushcommon.ice"
[["java:package:segi.common"]]
module push{
    module message{
        module writeMessage{
            ["java:getset", "java:serializable"]
            struct StationMessageParams{
•                long userId ;
                string sender;
                int userType;
// 用户类型
            };
            ["java:getset", "java:serializable"]
            struct MessageParams{
                int sendType;
                int notice;
                string communityId;
                StationMessageParams stationMessageParams;
                ContextMap extra;
                StringList group;
                ContextMap paramsMap;
            };
            interface WriteMessageApiService{
                ["amd"] void writeMessage(MessageParams messageParams , out Head head);
            };
        };
    };
};

开发中slice使用场景
 

客户与服务器使用不同开发环境 时slice编译情景

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值