ICE框架组件内部实现与特点

1,Ice::Application 此类中有一个main的方法,main的方法中调用了run()函数。ICE框架的服务配置结构:class ResTransferServer : public Ice::Application{public:    virtual int run(int argc, char* argv[])    {        Ic
摘要由CSDN通过智能技术生成

1,Ice::Application 此类中有一个main的方法,main的方法中调用了run()函数。

ICE框架的服务配置结构:

class ResTransferServer : public Ice::Application
{
public:

    virtual int run(int argc, char* argv[])
    {
        Ice::CommunicatorPtr communicator = this->communicator(); //得到一个通信器指针
        Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("PUSHResourceTransferSvrObjectAdapter"); //创建一个配置器指针
        Ice::PropertiesPtr properties = communicator->getProperties(); //创建一个通信器的权限
        PUSH::ResTransferPtr resTransSvr = new ResTransferI;
        adapter->add(resTransSvr, communicator->stringToIdentity(properties->getProperty("Identity"))); //增加一个适配器
        adapter->activate();//激发启动一个通信器
        communicator->waitForShutdown();  //通信器在这里等待处理数据连接
        return EXIT_SUCCESS;
    }
};

int  main(int argc, char* argv[])
{
    Ice::InitializationData initData;  //初始化ICE相关的数据;原型是 Ice::initialize 
    initData.properties = Ice::createProperties(); //创建通信器的属性接口
    initData.properties->setProperty("BuildId", std::string("Ice ") + ICE_STRING_VERSION);//设置所有者的相关属性,或者通信器的所有属性,ICE中属性的原型接口为Properties()

    PUSHResTransferServer app; //实际的服务对象
    int status = app.main(argc, argv, initData);

 //这里对象调用main的原因是公有继承Ice::Application类中的mian函数

     return status;  //返回结果传递给主线程,使系统来处理其他业务
 }

 

2,ICE框架中slice生成的类都是抽象类,我们要重新继承他实现对此类中数据及方法的实例化的类

3,在ICE的一部调用中特别注意的几点,用具体的实例来说明

具体的函数实现参数说明

 virtual void downRes_async(const PUSH::AMD_ResTransfer_downResPtr& amdPtr, const ::PUSH::Wmmp3MsgHead&, const PUSH::Wmmp3MsgDownRes& request, const ::Ice::Current& = ::Ice::Current());

 

注意:

ICE的每个方法都提供了一个Ice::Current的对象,这个对象主要是存储ICE框架中的各个骨架信息的参数类的对象。例如,adapter适配器,ctx数据内容的类对象等等。

具体结构如下:

module Ice {
    local dictionary<string, string> Context;
    enum OperationMode {  Normal, \Nonmutating, \Idempotent };
    local struct Current {

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值