ICE代码详解

ICE代码详解

ID:40555232

大小:13.69 KB

页数:4页

时间:2019-08-04

ICE代码详解_第1页
ICE代码详解_第2页
ICE代码详解_第3页
ICE代码详解_第4页
资源描述:

《ICE代码详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、服务器端代码:主要包括几个大的类。Ice::Communicator类:Iceruntime的主要进入点是由本地接口Ice::Communicator来表示的。 和在客户端一样,在你在服务器中做任何别的事情之前,你必须调用 Ice::initialize,对Iceruntime进行初始化。Ice::initialize返 回一个智能指针,指向一个Ice::Communicator实例: int main(intargc,char*argv[]) {  Ice::CommunicatorPtric =Ice::initialize(argc,a

2、rgv); //... }在离开你的main函数之前,你必须调用Communicator::destroy。 destroy操作负责结束Iceruntime。特别地,destroy会等待任何还在运行 的操作调用完成。此外,destroy还会确保任何还未完成的线程都得以汇 合(joined),并收回一些操作系统资源,比如文件描述符和内存。决不要 让你的main函数不先调用destroy就终止;这样做会导致不确定的行为。Ice::Application类:#includeclassMyApplication:virtualp

3、ublicIce::Application{public:   virtualintrun(int,char*[]){//主要是来实现该run的方法。    //Servercodehere...  return0;  }};intmain(intargc,char*argv[]){  MyApplicationapp;  returnapp.main(argc,argv);}Ice::Service类:使用Ice::Service类的Ice应用至少要定义一个子类,并重新定义 start成员函数;服务必须在这个函数里执行其启动活动,比如处理命

4、令 行参数、创建对象适配器、注册servants。应用的main函数必须实例化这 个子类,调用其main成员函数,把程序的参数向量作为参数传给它。下 面的例子给出了一个最小限度的Ice::Service子类: #include#includeclassMyService: publicIce::Service {protected:  virtualboolstart(int,char*[]);private:   Ice::ObjectAdapterPtr_adapter;};bool M

5、yService::start(intargc,char*argv[]) {  _adapter= communicator()->createObjectAdapter("MyAdapter");  _adapter->addWithUUID(newMyServantI);//用UUID来指定1个servant。  _adapter->activate();  //1个适配器包含1个servant还是多个?  returntrue;}int main(intargc,char*argv[]) {   MyServicesvc;  retur

6、nsvc.main(argc,argv);}linux守护进程命令行:--daemon,--noclose(阻止ice::service关闭无用的文件描述符),--nochdir(阻止ice::service变更当前目录)Servant类:继承于ice::object类。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。