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

📄 callbackthread.java

📁 java在线商店的源代码。编写十分规范的哦
💻 JAVA
字号:
/**
 * Copyright (c) 1996-2004 Borland Software Corporation.  All Rights Reserved.
 * 
 * This SOURCE CODE FILE, which has been provided by Borland Software as part
 * of a Borland Software product for use ONLY by licensed users of the product,
 * includes CONFIDENTIAL and PROPRIETARY information of Borland Software.  
 *
 * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS 
 * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
 * THE PRODUCT.
 *
 * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD BORLAND SOFTWARE, ITS
 * RELATED COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY
 * CLAIMS OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR
 * DISTRIBUTION OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES
 * ARISING OUT OF OR RESULTING FROM THE USE, MODIFICATION, OR
 * DISTRIBUTION OF PROGRAMS OR FILES CREATED FROM, BASED ON, AND/OR
 * DERIVED FROM THIS SOURCE CODE FILE.
 */
//------------------------------------------------------------------------------
// Copyright (c) 1996-2004 Borland Software Corporation.  All Rights Reserved.
//------------------------------------------------------------------------------

package com.borland.samples.creditapproval.client;

import com.borland.samples.creditapproval.CORBAInterface.*;

/**
 *  CallbackThread instantiates a CORBA callback object on the server for
 *  sending messages back to the client during server processing.
 */
public class CallbackThread extends Thread {

  protected ClientCallbackImpl callbackObservable = null;
  protected ClientCallback callback = null;

  /**
   *  Return a reference to the callback object
   *  @return ClientCallback
   */
  public ClientCallback getCallback() {
    return callback;
  }

  /**
   *  Return a reference to the observable object
   *  @return ClientCallbackImpl
   */
  public ClientCallbackImpl getCallbackObservable() {
    return callbackObservable;
  }

  /**
   *  Construct the CallbackThread Object
  */
  public CallbackThread() {
    // Create the ClientCallBack servant class
    callbackObservable = new ClientCallbackImpl();
  }

  /**
   *  Create the callback object and register it with the ORB
   */
  public void run() {
    try {
      // Initialize the ORB
      org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init((String[])null, null);

      // Initialize the POA
      org.omg.CORBA.Object obj = orb.resolve_initial_references("RootPOA");
      org.omg.PortableServer.POA rootPOA = org.omg.PortableServer.POAHelper.narrow(obj);
      org.omg.CORBA.Any any = orb.create_any();
      com.inprise.vbroker.PortableServerExt.BindSupportPolicyValueHelper.insert(any, com.inprise.vbroker.PortableServerExt.BindSupportPolicyValue.BY_INSTANCE);
      org.omg.CORBA.Policy bsPolicy = orb.create_policy(com.inprise.vbroker.PortableServerExt.BIND_SUPPORT_POLICY_TYPE.value, any);
      org.omg.CORBA.Policy[] policies = {
//        create a transient server object
//        rootPOA.create_lifespan_policy(org.omg.PortableServer.LifespanPolicyValue.PERSISTENT),
        bsPolicy,
      };
      org.omg.PortableServer.POA myPOA = rootPOA.create_POA("callback_thread_poa", rootPOA.the_POAManager(), policies);

      // Make an ID for the callback thread
      byte [] callbackID = "Callback".getBytes();

      // Activate the servant with the ID
      myPOA.activate_object_with_id(callbackID, callbackObservable);

      // Activate the POA manager
      rootPOA.the_POAManager().activate();

      callback = ClientCallbackHelper.narrow(myPOA.servant_to_reference(callbackObservable));
    }
    catch (Exception e) {
      e.printStackTrace();
    }

  }
}

⌨️ 快捷键说明

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