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

📄 hosttravellor.java

📁 在IBM AGLET平台下可实现AGNET注册服务的代码
💻 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 + -