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

📄 hostlist.java

📁 在IBM AGLET平台下可实现AGNET注册服务的代码
💻 JAVA
字号:
package examples.finder;

import com.ibm.aglet.*;
import com.ibm.aglet.event.*;
import java.io.PrintStream;
import java.net.URL;
import java.util.Enumeration;
import java.util.Hashtable;

public class HostList extends Aglet
    implements PersistencyListener, MobilityListener
{

    Hashtable hostList;

    public HostList()
    {
    }

    public void appendList(Hashtable hashtable)
    {
        for(Enumeration enumeration = hashtable.keys(); enumeration.hasMoreElements();)
        {
            Object obj = enumeration.nextElement();
            if((hashtable.get(obj) instanceof String) && hostList.get(obj) == null)
            {
                System.out.println("new: " + obj);
                hostList.put(obj, "new");
            }
        }

    }

    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("register"))
        {
            if(message.getArg() instanceof String)
                hostList.put(message.getArg(), "running");
            return true;
        }
        if(message.sameKind("append"))
        {
            if(message.getArg() instanceof Hashtable)
                appendList((Hashtable)message.getArg());
            return true;
        }
        if(message.sameKind("getlist"))
        {
            message.sendReply(hostList);
            return true;
        }
        if(message.sameKind("shutdown"))
        {
            try
            {
                deactivate(0L);
            }
            catch(Exception exception1) { }
            return true;
        }
        if(message.sameKind("dispose"))
        {
            dispose();
            return true;
        } else
        {
            return true;
        }
    }

    public void onActivation(PersistencyEvent persistencyevent)
    {
        AgletContext agletcontext = getAgletContext();
        AgletProxy agletproxy = getProxy();
        AgletProxy agletproxy1 = (AgletProxy)agletcontext.getProperty("hostlist");
        if(agletproxy1 != null && agletproxy1.isValid())
        {
            try
            {
                agletproxy1.sendMessage(new Message("append", hostList));
            }
            catch(Exception exception)
            {
                System.out.println(exception);
            }
            dispose();
        } else
        {
            agletcontext.setProperty("hostlist", agletproxy);
        }
    }

    public void onArrival(MobilityEvent mobilityevent)
    {
        dispose();
    }

    public void onCreation(Object obj)
    {
        AgletContext agletcontext = getAgletContext();
        AgletProxy agletproxy = getProxy();
        addMobilityListener(this);
        addPersistencyListener(this);
        AgletProxy agletproxy1 = (AgletProxy)agletcontext.getProperty("hostlist");
        if(agletproxy1 != null && agletproxy1.isValid())
        {
            if(obj instanceof Hashtable)
                try
                {
                    agletproxy1.sendMessage(new Message("append", obj));
                }
                catch(Exception exception)
                {
                    System.out.println(exception);
                }
            dispose();
        } else
        {
            agletcontext.setProperty("hostlist", agletproxy);
            if(obj instanceof Hashtable)
                hostList = (Hashtable)((Hashtable)obj).clone();
            else
                hostList = new Hashtable();
            hostList.put(agletcontext.getHostingURL().toString(), "running");
        }
    }

    public void onDeactivating(PersistencyEvent persistencyevent)
    {
        getAgletContext().setProperty("hostlist", null);
    }

    public void onDispatching(MobilityEvent mobilityevent)
    {
    }

    public void onRetraction(MobilityEvent mobilityevent)
    {
    }

    public void onReverting(MobilityEvent mobilityevent)
    {
    }
}

⌨️ 快捷键说明

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