localclientrequestimpl.java
来自「java jdk 1.4的源码」· Java 代码 · 共 116 行
JAVA
116 行
/* * @(#)LocalClientRequestImpl.java 1.29 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.corba.se.internal.iiop;import com.sun.corba.se.internal.core.Request;import com.sun.corba.se.internal.core.ClientRequest;import com.sun.corba.se.internal.core.ServiceContext;import com.sun.corba.se.internal.core.ServiceContexts;import com.sun.corba.se.internal.core.ClientResponse;import com.sun.corba.se.internal.core.ServerRequest;import com.sun.corba.se.internal.core.ServerResponse;import com.sun.corba.se.internal.core.IOR;import com.sun.corba.se.internal.core.GIOPVersion;import com.sun.corba.se.internal.iiop.messages.MessageBase;import com.sun.corba.se.internal.iiop.messages.RequestMessage;import com.sun.corba.se.internal.orbutil.ORBConstants;import com.sun.corba.se.internal.core.ORBVersion;import com.sun.corba.se.internal.orbutil.ORBUtility;import com.sun.corba.se.internal.ior.ObjectKeyFactory ;import com.sun.corba.se.internal.ior.ObjectKey ;import com.sun.corba.se.internal.ior.ObjectKeyTemplate ;import com.sun.corba.se.internal.ior.IIOPProfile;public class LocalClientRequestImpl extends IIOPOutputStream implements ClientRequest { public LocalClientRequestImpl( GIOPVersion gv, com.sun.corba.se.internal.iiop.ORB orb, IOR ior, short addrDisposition, String operationName, boolean oneway, ServiceContexts svc, int requestId) { super(gv, orb, null, false); this.isOneway = oneway; boolean responseExpected = !isOneway; IIOPProfile iop = ior.getProfile(); ObjectKey okey = iop.getObjectKey(); ObjectKeyTemplate oktemp = okey.getTemplate() ; ORBVersion version = oktemp.getORBVersion() ; orb.setORBVersion( version ) ; this.request = MessageBase.createRequest(orb, gv, requestId, responseExpected, ior, addrDisposition, operationName, svc, null); setMessage(request); request.write(this); // mark beginning of msg body for possible later use bodyBegin = getSize(); } public int getRequestId() { return request.getRequestId(); } public boolean isOneWay() { return isOneway; } public ServiceContexts getServiceContexts() { return request.getServiceContexts(); } public String getOperationName() { return request.getOperation(); } public ObjectKey getObjectKey() { return request.getObjectKey(); } public ServerRequest getServerRequest() { // Set the size of the marshalled data in the message header. getMessage().setSize( getByteBuffer(), getSize() ) ; // Construct a new ServerRequest out of the buffer in this ClientRequest LocalServerRequestImpl serverRequest = new LocalServerRequestImpl( (com.sun.corba.se.internal.iiop.ORB)orb(), toByteArray(), request ) ; // Skip over all of the GIOP header information. This positions // the offset in the buffer so that the skeleton can correctly read // the marshalled arguments. serverRequest.setIndex( bodyBegin ) ; return serverRequest ; } public ClientResponse invoke() { com.sun.corba.se.internal.iiop.ORB myORB = (com.sun.corba.se.internal.iiop.ORB)orb() ; ServerResponse serverResponse = myORB.process( getServerRequest() ) ; LocalServerResponseImpl lsr = (LocalServerResponseImpl)serverResponse ; return lsr.getClientResponse() ; } /** * Check to see if the request is local. */ public boolean isLocal(){ return true; } private RequestMessage request; private int bodyBegin; private boolean isOneway;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?