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

📄 bootstrapresolverimpl.java

📁 java1.6众多例子参考
💻 JAVA
字号:
package com.sun.corba.se.impl.resolver ;import org.omg.CORBA.portable.InputStream ;import org.omg.CORBA.portable.OutputStream ;import org.omg.CORBA.portable.ApplicationException ;import org.omg.CORBA.portable.RemarshalException ;import com.sun.corba.se.spi.ior.IOR ;import com.sun.corba.se.spi.ior.IORFactories ;import com.sun.corba.se.spi.ior.IORTemplate ;import com.sun.corba.se.spi.ior.ObjectKey ;import com.sun.corba.se.spi.ior.ObjectKeyFactory ;import com.sun.corba.se.spi.ior.iiop.IIOPAddress ;import com.sun.corba.se.spi.ior.iiop.IIOPProfileTemplate ;import com.sun.corba.se.spi.ior.iiop.IIOPFactories ;import com.sun.corba.se.spi.ior.iiop.GIOPVersion ;import com.sun.corba.se.spi.logging.CORBALogDomains ;import com.sun.corba.se.spi.orb.ORB ;import com.sun.corba.se.spi.resolver.Resolver ;import com.sun.corba.se.impl.logging.ORBUtilSystemException ;import com.sun.corba.se.impl.orbutil.ORBUtility ;public class BootstrapResolverImpl implements Resolver {    private org.omg.CORBA.portable.Delegate bootstrapDelegate ;    private ORBUtilSystemException wrapper ;    public BootstrapResolverImpl(ORB orb, String host, int port) {	wrapper = ORBUtilSystemException.get( orb, 	    CORBALogDomains.ORB_RESOLVER ) ;	// Create a new IOR with the magic of INIT	byte[] initialKey = "INIT".getBytes() ;	ObjectKey okey = orb.getObjectKeyFactory().create(initialKey) ;	IIOPAddress addr = IIOPFactories.makeIIOPAddress( orb, host, port ) ;	IIOPProfileTemplate ptemp = IIOPFactories.makeIIOPProfileTemplate(	    orb, GIOPVersion.V1_0, addr);	    	IORTemplate iortemp = IORFactories.makeIORTemplate( okey.getTemplate() ) ;	iortemp.add( ptemp ) ;	IOR initialIOR = iortemp.makeIOR( (com.sun.corba.se.spi.orb.ORB)orb, 	    "", okey.getId() ) ;	bootstrapDelegate = ORBUtility.makeClientDelegate( initialIOR ) ;	    }    /**     * For the BootStrap operation we do not expect to have more than one      * parameter. We do not want to extend BootStrap protocol any further,     * as INS handles most of what BootStrap can handle in a portable way.     *     * @return InputStream which contains the response from the      * BootStrapOperation.     */    private InputStream invoke( String operationName, String parameter )    { 	boolean remarshal = true;	// Invoke.	InputStream inStream = null;	// If there is a location forward then you will need	// to invoke again on the updated information.	// Just calling this same routine with the same host/port	// does not take the location forward info into account.	while (remarshal) {	    org.omg.CORBA.Object objref = null ;	    remarshal = false;	    OutputStream os = (OutputStream) bootstrapDelegate.request( objref, 		operationName, true);            if ( parameter != null ) {                os.write_string( parameter );            }	    try {		// The only reason a null objref is passed is to get the version of		// invoke used by streams.  Otherwise the PortableInterceptor		// call stack will become unbalanced since the version of		// invoke which only takes the stream does not call 		// PortableInterceptor ending points.		// Note that the first parameter is ignored inside invoke.		inStream = bootstrapDelegate.invoke( objref, os);	    } catch (ApplicationException e) {		throw wrapper.bootstrapApplicationException( e ) ;	    } catch (RemarshalException e) {		// XXX log this		remarshal = true;	    }	}        return inStream;    }    public org.omg.CORBA.Object resolve( String identifier )     {	InputStream inStream = null ;	org.omg.CORBA.Object result = null ;	try { 	    inStream = invoke( "get", identifier ) ;	    result = inStream.read_Object();	    // NOTE: do note trap and ignore errors.	    // Let them flow out.	} finally {	    bootstrapDelegate.releaseReply( null, inStream ) ;	}	return result ;    }    public java.util.Set list()    {	InputStream inStream = null ;	java.util.Set result = new java.util.HashSet() ;	try {	    inStream = invoke( "list", null ) ;	    int count =	inStream.read_long();	    for (int i=0; i < count; i++) 		result.add( inStream.read_string() ) ;	    // NOTE: do note trap and ignore errors.	    // Let them flow out.	} finally {	    bootstrapDelegate.releaseReply( null, inStream ) ;	}	return result ;    }}

⌨️ 快捷键说明

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