ICE的服务器对象实现「建议收藏」

ICE的服务器对象实现「建议收藏」1、需要增加一个类继承至生成的接口类,并实现接口类的虚方法。2、创建实现类的对象3、调用adpater的add方法将创建的对象绑定到adapter中,并传入一个全局唯一标示符,该唯一标示可以通过如下方法生成:  adapter->add(hello,communicator()->stringToIdentity(“hello”));  adapter->addWithUUI

大家好,又见面了,我是你们的朋友全栈君。1、需要增加一个类继承至生成的接口类,并实现接口类的虚方法。

2、创建实现类的对象

3、调用adpater的add方法将创建的对象绑定到adapter中,并传入一个全局唯一标示符,该唯一标示可以通过如下方法生成:

   adapter->add(hello, communicator()->stringToIdentity(“hello”));

   adapter->addWithUUID(hello);

   Ice::Ideentity id; id.name=”hello”; adapter->add(hello, id);

4、adapter的add和addWithUUID方法返回一个代理对象,可以将该代理对象返回给客户端让其调用代理的方法

5、在实现接口的操作方法时,在每个操作的最后一个参数都会被ice映射成const Current& current,可以通过该成员获取操作调用上下文信息

   Current的定义如下:

   module Ice 

   {

        local dictionary<string, string> Context;

        enum OperationMode { Normal, \Idempotent };

        local struct Current 


   {

            ObjectAdapter adapter;    // 服务器的对象适配器,可以通过它再调用getCommunicator得到通信器


           Connection con;           // 连接对象

            Identity id;              // 服务对象标示

            string facet;             // 

            string operation;         // 操作的名称

            OperationMode mode;       // 操作模式

            Context ctx;              // 操作上下文属性


            int requestId;            // 请求ID

        };

    };

6、服务器端接收到请求后会自动的分派请求给正确的服务对象,因为在请求中携带了对象标示。在分派给服务对象前,可以设置拦截器,具体操作如下:
   adapter->add(hello, communicator()->stringToIdentity(“hello”));
   该处不添加hello这个servant,取而代之的是设置一个DispatchInterceptor
   class MyDipatchInterceptor : public Ice::DispatchInterceptor
   {

   public:
       MyDipatchInterceptor(const MyServantIPtr& servant) : _servant(servant)
  {

  
  }
  
       virtual DispatchStatus dispatch(Request& request)
       {

            return _servant->dispatch(request);
       }
private:
  const MyServantIPtr& _servant;
   };
   adapter->add(new MyDipatchInterceptor(hello), communicator()->stringToIdentity(“hello”));

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140697.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • opencv图像角点提取

    opencv图像角点提取opencv角点检测(二)改进的Harris角点检测算法harris角点检测算法的结果一定程度上取决于系数k,有人对Harris的角点检测算法进行了改进,直接利用像素点协方差矩阵的特征值提取角点。而且不在进行非极大值抑制,而是采用一种容忍距离的形式,在角点的一定范围内只有一个角点。具体原理:首先计算图像每个像素点的协方差矩阵,并求取对应的特征值,将最小的特征值最大的那个像素点作为第

    2022年8月30日
    2
  • Java中的Map及其使用「建议收藏」

    Java中的Map及其使用「建议收藏」MapMap集合概述和特点概述:将键映射到值的对象一个映射不能包含重复的键每个键最多只能映射到一个值Map接口和Collection接口的不同Map是双列的,Collection是单列的Map的键唯一,Collection的子体系Set是唯一的Map集合的数据结构针对键有效,跟值无关;Collection集合的数据结构是针对元素有效Map集合的功能概述a:添加功能Vput…

    2022年7月8日
    19
  • html 5简易的影片播放器

    html 5简易的影片播放器

    2021年8月9日
    68
  • PL/SQL plsql Developer 14最新版注册码

    PL/SQL plsql Developer 14最新版注册码plsql14注册激活productcode:ke4tv8t5jtxz493kl8s2nn3t6xgngcmgf3serialNumber:264452password:xs374c

    2022年7月4日
    49
  • 谷歌域名大全_www.google.vcom

    谷歌域名大全_www.google.vcom谷歌域名大全google各国网址  美国www.google.com  加拿大www.google.ca  墨西哥www.google.com.mx  巴西www.google.com.br  智利www.google.cl  阿根廷www.google.com.ar  秘鲁www.google.com.pe  哥伦比亚www.google.com.c

    2022年10月3日
    3
  • linux fork函数浅析

    linux fork函数浅析

    2021年12月5日
    73

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号