savedworker.java

来自「一个agent 工具包,可以开发移动设备应用,考虑了安全措施」· Java 代码 · 共 61 行

JAVA
61
字号
package SOMA.agent.mobility;

import SOMA.agent.*;
import SOMA.Environment;
import SOMA.naming.AgentID;
import java.io.*;
import SOMA.network.connection.Daemon;

public class SavedWorker implements Serializable
{
  public AgentPacket packet;
  public boolean activate = false;

  public SavedWorker( Environment env, AgentWorker worker ) throws AgentWorker.AgentWorkerException
  {
    if( worker.getStatus() == Daemon.ON )
    {
      worker.stop();
      activate = true;
    }
    else
      activate = false;

    Object status = worker.getStatus();

    if( status == Daemon.OFF ||
        status == AgentWorker.IDLE ||
        status == AgentWorker.STOPPED )
    {
      packet = env.agentManager.packAgent( worker.agent );
    }
    else
      throw new AgentWorker.AgentWorkerException( "Cannot save worker: " + worker );
  }

  public AgentID restoreWorker( Environment env ) throws AgentWorker.AgentWorkerException
  {
    AgentID agentID = null;

    Agent agent = packet.getAgent( env );

    if( agent != null )
    {
      AgentWorker worker = env.agentManager.createWorker( agent );

      if( activate )
        worker.start();

      agentID = agent.getID();
    }
    else
      env.out.println( "SavedWorker: Error starting agent: " + packet.getAgentID() );

    return agentID;
  }

  public String toString()
  {
    return "[SavedWorker " + packet + " activate?" + activate +"]";
  }
}

⌨️ 快捷键说明

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