当前位置: 首页>>代码示例>>Java>>正文


Java CorbaMessageMediator.isOneWay方法代码示例

本文整理汇总了Java中com.sun.corba.se.spi.protocol.CorbaMessageMediator.isOneWay方法的典型用法代码示例。如果您正苦于以下问题:Java CorbaMessageMediator.isOneWay方法的具体用法?Java CorbaMessageMediator.isOneWay怎么用?Java CorbaMessageMediator.isOneWay使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.sun.corba.se.spi.protocol.CorbaMessageMediator的用法示例。


在下文中一共展示了CorbaMessageMediator.isOneWay方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: waitForResponse

import com.sun.corba.se.spi.protocol.CorbaMessageMediator; //导入方法依赖的package包/类
public InputObject waitForResponse(MessageMediator mediator)
{
  CorbaMessageMediator messageMediator = (CorbaMessageMediator) mediator;

  try {

    InputObject returnStream = null;

    if (orb.transportDebugFlag) {
        dprint(".waitForResponse->: " + opAndId(messageMediator));
    }

    Integer requestId = messageMediator.getRequestIdInteger();

    if (messageMediator.isOneWay()) {
        // The waiter is removed in releaseReply in the same
        // way as a normal request.

        if (orb.transportDebugFlag) {
            dprint(".waitForResponse: one way - not waiting: "
                   + opAndId(messageMediator));
        }

        return null;
    }

    OutCallDesc call = out_calls.get(requestId);
    if (call == null) {
        throw wrapper.nullOutCall(CompletionStatus.COMPLETED_MAYBE);
    }

    synchronized(call.done) {

        while (call.inputObject == null && call.exception == null) {
            // Wait for the reply from the server.
            // The ReaderThread reads in the reply IIOP message
            // and signals us.
            try {
                if (orb.transportDebugFlag) {
                    dprint(".waitForResponse: waiting: "
                           + opAndId(messageMediator));
                }
                call.done.wait();
            } catch (InterruptedException ie) {};
        }

        if (call.exception != null) {
            if (orb.transportDebugFlag) {
                dprint(".waitForResponse: exception: "
                       + opAndId(messageMediator));
            }
            throw call.exception;
        }

        returnStream = call.inputObject;
    }

    // REVISIT -- exceptions from unmarshaling code will
    // go up through this client thread!

    if (returnStream != null) {
        // On fragmented streams the header MUST be unmarshaled here
        // (in the client thread) in case it blocks.
        // If the header was already unmarshaled, this won't
        // do anything
        // REVISIT: cast - need interface method.
        ((CDRInputObject)returnStream).unmarshalHeader();
    }

    return returnStream;

  } finally {
    if (orb.transportDebugFlag) {
        dprint(".waitForResponse<-: " + opAndId(messageMediator));
    }
  }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:78,代码来源:CorbaResponseWaitingRoomImpl.java


注:本文中的com.sun.corba.se.spi.protocol.CorbaMessageMediator.isOneWay方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。