TAO 处理接口访问超时例程
在CORBA中有时需要判断接口访问是否超时,因为接口之间访问往往是同步操作,没有超时机制的话调用者很容易阻塞,下面例子可以帮助我们解决这个问题:
#include "helloC.h"
#include "ace/Profile_Timer.h"
#include "tao/Messaging/Messaging.h"
#include "tao/Messaging/TAO_ExtC.h"
#include <fstream><br>#include <iostream><br>#include <string></string></iostream></fstream>
ACE_Profile_Timer timer; //定时器
TimeBase::TimeT timeout = 6*1000*10000; //超时6秒
int main(int argc, char ** argv)
{
CORBA::ORB_var orb;
if (argc printf("usage: %s <file:>", argv[0]); <br> return -1; <br>} <br>orb = CORBA::ORB_init(argc, <br> argv, <br> 0 <br> ACE_ENV_ARG_PARAMETER); <br>if (CORBA::is_nil(orb.in())) <br> return -1; <br>CORBA::Object_var obj = orb->string_to_object(argv[1] ACE_ENV_ARG_PARAMETER); <br>if (CORBA::is_nil(obj.in())) <br> return -1; <br>/*获取ORB的策略对象*/ <br>CORBA::Object_var objPolicy = orb->resolve_initial_references("PolicyCurrent" <br> ACE_ENV_ARG_PARAMETER); <br>CORBA::PolicyCurrent_var policyCur = <br> CORBA::PolicyCurrent::_narrow (objPolicy.in () ACE_ENV_ARG_PARAMETER); <br>/*设置超时*/ <br>CORBA::Any anyTm; <br>anyTm /*设置ORB策略*/ <br>CORBA::PolicyList policy_list(1); <br>policy_list.length (1); <br>policy_list[0] = orb->create_policy (Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE, <br> anyTm <br> ACE_ENV_ARG_PARAMETER); <br>policyCur->set_policy_overrides (policy_list, <br> CORBA::ADD_OVERRIDE <br> ACE_ENV_ARG_PARAMETER); <br>policy_list[0]->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); <br>timer.start(); //启动定时器 <br>ACE_TRY <br>{ <br> Hello_var hello = Hello::_narrow(obj.in()); <br> CORBA::String_var msg; <br> hello->message(msg); //访问服务接口 <br> std::cout} ACE_CATCHANY { <br> timer.stop(); <br> ACE_Profile_Timer::ACE_Elapsed_Time el; <br> timer.elapsed_time (el); <br> printf("elapse time is %d\n", el.real_time); <br>} <br>ACE_ENDTRY; <br>orb->destroy();</file:>
return 0;
}
分享到:
相关推荐
易语言socket连接超时例程源码,socket连接超时例程,子程序1,socket,htons,inet_addr,Connect,closesocket,WSAStartup,setsockopt,ioctlsocket,select
易语言的socket连接超时源码例程应该包含了上述部分或全部的实现,通过阅读和分析源码,你可以更直观地了解如何在易语言环境中处理Socket连接超时问题。源码通常会包含创建Socket对象、设置超时参数、发起连接请求、...
《Halcon 1394接口驱动及例程详解》 在计算机视觉和自动化领域,Halcon是一款广泛应用的机器视觉软件,它提供了丰富的图像处理功能。本文将详细讲解Halcon与1394(FireWire)接口的驱动及例程,帮助用户理解和应用...
"易语言socket连接超时源码例程.rar"是一个针对易语言(EasyLanguage)平台的示例程序,它着重解决了在网络编程中常见的问题——Socket连接超时。易语言是中国的一款中文编程语言,旨在降低编程门槛,使得更多非专业...
标题"android访问网络例程"表明我们将探讨如何在Android应用中实现网络通信。描述提到这是一个"可以独立编译的android访问网络的源码",意味着我们将关注实际的代码实现,而非理论概念。标签"android net http"...
这个“labview 图像处理 视觉开发例程”压缩包集合了国外某实验室精心开发的一系列图像处理函数,这些函数可能补充了LabVIEW标准视觉开发模块中的不足,提供了更多定制化和专业化的图像处理功能。 首先,我们要理解...
这个例程可能涉及到了如何通过USB接口与硬件设备进行通信,包括发送指令、接收反馈、处理错误等关键步骤。在实际应用中,这样的接口函数通常是安全系统或智能建筑自动化的一部分。 描述中的“proUSB PB proUSB ...
《genesis脚本易语言模块接口和例程》 在IT领域,编程语言的多样性使得开发者可以针对不同的需求选择最适合的工具。"Genesis脚本"是一种特定的脚本语言,它在游戏开发和自动化控制中有着广泛的应用。而“易语言”则...
在本例程中,开发者可能通过特定的API或直接访问内存地址来操作RAM,实现数据的读写和处理。 C++作为高级编程语言,其在嵌入式系统中的应用需要考虑到硬件特性。在DSP28377上使用C++,开发者需要关注内存对齐、异常...
在“易语言源码易语言socket连接超时源码例程.rar”这个压缩包中,包含的是一个使用易语言实现的网络编程示例,主要涉及的是socket连接和超时处理这两个关键知识点。 首先,我们来理解一下什么是socket。Socket是...
本历程为OPenCV经典例程,适合于初学者
"TI C6678全部接口例程"是针对这款处理器的一系列示例代码,旨在帮助开发者快速理解和掌握6678的各种硬件接口及编程方法。 一、TI C6678处理器特点 1. **多核架构**:C6678拥有多个核心,每个核心都具备独立的指令...
8. **OpenCV库**:虽然题目中没有明确提及,但在VC6.0中进行图像处理时,OpenCV是一个常用的库,它提供了丰富的图像处理函数和接口,使得图像处理变得更加便捷。 总的来说,"VC图像处理例程"是一个很好的学习资源,...
易语言socket连接超时源码例程.zip易语言项目例子源码下载易语言socket连接超时源码例程.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
SBP(Serial Bus Protocol)接口程序例程是一个用于读取控制系统数据的重要工具,它在工程应用中发挥着关键作用。这个程序通常涉及到计算机源码,意味着我们需要理解编程语言和通信协议来有效地使用或修改它。 SBP...
该芯片集成了丰富的外设接口,如GPIO、UART、SPI等,使其在工业控制、音频处理、图像处理等领域有广泛应用。 在这个"OMAP-L138数据处理相关例程"中,我们可以期待找到一系列针对OMAP-L138进行数据处理的程序示例。...
3. EX_Interrupt:外部中断例程展示了如何处理芯片外部引脚上的中断请求。当外部事件发生时,中断服务例程会被执行,实现快速响应机制。 4. ECAP:增强型捕获(ECAP)模块可以捕捉输入信号的时间间隔,常用于电机...
在易语言中,“射频卡接口函数例程”是指与射频识别(RFID)技术相关的函数或过程,用于与射频卡进行通信。射频识别是一种非接触式的自动识别技术,通过无线射频信号来识别特定目标并读取或写入数据,无需人工干预。...
6. **错误检查**:例程可能还包括错误检测机制,如超时检测、校验和验证等,确保数据的准确性和可靠性。 7. **中断处理**:如果使用中断模式,例程将包含中断服务子程序,用于处理转换完成事件。 在实际应用中,...
HALCON数字图像处理(刘国华)图片和例程.rar