- 浏览: 135361 次
- 性别:
- 来自: 福建省莆田市
文章分类
最新评论
-
houruiming:
tks for your info which helps m ...
setcontent和setcontentobject用的是同一片内存 -
turingfellow:
in.tftpd -l -s /home/tmp -u ro ...
commands -
turingfellow:
LINUX下的网络设置 ifconfig ,routeLINU ...
commands -
turingfellow:
安装 linux loopbackyum install um ...
commands
链表实现
package jade.core;
import jade.util.leap.Iterator;
import jade.util.leap.LinkedList;
import jade.util.leap.EnumIterator;
import java.util.Vector;
import jade.lang.acl.ACLMessage;
/**
@author Giovanni Rimassa - Universita` di Parma
@version $Date: 2003/11/11 13:08:30 $ $Revision: 2.6 $
*/
class MessageQueue {
//#MIDP_EXCLUDE_BEGIN
// In MIDP we use Vector instead of jade.util.leap.LinkedList as the latter has been implemented in terms of the first
private LinkedList list;
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
private Vector list;
#MIDP_INCLUDE_END*/
private int maxSize;
public MessageQueue(int size) {
maxSize = size;
//#MIDP_EXCLUDE_BEGIN
list = new LinkedList();
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
list = new Vector();
#MIDP_INCLUDE_END*/
}
public MessageQueue() {
this(0);
}
public boolean isEmpty() {
return list.isEmpty();
}
public void setMaxSize(int newSize) throws IllegalArgumentException {
if(newSize < 0)
throw new IllegalArgumentException("Invalid MsgQueue size");
maxSize = newSize;
}
public int getMaxSize() {
return maxSize;
}
/**
* @return the number of messages
* currently in the queue
**/
public int size() {
return list.size();
}
public void addFirst(ACLMessage msg) {
if((maxSize != 0) && (list.size() >= maxSize)) {
//#MIDP_EXCLUDE_BEGIN
list.removeFirst(); // FIFO replacement policy
}
list.addFirst(msg);
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
list.setElementAt(msg,0);
} else
list.insertElementAt(msg,0);
#MIDP_INCLUDE_END*/
}
public void addLast(ACLMessage msg) {
if((maxSize != 0) && (list.size() >= maxSize)){
//#MIDP_EXCLUDE_BEGIN
list.removeFirst(); // FIFO replacement policy
System.err.println("WARNING: a message has been lost by an agent because of the FIFO replacement policy of its message queue.\n Notice that, under some circumstances, this might not be the proper expected behaviour and the size of the queue needs to be increased. Check the method Agent.setQueueSize()");
}
list.addLast(msg);
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
list.removeElementAt(0);
}
list.addElement(msg);
#MIDP_INCLUDE_END*/
}
public ACLMessage removeFirst() {
//#MIDP_EXCLUDE_BEGIN
return (ACLMessage)list.removeFirst();
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
ACLMessage msg = (ACLMessage)list.firstElement();
list.removeElementAt(0);
return msg;
#MIDP_INCLUDE_END*/
}
public boolean remove(ACLMessage item) {
//#MIDP_EXCLUDE_BEGIN
return list.remove(item);
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
return list.removeElement(item);
#MIDP_INCLUDE_END*/
}
public Iterator iterator() {
//#MIDP_EXCLUDE_BEGIN
return list.iterator();
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
return new EnumIterator(list.elements());
#MIDP_INCLUDE_END*/
}
//#MIDP_EXCLUDE_BEGIN
// For persistence service
private void setMessages(java.util.List l) {
// FIXME: To be implemented
System.out.println(">>> MessageQueue::setMessages() <<<");
}
// For persistence service
private java.util.List getMessages() {
// FIXME: To be implemented
System.out.println(">>> MessageQueue::getMessages() <<<");
return null;
}
//#MIDP_EXCLUDE_END
// For persistence service
private Long persistentID;
// For persistence service
private Long getPersistentID() {
return persistentID;
}
// For persistence service
private void setPersistentID(Long l) {
persistentID = l;
}
}
package jade.core;
import jade.util.leap.Iterator;
import jade.util.leap.LinkedList;
import jade.util.leap.EnumIterator;
import java.util.Vector;
import jade.lang.acl.ACLMessage;
/**
@author Giovanni Rimassa - Universita` di Parma
@version $Date: 2003/11/11 13:08:30 $ $Revision: 2.6 $
*/
class MessageQueue {
//#MIDP_EXCLUDE_BEGIN
// In MIDP we use Vector instead of jade.util.leap.LinkedList as the latter has been implemented in terms of the first
private LinkedList list;
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
private Vector list;
#MIDP_INCLUDE_END*/
private int maxSize;
public MessageQueue(int size) {
maxSize = size;
//#MIDP_EXCLUDE_BEGIN
list = new LinkedList();
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
list = new Vector();
#MIDP_INCLUDE_END*/
}
public MessageQueue() {
this(0);
}
public boolean isEmpty() {
return list.isEmpty();
}
public void setMaxSize(int newSize) throws IllegalArgumentException {
if(newSize < 0)
throw new IllegalArgumentException("Invalid MsgQueue size");
maxSize = newSize;
}
public int getMaxSize() {
return maxSize;
}
/**
* @return the number of messages
* currently in the queue
**/
public int size() {
return list.size();
}
public void addFirst(ACLMessage msg) {
if((maxSize != 0) && (list.size() >= maxSize)) {
//#MIDP_EXCLUDE_BEGIN
list.removeFirst(); // FIFO replacement policy
}
list.addFirst(msg);
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
list.setElementAt(msg,0);
} else
list.insertElementAt(msg,0);
#MIDP_INCLUDE_END*/
}
public void addLast(ACLMessage msg) {
if((maxSize != 0) && (list.size() >= maxSize)){
//#MIDP_EXCLUDE_BEGIN
list.removeFirst(); // FIFO replacement policy
System.err.println("WARNING: a message has been lost by an agent because of the FIFO replacement policy of its message queue.\n Notice that, under some circumstances, this might not be the proper expected behaviour and the size of the queue needs to be increased. Check the method Agent.setQueueSize()");
}
list.addLast(msg);
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
list.removeElementAt(0);
}
list.addElement(msg);
#MIDP_INCLUDE_END*/
}
public ACLMessage removeFirst() {
//#MIDP_EXCLUDE_BEGIN
return (ACLMessage)list.removeFirst();
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
ACLMessage msg = (ACLMessage)list.firstElement();
list.removeElementAt(0);
return msg;
#MIDP_INCLUDE_END*/
}
public boolean remove(ACLMessage item) {
//#MIDP_EXCLUDE_BEGIN
return list.remove(item);
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
return list.removeElement(item);
#MIDP_INCLUDE_END*/
}
public Iterator iterator() {
//#MIDP_EXCLUDE_BEGIN
return list.iterator();
//#MIDP_EXCLUDE_END
/*#MIDP_INCLUDE_BEGIN
return new EnumIterator(list.elements());
#MIDP_INCLUDE_END*/
}
//#MIDP_EXCLUDE_BEGIN
// For persistence service
private void setMessages(java.util.List l) {
// FIXME: To be implemented
System.out.println(">>> MessageQueue::setMessages() <<<");
}
// For persistence service
private java.util.List getMessages() {
// FIXME: To be implemented
System.out.println(">>> MessageQueue::getMessages() <<<");
return null;
}
//#MIDP_EXCLUDE_END
// For persistence service
private Long persistentID;
// For persistence service
private Long getPersistentID() {
return persistentID;
}
// For persistence service
private void setPersistentID(Long l) {
persistentID = l;
}
}
发表评论
-
protocols
2011-04-03 19:22 925<!-- The protocols capabilit ... -
dfcap
2011-04-03 19:15 878<!-- The df capability has a ... -
booktrading /seller
2011-03-29 23:19 930<html><head><tit ... -
booktrading / manager
2011-03-29 23:18 1094<html><head><tit ... -
booktrading / common
2011-03-29 23:17 989<html><head><tit ... -
booktrading / buyer
2011-03-29 23:13 848<!-- <H3>The buyer age ... -
tomcat的context说明书
2011-03-20 17:39 805http://tomcat.apache.org/tomcat ... -
msyql的select语法
2010-09-13 22:52 107613.2.7. SELECT语法 13.2.7.1. ... -
zotero与word集成
2010-09-11 08:50 1768Manually Installing the Zotero ... -
university 2/n
2010-08-24 07:54 899Chapter 1.Introduction of regis ... -
university 1/n
2010-08-24 07:53 942chapter? Introduction ?.?The st ... -
Sun Java Bugs that affect lucene
2010-08-23 08:59 737Sometimes Lucene runs amok of b ... -
Snowball分词
2010-08-22 13:07 1226using System; using Lucene.Net. ... -
penn tree bank 6/6
2010-08-20 07:09 91911 This use of 12 Contact the - ... -
penn tree bank 5/n
2010-08-19 07:40 923always errs on the side of caut ... -
penn tree bank 4/n
2010-08-19 07:39 8194. Bracketing 4.1 Basic Methodo ... -
penn tree bank 3/n
2010-08-15 23:31 8212.3.1 Automated Stage. During t ... -
penn tree bank 2/n
2010-08-15 23:30 1505Mitchell P Marcus et al. Buildi ... -
capabilities 3/3
2010-08-11 22:58 78101<capability xmlns="ht ... -
capabilities 2/3
2010-08-11 22:57 742Fig.3.Element creation cases:a) ...
相关推荐
在JADE中,每个agent都有一个本地消息队列,用于接收和处理ACL消息。这些消息由消息头(header)、内容(content)和可选附件(attachments)组成。消息头包含了发送者和接收者的地址信息,而内容则包含了用ACL语言...
- **交互agent的通信**:通过ACL消息来实现代理之间的通信,支持私有消息队列访问等功能。 - **具有图形用户界面(GUI)的Agent**:支持GUI的集成,包括Java GUI并行模式、GUI事件驱动的ACL消息交换等方式。 - **...
- **ACL消息**: JADE支持FIPA定义的ACL消息格式,包括响应消息、Java序列化以及发送字节序列。还有专门的ACL编码器和消息模板类来处理这些消息。 **Agent行为实现** - **Behaviour类**: 行为是agent的活动单元,...
智能体可以进行内部通信,访问私有消息队列,并且能够与其他智能体进行交互。 4. 图形用户界面(GUI):JADE支持智能体具有图形用户界面,允许开发者创建可以通过图形界面与用户交互的智能体。这些智能体可以响应...
- **私有消息队列**:每个代理都有一个私有消息队列来处理接收到的消息。 - **具有图形用户界面的代理**: - **Java GUI并发模型**:为了在代理中集成图形用户界面,需要理解Java的并发模型,以确保UI线程和其他...
- **访问私有消息队列**:每个Agent都有一个私有的消息队列,用于存储接收到的消息。 - **具有图形用户界面(GUI)的Agent**:支持通过Java Swing等工具创建图形界面,以增强用户体验。 - **Java GUI并行模式**:...
- **代理间通信**: JADE 支持多种通信方式,包括直接消息传递和通过私有队列进行消息交换。 - **私有队列**: 每个代理都有一个私有队列,用于接收其他代理发送的消息。 - **带图形用户界面的代理**: JADE 支持创建...
- **访问私有消息队列**: 每个代理都有一个私有的消息队列用于处理接收到的消息。 - **具有GUI的Agent**: - **Java GUI并行模式**: 支持代理与GUI组件的并行执行。 - **GUI事件与ACL消息交换**: 可以将GUI事件...
每个代理都有自己的消息队列,可以发送、接收和处理消息。这使得系统能够分布式运行,代理可以在不同的网络节点上运行,而无需知道其他代理的具体位置。 项目中的"Visitors"子文件可能包含以下内容: 1. `Agent`类...
例如,如果一个代理需要发送消息,则必须为其定义发送消息的能力。 **5.3 能力的元素** 每个能力都由多个元素组成,这些元素定义了能力的具体行为。例如,一个发送消息的能力可能包含发送消息的方法定义。 **...
2. **初始化行为**:在代理的初始化过程中,你可以创建并添加一次性行为到代理的行为队列。例如: ```java OneShotBehaviour oneShot = new OneShotBehaviour(this) { public void doBehaviour() { // 在这里...
技术栈 base2(mirco kernel) mongoose bluebird res.api 前后端分离实践 前端:moa-frontend 和 moa-h5 public下面的采用nginx做反向代理 其他的采用express+jade精简代码...集成kue队列[需要使用mount-queues插件]
队列/播放列表,显示标题,艺术家,专辑 双击队列列表播放选定的歌曲 歌曲播放完毕后,播放队列中的下一首歌曲 播放器状态:当前歌曲标题,艺术家,专辑,经过的时间,持续时间 播放器界面:播放,停止,上一个...
- **数据结构**:路由表、队列和缓存等数据结构的设计至关重要,用于存储和管理路由信息。 - **序列化与反序列化**:将AODV协议消息结构转换为字节流进行传输,再将接收的字节流解析为协议消息对象。 - **错误...
3. **消息队列**:在高并发场景下,使用消息队列(如 RabbitMQ 或者 Redis)可以有效地分发和处理推送任务,避免服务器过载。 4. **错误处理**:在 Node.js 中,良好的错误处理机制至关重要,包括异常捕获和全局...
虽然文章内容中并未具体讲解Redis的应用场景,但是可以推测在后台系统中,Redis可能用于缓存数据、实现会话存储或做消息队列等。 总结而言,通过本文我们可以了解到,使用Node.js开发网站前台和后台的过程中,可以...
在Windows编程中,理解消息队列、窗口过程、线程管理以及内存管理等核心概念是至关重要的。 接下来,我们聚焦于脑电图分析。脑电图是一种记录大脑电活动的技术,通过在头皮上放置电极,捕捉并记录神经元放电产生的...
在Java中,可能使用了如JADE(Java Agent Development Framework)这样的框架来简化Agent的开发。 2. **分布式任务调度**:如何将计算任务分配到各个Agent,确保任务的公平性和效率,可能是项目的一部分。这可能...
前端开发中,有一个非常好用的工具,Visual Studio Code,简称VS code ...VS Code的Azure存储扩展允许您部署静态网站并浏览Azure Blob容器,文件共享,表和队列。按照本教程从VS Code部署Web应用程序到Azure存储。