文章分类 -  ICE

摘要:在编写Ice相关应用时,无论是Client还是Server端,都必须进行一些必要的动作,如:Ice通信器初始化、异常捕获,以及应用终止后的销毁。鉴于每个应用都需要,Ice运行时库提供了Ice::Application类来解放用户,避免重复劳动,消除繁琐的初始化和销毁细节。Ice::Application虽然实用,但总体来说是个比较简单的类,主要提供了Ice通信器初始化和信号捕获处理两大功能。下面将从功能和实现两方面进行阐述,并给出常见用法和注意事项。源码版本为Ice-3.2.1。一.Ice::Application概述Ice::Application本身是一个抽象类,其run()函数为纯虚函数 阅读全文
posted @ 2011-11-20 16:08 tangr206 阅读(761) 评论(0) 推荐(0)
摘要:【 colorado 】 按:本文是DPWI第6章的笔记。 客户端Slice到C++映射定义的是:怎样把Slice数据类型翻译成C++类型,客户怎样调用操作、传递参数、处理错误。C++映射线程安全,不存在内存管理问题。不建议查看slice2cpp生成的C++映射文件,但建议掌握C++映射规则。 1、模块映射 module M{...} 映射为 namespace M{...} 2、类型映射 ⑴基本类型 Slice C++ bool → boolbyte → Ice::Byteshort → Ice::Shortint → Ice::Intlong → Ice::Longfloat... 阅读全文
posted @ 2011-11-20 15:17 tangr206 阅读(663) 评论(0) 推荐(0)
摘要:说明文档位于DPWI第3章,程序位于Ice 3.3.1发布${ICE_HOME}/demo/book/printer。 1、Slice文件 Printer.ice 定义如下: #ifndef SIMPLE_ICE #define SIMPLE_ICE module Demo { interface Printer { void printString(string s); }; }; #endif 本Slice文件定义了模块Demo,它含有Printer接口,定义了printString操作,printString 操作接受一个字符串。程序功能是客户端调用printSt... 阅读全文
posted @ 2011-11-20 15:01 tangr206 阅读(508) 评论(0) 推荐(0)
摘要:按语:本文是DPWI第4章的笔记。在3.3.1版的1~9章中与1.3.0版马维达先生中译本相应章节的内容基本相同,变化比较小,可以参考马维达 先生的译本。Slice 在客户与服务器之间建立合约,描述应用程序所使用的各种类型及对象接口。这种描述与语言实现无关。Slice 定义由编译器编译到特定的实现语言,编译算法称之为语言映射。编译器把与语言无关的定义翻译成针对特定语言的类型定义和API。开发者使用这些类型和 API 来提供应用功能,并与Ice 交互。Ice 目前支持C++,Java, C#, Python,PHP,Ruby的语言映射。 例如: /* Printer Slice */ #... 阅读全文
posted @ 2011-11-20 14:54 tangr206 阅读(702) 评论(0) 推荐(0)
摘要:我在过去一段时间中,大体学习了ICE的基本知识,根据个人体会,ICE的学习应该结合ICE发布程序的实例代码进行,才会有较大收获。目前,我对ICE的认识仍然相当粗浅。就我所认识到的基础学习谈一下个人看法。 关于Ice实例程序的学习,目前所采用的软件系统为:Ice 3.3.1和Visual C++ 2008 Express 版,只采取C++语言版本。主要是通过阅读${ICE_HOME}/demo/book,${ICE_HOME}/demo/Ice 两个目录的代码来体验Ice的开发。 最初的学习,以${ICE_HOME}/demo/book目录中的代码为主,book目录存贯穿Distributed. 阅读全文
posted @ 2011-11-20 14:39 tangr206 阅读(3292) 评论(1) 推荐(0)