socketfactorycontactinfolistiteratorimpl.java

来自「JAVA 所有包」· Java 代码 · 共 100 行

JAVA
100
字号
/* * @(#)SocketFactoryContactInfoListIteratorImpl.java	1.12 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 org.omg.CORBA.CompletionStatus;import org.omg.CORBA.SystemException;import com.sun.corba.se.pept.transport.ContactInfo;import com.sun.corba.se.spi.legacy.connection.GetEndPointInfoAgainException;import com.sun.corba.se.spi.orb.ORB;import com.sun.corba.se.spi.transport.CorbaContactInfo;import com.sun.corba.se.spi.transport.CorbaContactInfoList;import com.sun.corba.se.spi.transport.SocketInfo;import com.sun.corba.se.impl.transport.CorbaContactInfoListIteratorImpl;import com.sun.corba.se.impl.transport.SharedCDRContactInfoImpl;public class SocketFactoryContactInfoListIteratorImpl    extends CorbaContactInfoListIteratorImpl{    private SocketInfo socketInfoCookie;    public SocketFactoryContactInfoListIteratorImpl(        ORB orb,	CorbaContactInfoList corbaContactInfoList)    {	super(orb, corbaContactInfoList, null, null);    }    ////////////////////////////////////////////////////    //    // java.util.Iterator    //    public boolean hasNext()    {	return true;    }    public Object next()    {	if (contactInfoList.getEffectiveTargetIOR().getProfile().isLocal()){	    return new SharedCDRContactInfoImpl(		orb, contactInfoList,		contactInfoList.getEffectiveTargetIOR(),		orb.getORBData().getGIOPAddressDisposition());	} else {	    // REVISIT:	    // on comm_failure maybe need to give IOR instead of located.	    return new SocketFactoryContactInfoImpl(	        orb, contactInfoList,		contactInfoList.getEffectiveTargetIOR(),		orb.getORBData().getGIOPAddressDisposition(),		socketInfoCookie);	}    }    ////////////////////////////////////////////////////    //    // pept.ContactInfoListIterator    //    public boolean reportException(ContactInfo contactInfo, 				   RuntimeException ex)    {	this.failureContactInfo = (CorbaContactInfo)contactInfo;	this.failureException = ex;	if (ex instanceof org.omg.CORBA.COMM_FAILURE) {	    if (ex.getCause() instanceof GetEndPointInfoAgainException) {		socketInfoCookie = 		    ((GetEndPointInfoAgainException) ex.getCause())		    .getEndPointInfo();		return true;	    }	    SystemException se = (SystemException) ex;	    if (se.completed == CompletionStatus.COMPLETED_NO) {		if (contactInfoList.getEffectiveTargetIOR() !=		    contactInfoList.getTargetIOR())                 {		    // retry from root ior                    contactInfoList.setEffectiveTargetIOR(                        contactInfoList.getTargetIOR());		    return true;		}	    }	}	return false;    }}// End of file.

⌨️ 快捷键说明

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