- 5
- 0
- 约8.43千字
- 约 39页
- 2017-12-23 发布于上海
- 举报
高级软件工程05IIOP、现有产品、开发过程
例子 - Grid Object Step-by-Step Define the IDL interface Compile the IDL interface Write a client Implement the interface Write a server mainline Register the server An IDL Interface 编译成 C++: IDL to C++ 映射 ? IDL operations (操作)映射为 C++ 的成员函数 - parameter types 映射为 C++ types ? IDL attributes (属性)映射为 C++的成员函数 - 一个用于获取值 - 另一个用于设置值 (如果不是只读属性) ? IDL data types 映射为 C++ data types ? 一 个 interface 映射为一个 C++ class. 所产生的 C++ code: class Grid : public virtual CORBA::Object { public: static Grid_ptr _bind(....); virtual CORBA::Short height(CORBA::Environment); virtual CORBA::Short width(CORBA::Environment); virtual void set(CORBA::Short row, CORBA::Short col, CORBA::Long value, CORBA::Environment ); virtual CORBA::Long get(CORBA::Short row, CORBA::Short col, CORBA::Environment ); }; Writing a Client #include “grid.hh” #include iostream.h main () { Grid_var p; // Like a C++ pointer // Connect to a remote Grid object p = Grid::_bind(“myGrid:GridSrv”, GridHost); // Now use it like a regular C++ object cout “height is “ p-height() endl; cout “width is “ p-width() endl; p-set(2,4,123); // a remote call cout “grid[2,4] is “ p-get(2,4) endl; }; 如何工作? Implementing the Interface ? 编写一个 C++ class ? 继承 ORB functionality ? 加入数据成员以及其它 C++ 函数 - 根据具体的需求 ? 重定义 IDL 函数 - 提供具体的功能 Grid implementation Grid_i 还包括... IDL 具体功能 什么是 ‘server mainline’? ? server 是 objects的 容 器 - ORB 能激活的可执行代码 ? ‘server mainline’ - 在server中创建初始对象 - 将控制权交给 ORB 以等待调用。 ? 各个对象分别实现自己的功能 - ORB 将接受到的调用分发给具体的对象。 编写 server mainline #include “grid_i.h” #include iostream.h main() { // Create some initial objects // (only one in this case) Grid_i myGrid(100,100); try { //Give control to the ORB CORBA::Orbix.impl_is_ready(); } catch { .... } cout “Server terminating” endl; } Registering the server ? Servers 可以由 ORB 自动启动 - 响应客户请求 ? 注册过程告诉 ORB: - 哪个可执行代码是服务器 - 服务器的激活模式 -
您可能关注的文档
- 酒店管理篇101012 我们的观察力如何.ppt
- 重危病人的合理营养支持.ppt
- 酒店客房部管理不错,值得参考.ppt
- 采购学2.ppt
- 醉翁亭记ppt教学课件.ppt
- 金字塔原理48pages.ppt
- 金字塔原理培训演示教材ppt.ppt
- 重庆铜锣湾生态旅游发展定位101PPT.ppt
- 金融学第八讲融资决策初步.ppt
- 金蝶KIS财务软件实.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 时速160公里动力集中动车组动力车(177页).pptx VIP
- 全国李氏家族字辈.pdf VIP
- 2025储能场站运营的价值定位、运营模式和收益示例-202508v3.pdf VIP
- 小学科学《斜面》优质课件.docx VIP
- 串联型感应加热电源的自动负载匹配技术.pdf VIP
- 2025年新课标《义务教育数学课程标准(2022年版)》测试题及答案.docx VIP
- 老年人谵妄中西医结合诊疗专家共识.pdf VIP
- 膨胀土基坑复合土钉墙试验研究.pdf VIP
- 2021年江苏省无锡市天一高级中学高二物理下学期期末试卷含解析.docx VIP
- 《贵州省公路工程施工监理电子招标文件示范文本(试行)》2025.docx VIP
原创力文档

文档评论(0)