博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IceBox
阅读量:4947 次
发布时间:2019-06-11

本文共 1600 字,大约阅读时间需要 5 分钟。

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

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

具体实现:

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

IceBox服务

HelloServiceI.h

#include 
#if defined(_WIN32)# define HELLO_API __declspec(dllexport)#else# define HELLO_API#endifclass 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

 

转载于:https://www.cnblogs.com/whuqin/archive/2012/07/16/4982045.html

你可能感兴趣的文章
mysql 实行模糊查询 一个输入值匹配多个字段和多个输入值匹配一个字段
查看>>
hdu 1102(最小生成树)
查看>>
JavaScript对象及初识面向对象
查看>>
mac安装nose,command not found:nosetests
查看>>
抓取cntv电视节目表
查看>>
【刷题】洛谷 P3613 睡觉困难综合征
查看>>
操作系统简介
查看>>
过滤器和拦截器的区别
查看>>
jdk 设计模式
查看>>
js对话框弹窗
查看>>
.NET中怎么有效的使用Cache
查看>>
结对学习感想
查看>>
Tomcat源码分析(从启动流程到请求处理)
查看>>
onPullDownRefresh函数没有被正确执行
查看>>
【原创】Activity 概念介绍(大全)
查看>>
从零讲解搭建一个NIO消息服务端
查看>>
VS 插件
查看>>
Chrome 消息传递机制
查看>>
性能测试插件
查看>>
全站缓存时代
查看>>