第5章 组件化程序设计方法.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 组件化程序设计方法

时间获取程序 2.将IDL映射成C++代码、分离代码 $TAO_ROOT/TAO_IDL/tao_idl –GI time.idl 生成以下文件:timeC.h timeC.cpp timeC.inl timeS.h timeS.cpp timeS.inl timeI.h timeI.cpp 创建文件夹server将所有生成的文件放入 创建文件夹client将timeC.h timeC.cpp timeC.inl放入 时间获取程序 3.实现服务器端代码 (1) timeI.cpp ::TimeOfDay Time_i::get_gmt (void) { // Add your implementation here time_t time_now = time(0); struct tm * time_p = gmtime(time_now); TimeOfDay tod; tod.hour = time_p-tm_hour; tod.minute = time_p-tm_min; tod.second = time_p-tm_sec; return tod; } (2) main.cpp #include orbsvcs/CosNamingC.h #include iostream using namespace std; #include timeI.h int main(int argc,char *argv[]) { try { } catch(CORBA::Exception ex) { coutCaught CORBA Exception : exendl; return 1; } return 0; } CORBA::ORB_var orb=CORBA::ORB_init (argc, argv); // Find the Naming Service CORBA::Object_var NamingObj=orb-resolve_initial_references(NameService); coutInitialize NameService...OKendl; CosNaming::NamingContext_var root=CosNaming::NamingContext::_narrow(NamingObj.in()); if(CORBA::is_nil(root.in())) { cerrNil Naming Context referenceendl; return 1; } // Get reference to Root POA CORBA::Object_var RootObj=orb-resolve_initial_references(RootPOA); PortableServer::POA_var poa=PortableServer::POA::_narrow(RootObj.in()); coutCreate RootPOA...OKendl; // Activate POA manager PortableServer::POAManager_var poa_mgr=poa-the_POAManager(); poa_mgr-activate(); coutActivate POA Manager...OKendl; // Build our servant Time_i servant; PortableServer::ObjectId_var oid=poa-activate_object(servant); // Bind name with our service CosNaming::Name name; name.length(1); name[0].id=CORBA::string_dup(TIME_SERVANT); CORBA::Object_var tcs_obj=poa-id_to_reference(oid.in()); root-rebind(name,tcs_obj.in()); coutBind our service with name TIME_SERVANTendl; orb-run(); (3) 编译代码 project(*Server):taoserver,iortable,namingexe{ exename = timeserver includes += libpaths +=

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档