socketfactoryconnectionimpl.java
来自「JAVA 所有包」· Java 代码 · 共 103 行
JAVA
103 行
/* * @(#)SocketFactoryConnectionImpl.java 1.13 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.corba.se.impl.legacy.connection;import java.net.Socket;import java.nio.channels.SocketChannel;import java.util.Collections;import org.omg.CORBA.COMM_FAILURE;import org.omg.CORBA.CompletionStatus;import com.sun.corba.se.pept.transport.Acceptor;import com.sun.corba.se.pept.transport.ContactInfo;import com.sun.corba.se.spi.ior.IOR;import com.sun.corba.se.spi.legacy.connection.GetEndPointInfoAgainException;import com.sun.corba.se.spi.orb.ORB;import com.sun.corba.se.spi.transport.CorbaConnection;import com.sun.corba.se.spi.transport.CorbaContactInfo;import com.sun.corba.se.spi.transport.SocketInfo;import com.sun.corba.se.impl.orbutil.ORBUtility;import com.sun.corba.se.impl.transport.SocketOrChannelContactInfoImpl;import com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl;/** * @author Harold Carr */public class SocketFactoryConnectionImpl extends SocketOrChannelConnectionImpl{ // Socket-factory client constructor. public SocketFactoryConnectionImpl(ORB orb, CorbaContactInfo contactInfo, boolean useSelectThreadToWait, boolean useWorkerThread) { super(orb, useSelectThreadToWait, useWorkerThread); // REVISIT - probably need a contact info for both // client and server for removing connections from cache? this.contactInfo = contactInfo; boolean isBlocking = !useSelectThreadToWait; SocketInfo socketInfo = // REVISIT - case - needs interface method ((SocketFactoryContactInfoImpl)contactInfo).socketInfo; try { socket = orb.getORBData().getLegacySocketFactory().createSocket(socketInfo); socketChannel = socket.getChannel(); if (socketChannel != null) { socketChannel.configureBlocking(isBlocking); } else { // IMPORTANT: non-channel-backed sockets must use // dedicated reader threads. setUseSelectThreadToWait(false); } if (orb.transportDebugFlag) { dprint(".initialize: connection created: " + socket); } } catch (GetEndPointInfoAgainException ex) { throw wrapper.connectFailure( ex, socketInfo.getType(), socketInfo.getHost(), Integer.toString(socketInfo.getPort())) ; } catch (Exception ex) { throw wrapper.connectFailure( ex, socketInfo.getType(), socketInfo.getHost(), Integer.toString(socketInfo.getPort())) ; } state = OPENING; } public String toString() { synchronized ( stateEvent ){ return "SocketFactoryConnectionImpl[" + " " + (socketChannel == null ? socket.toString() : socketChannel.toString()) + " " + getStateString( state ) + " " + shouldUseSelectThreadToWait() + " " + shouldUseWorkerThreadForEvent() + "]" ; } } // Note: public to override parent. public void dprint(String msg) { ORBUtility.dprint("SocketFactoryConnectionImpl", msg); }}// End of file.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?