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

📄 stationaryaglet.java

📁 在IBM AGLET平台下可实现AGLET在不同主机间巡回的代码
💻 JAVA
字号:
package examples.itinerary;

import com.ibm.aglet.*;
import com.ibm.aglet.event.MobilityEvent;
import com.ibm.aglet.event.MobilityListener;
import com.ibm.agletx.patterns.Meeting;
import java.io.PrintStream;

public final class StationaryAglet extends Aglet
    implements MobilityListener
{

    private Meeting meeting;
    boolean dispatched;

    public StationaryAglet()
    {
        meeting = null;
        dispatched = false;
    }

    public boolean handleMessage(Message message)
    {
        if(message.sameKind("dispose"))
            try
            {
                dispose();
                return true;
            }
            catch(Exception exception)
            {
                exception.printStackTrace();
            }
        else
        if(meeting != null && message.sameKind(meeting.getID()))
        {
            meet((AgletID)message.getArg());
            message.sendReply(getAgletID());
            dispose();
            return true;
        }
        return false;
    }

    private void meet(AgletID agletid)
    {
        print("[" + getAgletID() + "] I met with VisitingAglet [id=" + agletid + "]");
    }

    public void onArrival(MobilityEvent mobilityevent)
    {
        print("on Arrival");
        dispatched = true;
        try
        {
            meeting.ready(this);
        }
        catch(Exception exception)
        {
            exception.printStackTrace();
        }
    }

    public void onCreation(Object obj)
    {
        print("created!");
        addMobilityListener(this);
        meeting = (Meeting)obj;
    }

    public void onDispatching(MobilityEvent mobilityevent)
    {
        if(dispatched)
            throw new SecurityException("Don't try to move me!!");
        else
            return;
    }

    public void onDisposing()
    {
        print("disposed!!");
    }

    public void onReverting(MobilityEvent mobilityevent)
    {
        throw new SecurityException();
    }

    private void print(String s)
    {
        System.out.println(">>>StationaryAglet:" + s);
    }
}

⌨️ 快捷键说明

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