mailboxtry20.java

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

JAVA
69
字号
import SOMA.agent.*;

import java.util.*;

public class MailboxTry20 extends Agent {
	
	private byte numMessage = 0;
	
	public void run() {
		
		SOMA.Environment env = agentSystem.getEnvironment();
		// set the shared object for MailboxTry21 agents
		Vector children = env.domainNameService.getChildrenDNS();
		agentSystem.sharedObjects.put(0, children.get(0));
		agentSystem.sharedObjects.put(1, children.get(1));
		agentSystem.sharedObjects.put(2, children.get(2));
		
		Vector data = new Vector();
		data.add(agentSystem.getPlaceID());
		data.add(getID()); // the base MailboxTry20 agent ID
		data.add(new Integer(0));
		AgentWorker firstLurker = env.agentManager.createAgent("MailboxTry21", data, false, true);
		data = new Vector();
		data.add(agentSystem.getPlaceID());
		data.add(getID()); // the base MailboxTry20 agent ID
		data.add(new Integer(1));
		AgentWorker secondLurker = env.agentManager.createAgent("MailboxTry21", data, false, true);
		data = new Vector();
		data.add(agentSystem.getPlaceID());
		data.add(getID()); // the base MailboxTry20 agent ID
		data.add(new Integer(2));
		AgentWorker thirdLurker = env.agentManager.createAgent("MailboxTry21", data, false, true);
		
		try {
			firstLurker.start();
			secondLurker.start();
			thirdLurker.start();
		} catch (AgentWorker.AgentWorkerException awe) {
			awe.printStackTrace();
		}
		
		// if the agent is not traceable, there is no mailbox
		if (mailbox != null)
			mailbox.mailListener = new Mailbox.MailListener() {
				
				public void run() {
				
					Message mex = mailbox.getMessage();
					agentSystem.getOut().println("Message received by " + mex.from);
					if (mex.message.toString().equals("lurker_agent_done"))
						numMessage++;
					agentSystem.getOut().println("" + numMessage + " message(s) arrived");
				
				}
				
			};
		idle("printSharedObjects");
		
	}
	
	public void printSharedObjects() {
		
		for (int index = agentSystem.sharedObjects.size() - 1; index >= 0; index--)
			agentSystem.getOut().println(agentSystem.sharedObjects.get(index).toString());
		
	}
	
} // end MailboxTry20

⌨️ 快捷键说明

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