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

📄 locatorimpl.java

📁 移动Agent编程工具Naplet
💻 JAVA
字号:
/* * @<#>Locator.java version 0.1, 7/1/2001 * * THIS PROGRAM IS FREE SOFTWARE; YOU CAN DISTRIBUTE IT AND/OR * MODIFY IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE  * AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION. * * THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE  * GNU GENERAL PUBLIC LICENSE FOR MORE DETAILS. * * Copyright (c) 2000 Wayne State University. All Rights Reserved. */package naplet.tracing;import java.rmi.Remote;import java.rmi.RemoteException;import naplet.*;import naplet.server.*;import naplet.directory.*;import java.io.*;import java.net.*;import java.util.*;public class LocatorImpl implements Locator {       static private int DefaultDelay = 100;      static private int DefaultTimeOut = 5000;      private static LocatorImpl instance = null;      private ServerProperty property;      protected LocatorImpl(ServerProperty property) {	 this.property = property;      }      public static LocatorImpl getInstance(ServerProperty property) {	 if (instance==null)	    instance = new LocatorImpl(property);	 return instance;      }      public void update( NapletID id, URN server ) {};      public URN lookup( NapletID nid ) 	 throws NapletLocateException {	 return lookup( nid, DefaultTimeOut );      }      /**       * Look up naplet server       *       * @param nid Naplet id        * @param timeout Time limit to locate a naplet       */      public URN lookup( NapletID nid, long timeout ) 	 throws NapletLocateException {			 int delay = DefaultDelay;	 URN server = null; 			 NapletDirectory directory = property.getNapletDirectory();	 boolean stop = false;	 long begin = System.currentTimeMillis();	 if (directory==null) {	    throw new NapletLocateException(	       "Cann't locate the naplet without naplet Directory");	 } else {	    while ( !stop ) {	       System.out.println("Try to locate Naplet server");	       try {		  server = directory.lookup( nid );		  stop = true;	       } catch (DirectoryAccessException dae) {		  long end = System.currentTimeMillis();		  if (end-begin<timeout) {		     try {			Thread.sleep(delay<<1);		     } catch (InterruptedException ie) { 			stop = true; 		     }		  } else {		     stop = true;		  }	       } catch (java.rmi.RemoteException re) {		  throw new NapletLocateException(		     "Cann't locate the naplet");	       }	    }		 }		 return server;      }}

⌨️ 快捷键说明

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