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

📄 transientnameservice.java

📁 java1.6众多例子参考
💻 JAVA
字号:
/* * @(#)TransientNameService.java	1.49 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.naming.cosnaming;// Get CORBA typeimport org.omg.CORBA.INITIALIZE;import org.omg.CORBA.ORB;import org.omg.CORBA.CompletionStatus;import org.omg.CORBA.Policy;import org.omg.CORBA.INTERNAL;import org.omg.PortableServer.POA;import org.omg.PortableServer.LifespanPolicyValue;import org.omg.PortableServer.RequestProcessingPolicyValue;import org.omg.PortableServer.IdAssignmentPolicyValue;import org.omg.PortableServer.ServantRetentionPolicyValue;// Get org.omg.CosNaming typesimport org.omg.CosNaming.NamingContext;// Import transient naming contextimport com.sun.corba.se.impl.naming.cosnaming.TransientNamingContext;import com.sun.corba.se.impl.orbutil.ORBConstants;import com.sun.corba.se.spi.logging.CORBALogDomains;import com.sun.corba.se.impl.logging.NamingSystemException;/** * Class TransientNameService implements a transient name service * using TransientNamingContexts and TransientBindingIterators, which * implement the org.omg.CosNaming::NamingContext and org.omg.CosNaming::BindingIterator * interfaces specfied by the OMG Common Object Services Specification. * <p> * The TransientNameService creates the initial NamingContext object. * @see NamingContextImpl * @see BindingIteratorImpl * @see TransientNamingContext * @see TransientBindingIterator */public class TransientNameService{    /**     * Constructs a new TransientNameService, and creates an initial     * NamingContext, whose object     * reference can be obtained by the initialNamingContext method.     * @param orb The ORB object     * @exception org.omg.CORBA.INITIALIZE Thrown if     * the TransientNameService cannot initialize.     */    public TransientNameService(com.sun.corba.se.spi.orb.ORB orb )        throws org.omg.CORBA.INITIALIZE    {        // Default constructor uses "NameService" as the key for the Root Naming        // Context. If default constructor is used then INS's object key for        // Transient Name Service is "NameService"        initialize( orb, "NameService" );    }    /**     * Constructs a new TransientNameService, and creates an initial     * NamingContext, whose object     * reference can be obtained by the initialNamingContext method.     * @param orb The ORB object     * @param nameserviceName Stringified key used for INS Service registry     * @exception org.omg.CORBA.INITIALIZE Thrown if     * the TransientNameService cannot initialize.     */    public TransientNameService(com.sun.corba.se.spi.orb.ORB orb,        String serviceName ) throws org.omg.CORBA.INITIALIZE    {        // This constructor gives the flexibility of providing the Object Key        // for the Root Naming Context that is registered with INS.        initialize( orb, serviceName );    }    /**      * This method initializes Transient Name Service by associating Root      * context with POA and registering the root context with INS Object Keymap.     */     private void initialize( com.sun.corba.se.spi.orb.ORB orb,        String nameServiceName )        throws org.omg.CORBA.INITIALIZE    {	NamingSystemException wrapper = NamingSystemException.get( orb,	    CORBALogDomains.NAMING ) ;        try {            POA rootPOA = (POA) orb.resolve_initial_references( 		ORBConstants.ROOT_POA_NAME );            rootPOA.the_POAManager().activate();            int i = 0;            Policy[] poaPolicy = new Policy[3];            poaPolicy[i++] = rootPOA.create_lifespan_policy(                LifespanPolicyValue.TRANSIENT);            poaPolicy[i++] = rootPOA.create_id_assignment_policy(                IdAssignmentPolicyValue.SYSTEM_ID);            poaPolicy[i++] = rootPOA.create_servant_retention_policy(                ServantRetentionPolicyValue.RETAIN);            POA nsPOA = rootPOA.create_POA( "TNameService", null, poaPolicy );            nsPOA.the_POAManager().activate();            // Create an initial context            TransientNamingContext initialContext =                new TransientNamingContext(orb, null, nsPOA);            byte[] rootContextId = nsPOA.activate_object( initialContext );            initialContext.localRoot =                nsPOA.id_to_reference( rootContextId );            theInitialNamingContext = initialContext.localRoot;            orb.register_initial_reference( nameServiceName,                 theInitialNamingContext );        } catch (org.omg.CORBA.SystemException e) {	    throw wrapper.transNsCannotCreateInitialNcSys( e ) ;        } catch (Exception e) {	    throw wrapper.transNsCannotCreateInitialNc( e ) ;        }     }    /**     * Return the initial NamingContext.     * @return the object reference for the initial NamingContext.     */    public org.omg.CORBA.Object initialNamingContext()    {	return theInitialNamingContext;    }    // The initial naming context for this name service    private org.omg.CORBA.Object theInitialNamingContext;}

⌨️ 快捷键说明

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