⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 legacyserversocketmanagerimpl.java

📁 JAVA的一些源码 JAVA2 STANDARD EDITION DEVELOPMENT KIT 5.0
💻 JAVA
字号:
/* * @(#)LegacyServerSocketManagerImpl.java	1.94 04/06/21 * * Copyright 2004 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.ServerSocket;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import org.omg.CORBA.INITIALIZE;import org.omg.CORBA.INTERNAL;import org.omg.CORBA.CompletionStatus;import com.sun.corba.se.pept.transport.Acceptor;import com.sun.corba.se.pept.transport.ByteBufferPool;import com.sun.corba.se.pept.transport.ContactInfo;import com.sun.corba.se.pept.transport.Selector;import com.sun.corba.se.spi.ior.IOR;import com.sun.corba.se.spi.ior.iiop.IIOPProfile ;import com.sun.corba.se.spi.ior.ObjectKeyTemplate;import com.sun.corba.se.spi.ior.ObjectId ;import com.sun.corba.se.spi.orb.ORB;import com.sun.corba.se.spi.transport.CorbaTransportManager;import com.sun.corba.se.spi.legacy.connection.LegacyServerSocketEndPointInfo;import com.sun.corba.se.spi.legacy.connection.LegacyServerSocketManager;import com.sun.corba.se.spi.transport.SocketOrChannelAcceptor;import com.sun.corba.se.spi.logging.CORBALogDomains;import com.sun.corba.se.impl.encoding.EncapsOutputStream;import com.sun.corba.se.impl.legacy.connection.SocketFactoryAcceptorImpl;import com.sun.corba.se.impl.legacy.connection.USLPort;import com.sun.corba.se.impl.orbutil.ORBUtility;import com.sun.corba.se.impl.transport.SocketOrChannelAcceptorImpl;import com.sun.corba.se.impl.logging.ORBUtilSystemException;public class LegacyServerSocketManagerImpl     implements	LegacyServerSocketManager{    protected ORB orb;    private ORBUtilSystemException wrapper ;        public LegacyServerSocketManagerImpl(ORB orb)     {	this.orb = orb;	wrapper = ORBUtilSystemException.get( orb,	    CORBALogDomains.RPC_TRANSPORT ) ;    }    ////////////////////////////////////////////////////    //    // LegacyServerSocketManager    //    // Only used in ServerManagerImpl.    public int legacyGetTransientServerPort(String type)    {	return legacyGetServerPort(type, false);    }    // Only used by POAPolicyMediatorBase.    public synchronized int legacyGetPersistentServerPort(String socketType)    {	if (orb.getORBData().getServerIsORBActivated()) {	    // this server is activated by orbd	    return legacyGetServerPort(socketType, true);	} else if (orb.getORBData().getPersistentPortInitialized()) {	    // this is a user-activated server	    return orb.getORBData().getPersistentServerPort();	} else {	    throw wrapper.persistentServerportNotSet( 		CompletionStatus.COMPLETED_MAYBE);	}    }    // Only used by PI IORInfoImpl.    public synchronized int legacyGetTransientOrPersistentServerPort(        String socketType)    {	    return legacyGetServerPort(socketType, 				       orb.getORBData()				       .getServerIsORBActivated());    }    // Used in RepositoryImpl, ServerManagerImpl, POAImpl,    // POAPolicyMediatorBase, TOAImpl.    // To get either default or bootnaming endpoint.    public synchronized LegacyServerSocketEndPointInfo legacyGetEndpoint(        String name)    {	Iterator iterator = getAcceptorIterator();	while (iterator.hasNext()) {	    LegacyServerSocketEndPointInfo endPoint = cast(iterator.next());	    if (endPoint != null && name.equals(endPoint.getName())) {		return endPoint;	    }	}	throw new INTERNAL("No acceptor for: " + name);    }    // Check to see if the given port is equal to any of the ORB Server Ports.    // XXX Does this need to change for the multi-homed case?    // Used in IIOPProfileImpl, ORBImpl.    public boolean legacyIsLocalServerPort(int port)     {	Iterator iterator = getAcceptorIterator();	while (iterator.hasNext()) { 	    LegacyServerSocketEndPointInfo endPoint = cast(iterator.next());	    if (endPoint != null && endPoint.getPort() == port) {		return true;	    }	}        return false;    }    ////////////////////////////////////////////////////    //    // Implementation.    //    private int legacyGetServerPort (String socketType, boolean isPersistent)    {	Iterator endpoints = getAcceptorIterator();	while (endpoints.hasNext()) {	    LegacyServerSocketEndPointInfo ep = cast(endpoints.next());	    if (ep != null && ep.getType().equals(socketType)) {		if (isPersistent) {		    return ep.getLocatorPort();		} else {		    return ep.getPort();		}	    }	}	return -1;    }    private Iterator getAcceptorIterator()    {        Collection acceptors = 	    orb.getCorbaTransportManager().getAcceptors(null, null);        if (acceptors != null) {            return acceptors.iterator();	}	throw wrapper.getServerPortCalledBeforeEndpointsInitialized() ;    }    private LegacyServerSocketEndPointInfo cast(Object o)    {	if (o instanceof LegacyServerSocketEndPointInfo) {	    return (LegacyServerSocketEndPointInfo) o;	}	return null;    }    protected void dprint(String msg)    {	ORBUtility.dprint("LegacyServerSocketManagerImpl", msg);    }}// End of file.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -