ICE相关资料。.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ICE相关资料。

服务器端:服务器端通常只有一个通信器(Ice::Communicator),通信器包含了一系列的资源:如线程池、配置属性、对象工厂、日志记录、统计对象、路由器、定位器、插件管理器、对象适配器在通信器内,包含有一个或更多的对象适配器(Ice::ObjectAdapter),对象适配器负责提供一个或多个传输端点,并且把进入的请求分 派到对应的servant中去执行。具体实现的部分称为servant,它们为客户端发来的调用提供服务。servant向对象适配器注册以后,由对象适配器依据客户请求调用相应方 法。客户端:客户端直接通过代理进行远程调用,就象本地调用一样简单。通信器Ice::Communicator通信器管理着线程池、配置属性、对象工厂、日志记录、统计对象、路由器、定位器、插件管理器、对象适配器。通信器的几个重要方法:std::string proxyToString(const Ice::ObjectPrx) const;Ice::ObjectPrx stringToProxy(const std::string) const;?? ?这两个方法可以使代理对象和字符串之间互相转换。对于proxyToString方法,你也可以使用代理对象的 ice_toString方法代替(当然,你要确保是非空的代替对象)。Ice::ObjectPrx propertyToProxy(const std::string) const;?? ?这个方法根据给定名字的属性配置生成一个代理对象,如果没有对应属性,返回一个空代理。?? ?比如有如下属性:?? ?MyApp.Proxy = ident:tcp -p 5000?? ?我们就可以这样得到它的代理对象:?? ?Ice::ObjectPrx p = communicator-propertyToProxy(MyApp.Proxy);Ice::Identity stringToIdentity(const std::string) const;std::string identityToString(const Ice::Identity) const;?? ?转换字符串到一个对象标识,对象标识的定义如下:namespace ?Ice { ????struct ?Identity ????{ ????????std::string?name; ????????std::string?category; ????}; } ??? 当它与字符串相互转换时,对应的字符串形式是:CATEGORY/NAME 。比如字符串“Factory/File ”, Factory是category,File是name。?? ?category部分可以为空。???Ice::ObjectAdapterPtr createObjectAdapter(const std::string);Ice::ObjectAdapterPtr createObjectAdapterWithEndpoints( const std::string, const std::string);?? ?这两个方法创建新的对象适配器。createObjectAdapter从属性配置中取得端点信息,而 createObjectAdapterWithEndpoints则直接指定端点。void shutdown();?? ?关闭服务端的Ice运行时库,调用shutdown后,执行过程中的操作仍可正常完成,shutdown不会等待这些操作完成。void waitForShutdown();?? ?这个方法会挂起发出调用的线程直到通信器关闭为止。void destroy();?? ?这个方法回收通信器的相关资源,如线程、通信端点及内存资源。在离开main函数之前,必须调用destory。bool isShutdown() const;?? ?如果shutdown已被调用过,则返回true。初始化通信器?? ?在建立通信器(Ice::Communicator)期间,Ice运行时会初始化一系列的对象,这些对象一直影响通信器的整个生命周期。并且在建立通信 器以后,你不能改变这些对象。所以,如果你想定制这些对象,就必须在建立通信器的过程中定义。?? ?在通信器建立期间,我们可以定义下面这些对象:属性表(property)日志记录器(Logger)统计对象(Stats)原生字符串与宽字符串转换器线程通知钩子?? ?所有上面的对象存放在InitializationData 结构中,定义为:namespace ?Ice?{ ????struct ?InitializationData?{ ????????PropertiesPtr?properties; ????

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档