📄 hosttravellor.java
字号:
package examples.finder;
import com.ibm.aglet.*;
import com.ibm.aglet.event.MobilityEvent;
import com.ibm.aglet.event.MobilityListener;
import java.io.PrintStream;
import java.net.URL;
import java.util.*;
public class HostTravellor extends Aglet
implements MobilityListener
{
Hashtable hostList;
Vector visitOrder;
int nextVisit;
int count;
public HostTravellor()
{
visitOrder = new Vector();
nextVisit = 0;
count = 0;
}
public void appendList(Hashtable hashtable)
{
for(Enumeration enumeration = hashtable.keys(); enumeration.hasMoreElements();)
{
Object obj = enumeration.nextElement();
if(hostList.get(obj) == null)
hostList.put(obj, "new");
}
}
public void goNext()
{
String s = "";
do
try
{
if(nextVisit >= visitOrder.size())
{
nextVisit = 0;
count++;
setText("reset");
Thread.sleep(5000L);
}
s = (String)visitOrder.elementAt(nextVisit);
setText(count + "> goto: " + s);
Thread.sleep(2000L);
dispatch(new URL((String)visitOrder.elementAt(nextVisit++)));
}
catch(Exception exception)
{
System.out.println("dispatch to " + s + " failed");
}
while(true);
Exception exception1;
exception1;
System.out.println(exception1);
return;
}
public boolean handleMessage(Message message)
{
if(message.sameKind("dialog"))
{
try
{
int i = 0;
System.out.println("HostList -- begin");
for(Enumeration enumeration = hostList.keys(); enumeration.hasMoreElements(); System.out.println(i++ + ": " + enumeration.nextElement()));
System.out.println("HostList -- end");
}
catch(Exception exception)
{
exception.printStackTrace();
}
return true;
}
if(message.sameKind("shutdown"))
{
try
{
deactivate(0L);
}
catch(Exception exception1) { }
return true;
} else
{
return true;
}
}
public void onArrival(MobilityEvent mobilityevent)
{
AgletProxy agletproxy = (AgletProxy)getAgletContext().getProperty("hostlist");
hostList.put(getAgletContext().getHostingURL().toString(), "running");
try
{
if(agletproxy == null || !agletproxy.isValid())
{
agletproxy = getAgletContext().createAglet(getCodeBase(), "examples.finder.HostList", hostList);
} else
{
agletproxy.sendMessage(new Message("append", hostList));
Hashtable hashtable = (Hashtable)agletproxy.sendMessage(new Message("getlist"));
if(hashtable != null)
{
appendList(hashtable);
setVisitOrder();
}
}
goNext();
}
catch(Exception exception)
{
System.out.println(exception);
}
}
public void onCreation(Object obj)
{
hostList = new Hashtable();
AgletProxy agletproxy = (AgletProxy)getAgletContext().getProperty("hostlist");
hostList.put(getAgletContext().getHostingURL().toString(), "running");
addMobilityListener(this);
try
{
if(agletproxy == null || !agletproxy.isValid())
agletproxy = getAgletContext().createAglet(getCodeBase(), "examples.finder.HostList", hostList);
Hashtable hashtable = (Hashtable)agletproxy.sendMessage(new Message("getlist"));
if(hashtable != null)
appendList(hashtable);
setVisitOrder();
goNext();
}
catch(Exception exception)
{
System.out.println(exception);
}
}
public void onDispatching(MobilityEvent mobilityevent)
{
}
public void onRetraction(MobilityEvent mobilityevent)
{
}
public void onReverting(MobilityEvent mobilityevent)
{
}
public void setVisitOrder()
{
for(Enumeration enumeration = hostList.keys(); enumeration.hasMoreElements();)
{
Object obj = enumeration.nextElement();
if((obj instanceof String) && visitOrder.indexOf(obj) == -1)
{
visitOrder.addElement(obj);
System.out.println("add: " + obj);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -