zoukankan      html  css  js  c++  java
  • IceBox

    IceBox是一个Ice应用服务框架。加载多个服务进行配置,进行一定优化;通过配置加载服务,解除服务和服务器的耦合。

    IceBox服务需要Slice定义、骨架代码(slice定义映射的特定语言代码)、Servant类、IceBox服务。

    具体实现:

    Hello.ice、Hello.h/Hello.cpp、HelloI.h/HelloI.cpp(Servant类,实现Hello)不再介绍,参考上篇日志。

    IceBox服务

    HelloServiceI.h

    #include <IceBox/IceBox.h>
    #if defined(_WIN32)
    #       define HELLO_API __declspec(dllexport)
    #else
    #       define HELLO_API
    #endif
    class HELLO_API HelloServiceI : public IceBox::Service {
        public:
            virtual void start(const std::string&, const Ice::CommunicatorPtr&,
                    const Ice::StringSeq&);
            virtual void stop();
        private:
            Ice::ObjectAdapterPtr adapter;
    };


    每个IceBox服务都要继承IceBox::Service,实现start和stop,以供IceBox服务管理器调用。start在服务加载后被调用,stop在服务关闭时被调用。

    //创建服务
    extern "C" {
         HELLO_API IceBox::Service* create(Ice::CommunicatorPtr communicator){
             return new HelloServiceI;
         }
    }
    
    void HelloServiceI::start(const string& name,
             const Ice::CommunicatorPtr& communicator,
             const Ice::StringSeq& args){
    	//加入Servant实例
        adapter=communicator -> createObjectAdapter(name);
        Ice::ObjectPtr object=new HelloI;
        adapter->add(object, communicator->stringToIdentity("hello"));
        adapter->activate();
    }
    void HelloServiceI::stop(){
        adapter->deactivate();
    }


    配置服务器

    config.icebox主配置文件

     IceBox.Service.Hello=HelloService:create --Ice.Config=config.service


    config.service次配置文件(服务的端口和协议)

    Hello.Endpoints=tcp -p 10000:udp -p 10000


    打包

    g++ -o -shared libHelloService.so HelloServiceI.cpp HelloI.cpp Hello.cpp -I. -I $ICE_HOME/include -fPIC


    启动IceBox

    icebox --Ice.Config=config.icebox


  • 相关阅读:
    Game of War
    Unreal Engine 4 性能优化工具(Profiler Tool)
    触屏设备上的多点触碰检测C++代码实现
    独立游戏设计流程:从概念到写码的13个步骤
    ue4 多相机分屏与小地图效果实现教程
    Unreal Engine 4 笔记 2
    3dsMax模型转UE4
    以《西游记》为例 详解游戏设计归纳演绎法
    假期关于产品-设计-逻辑-市场-团队思考节选30篇
    Unreal Engine 4 笔记
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982045.html
Copyright © 2011-2022 走看看