|
From: <xsp...@us...> - 2016-04-12 12:30:53
|
Revision: 1900
http://sourceforge.net/p/jason/svn/1900
Author: xsplyter
Date: 2016-04-12 12:30:50 +0000 (Tue, 12 Apr 2016)
Log Message:
-----------
Refactoring of the sleep/wakeup methods
Modified Paths:
--------------
trunk/src/jason/architecture/AgArch.java
trunk/src/jason/asSemantics/ConcurrentInternalAction.java
trunk/src/jason/asSemantics/GoalListenerForMetaEvents.java
trunk/src/jason/asSemantics/TransitionSystem.java
trunk/src/jason/infra/centralised/CentralisedAgArch.java
trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java
trunk/src/jason/infra/centralised/CentralisedEnvironment.java
trunk/src/jason/infra/components/ActComponent.java
trunk/src/jason/infra/components/AgentComponent.java
trunk/src/jason/infra/components/CircumstanceListenerComponents.java
trunk/src/jason/infra/components/DeliberateComponent.java
trunk/src/jason/infra/components/SenseComponent.java
trunk/src/jason/stdlib/send.java
trunk/src/jason/stdlib/wait.java
Modified: trunk/src/jason/architecture/AgArch.java
===================================================================
--- trunk/src/jason/architecture/AgArch.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/architecture/AgArch.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -198,7 +198,7 @@
/** called to inform that the action execution is finished */
public void actionExecuted(ActionExec act) {
getTS().getC().addFeedbackAction(act);
- wakeUpAct(false);
+ wakeUpAct();
}
/** Returns true if the agent can enter in sleep mode. */
@@ -217,19 +217,19 @@
successor.wake();
}
- public void wakeUpSense(boolean ts) {
+ public void wakeUpSense() {
if (successor != null)
- wakeUpSense(ts);
+ wakeUpSense();
}
- public void wakeUpDeliberate(boolean ts) {
+ public void wakeUpDeliberate() {
if (successor != null)
- wakeUpDeliberate(ts);
+ wakeUpDeliberate();
}
- public void wakeUpAct(boolean ts) {
+ public void wakeUpAct() {
if (successor != null)
- wakeUpAct(ts);
+ wakeUpAct();
}
Modified: trunk/src/jason/asSemantics/ConcurrentInternalAction.java
===================================================================
--- trunk/src/jason/asSemantics/ConcurrentInternalAction.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/asSemantics/ConcurrentInternalAction.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -147,7 +147,7 @@
}
}
});
- ts.getUserAgArch().wakeUpDeliberate(false);
+ ts.getUserAgArch().wakeUpDeliberate();
}
public void destroy() throws Exception {
Modified: trunk/src/jason/asSemantics/GoalListenerForMetaEvents.java
===================================================================
--- trunk/src/jason/asSemantics/GoalListenerForMetaEvents.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/asSemantics/GoalListenerForMetaEvents.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -50,6 +50,6 @@
}
});
- ts.getUserAgArch().wakeUpDeliberate(false);
+ ts.getUserAgArch().wakeUpDeliberate();
}
}
Modified: trunk/src/jason/asSemantics/TransitionSystem.java
===================================================================
--- trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -1317,7 +1317,7 @@
}
}
});
- getUserAgArch().wakeUpSense(false);
+ getUserAgArch().wakeUpSense();
}
}, deadline, TimeUnit.MILLISECONDS);
}
Modified: trunk/src/jason/infra/centralised/CentralisedAgArch.java
===================================================================
--- trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -300,17 +300,17 @@
}
@Override
- public void wakeUpSense(boolean ts) {
+ public void wakeUpSense() {
wake();
}
@Override
- public void wakeUpDeliberate(boolean ts) {
+ public void wakeUpDeliberate() {
wake();
}
@Override
- public void wakeUpAct(boolean ts) {
+ public void wakeUpAct() {
wake();
}
@@ -346,7 +346,7 @@
public void receiveMsg(Message m) {
mbox.offer(m);
- wakeUpSense(false);
+ wakeUpSense();
}
public void broadcast(jason.asSemantics.Message m) throws Exception {
Modified: trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java
===================================================================
--- trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -18,10 +18,6 @@
private ExecutorService executorDeliberate;
private ExecutorService executorAct;
- private boolean sleepingSense = false;
- private boolean sleepingDeliberate = false;
- private boolean sleepingAct = false;
-
public Object objSense = new Object();
public Object objDeliberate = new Object();
public Object objAct = new Object();
@@ -34,70 +30,18 @@
actComponent = new ActComponent(this);
}
-
- public void wakeUpSense(boolean ts) {
- synchronized (objSense) {
- if (ts || sleepingSense) {
- sleepingSense = false;
- senseComponent.enqueueExecutor(ts);
- }
- }
+ public void wakeUpSense() {
+ senseComponent.wakeUp();
}
- public void wakeUpDeliberate(boolean ts) {
- synchronized (objDeliberate) {
- if (ts || sleepingDeliberate) {
- sleepingDeliberate = false;
- deliberateComponent.enqueueExecutor(ts);
- }
- }
+ public void wakeUpDeliberate() {
+ deliberateComponent.wakeUp();
}
- public void wakeUpAct(boolean ts) {
- synchronized (objAct) {
- if (ts || sleepingAct) {
- sleepingAct = false;
- actComponent.enqueueExecutor(ts);
- }
- }
+ public void wakeUpAct() {
+ actComponent.wakeUp();
}
-
- public void sleepSense() {
- sleepingSense = true;
- }
- public boolean isSleepingSense() {
- return sleepingSense;
- }
-
- public void sleepDeliberate() {
- sleepingDeliberate = true;
- }
-
- public boolean isSleepingDeliberate() {
- return sleepingDeliberate;
- }
-
- public void sleepAct() {
- sleepingAct = true;
- }
-
- public boolean isSleepingAct() {
- return sleepingAct;
- }
-
- public boolean canSleepSense() {
- return getTS().canSleepSense();
- }
-
- public boolean canSleepDeliberate() {
- return getTS().canSleepDeliberate();
- }
-
- public boolean canSleepAct() {
- return getTS().canSleepAct();
- }
-
public SenseComponent getSenseComponent() {
return senseComponent;
}
Modified: trunk/src/jason/infra/centralised/CentralisedEnvironment.java
===================================================================
--- trunk/src/jason/infra/centralised/CentralisedEnvironment.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/infra/centralised/CentralisedEnvironment.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -99,16 +99,16 @@
public void informAgsEnvironmentChanged(String... agents) {
if (agents.length == 0) {
for (CentralisedAgArch ag: masRunner.getAgs().values()) {
- ag.getTS().getUserAgArch().wakeUpSense(false);
+ ag.getTS().getUserAgArch().wakeUpSense();
}
} else {
for (String agName: agents) {
CentralisedAgArch ag = masRunner.getAg(agName);
if (ag != null) {
if (ag instanceof CentralisedAgArchAsynchronous) {
- ((CentralisedAgArchAsynchronous) ag.getTS().getUserAgArch()).wakeUpSense(false);
+ ((CentralisedAgArchAsynchronous) ag.getTS().getUserAgArch()).wakeUpSense();
} else {
- ag.wakeUpSense(false);
+ ag.wakeUpSense();
}
} else {
logger.log(Level.SEVERE, "Error sending message notification: agent " + agName + " does not exist!");
@@ -125,7 +125,7 @@
for (String agName: agentsToNotify) {
CentralisedAgArch ag = masRunner.getAg(agName);
if (ag != null) {
- ag.getTS().getUserAgArch().wakeUpSense(false);
+ ag.getTS().getUserAgArch().wakeUpSense();
} else {
logger.log(Level.SEVERE, "Error sending message notification: agent " + agName + " does not exist!");
}
Modified: trunk/src/jason/infra/components/ActComponent.java
===================================================================
--- trunk/src/jason/infra/components/ActComponent.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/infra/components/ActComponent.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -3,12 +3,20 @@
import jason.infra.centralised.CentralisedAgArchAsynchronous;
public class ActComponent extends AgentComponent {
- private boolean inQueue = true;
public ActComponent(CentralisedAgArchAsynchronous centralisedAgArchAsynchronous) {
super(centralisedAgArchAsynchronous);
}
+ public void wakeUp() {
+ synchronized (ag.objAct) {
+ if (sleeping) {
+ sleeping = false;
+ enqueueExecutor(false);
+ }
+ }
+ }
+
public void enqueueExecutor(boolean ts) {
if (!inQueue || ts) {
inQueue = true;
@@ -16,6 +24,10 @@
}
}
+ public boolean canSleep() {
+ return ag.getTS().canSleepAct();
+ }
+
public void run() {
int cycles = ag.getCyclesAct();
//int number_cycles = 1;
@@ -26,12 +38,12 @@
synchronized (ag.objAct) {
- if (ag.canSleepAct()) {
+ if (canSleep()) {
inQueue = false;
- ag.sleepAct();
+ sleep();
return;
} else if (i == cycles) {
- ag.wakeUpAct(true);
+ enqueueExecutor(true);
return;
}
}
Modified: trunk/src/jason/infra/components/AgentComponent.java
===================================================================
--- trunk/src/jason/infra/components/AgentComponent.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/infra/components/AgentComponent.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -4,10 +4,22 @@
public abstract class AgentComponent implements Runnable {
protected CentralisedAgArchAsynchronous ag;
+ protected boolean inQueue = true;
+ protected boolean sleeping = false;
public AgentComponent(CentralisedAgArchAsynchronous ag) {
this.ag = ag;
}
+ public void sleep() {
+ sleeping = true;
+ }
+
+ public boolean isSleeping() {
+ return sleeping;
+ }
+
+ public abstract void wakeUp();
public abstract void enqueueExecutor(boolean ts);
+ public abstract boolean canSleep();
}
Modified: trunk/src/jason/infra/components/CircumstanceListenerComponents.java
===================================================================
--- trunk/src/jason/infra/components/CircumstanceListenerComponents.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/infra/components/CircumstanceListenerComponents.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -13,11 +13,11 @@
}
public void notifyDeliberate() {
- ag.wakeUpDeliberate(false);
+ ag.wakeUpDeliberate();
}
public void notifyAct() {
- ag.wakeUpAct(false);
+ ag.wakeUpAct();
}
public void eventAdded(Event e) {
Modified: trunk/src/jason/infra/components/DeliberateComponent.java
===================================================================
--- trunk/src/jason/infra/components/DeliberateComponent.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/infra/components/DeliberateComponent.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -3,13 +3,24 @@
import jason.infra.centralised.CentralisedAgArchAsynchronous;
public class DeliberateComponent extends AgentComponent {
- private boolean inQueue = true;
-
+
public DeliberateComponent(CentralisedAgArchAsynchronous centralisedAgArchAsynchronous) {
super(centralisedAgArchAsynchronous);
}
+ public boolean canSleep() {
+ return ag.getTS().canSleepDeliberate();
+ }
+ public void wakeUp() {
+ synchronized (ag.objDeliberate) {
+ if (sleeping) {
+ sleeping = false;
+ enqueueExecutor(false);
+ }
+ }
+ }
+
public void enqueueExecutor(boolean ts) {
if (!inQueue || ts) {
inQueue = true;
@@ -31,12 +42,12 @@
synchronized (ag.objDeliberate) {
- if (ag.canSleepDeliberate()) {
+ if (canSleep()) {
inQueue = false;
- ag.sleepDeliberate();
+ sleep();
return;
} else if (i == cycles) {
- ag.wakeUpDeliberate(true);
+ enqueueExecutor(true);
return;
}
}
Modified: trunk/src/jason/infra/components/SenseComponent.java
===================================================================
--- trunk/src/jason/infra/components/SenseComponent.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/infra/components/SenseComponent.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -3,12 +3,34 @@
import jason.infra.centralised.CentralisedAgArchAsynchronous;
public class SenseComponent extends AgentComponent {
- private boolean inQueue = true;
public SenseComponent(CentralisedAgArchAsynchronous centralisedAgArchAsynchronous) {
super(centralisedAgArchAsynchronous);
}
+ public boolean canSleep() {
+ return ag.getTS().canSleepSense();
+ }
+
+ public void wakeUp() {
+ synchronized (ag.objSense) {
+ if (sleeping) {
+ sleeping = false;
+ enqueueExecutor(false);
+ }
+ }
+ }
+
+ /*
+ public void wakeUp(boolean ts) {
+ synchronized (ag.objSense) {
+ if (ts || sleeping) {
+ sleeping = false;
+ enqueueExecutor(ts);
+ }
+ }
+ }*/
+
public void enqueueExecutor(boolean ts) {
if (!inQueue || ts) {
inQueue = true;
@@ -26,12 +48,12 @@
ag.getTS().sense();
synchronized (ag.objSense) {
- if (ag.canSleepSense()) {
+ if (canSleep()) {
inQueue = false;
- ag.sleepSense();
+ sleep();
return;
} else if (i == cycles) {
- ag.wakeUpSense(true);
+ enqueueExecutor(true);
return;
}
}
Modified: trunk/src/jason/stdlib/send.java
===================================================================
--- trunk/src/jason/stdlib/send.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/stdlib/send.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -204,7 +204,7 @@
intention.peek().getUnif().unifies(send.getTerm(3), timeoutAns);
// add the intention back in C.I
ts.getC().resumeIntention(intention);
- ts.getUserAgArch().wakeUpAct(false);
+ ts.getUserAgArch().wakeUpAct();
}
}
}, (long)((NumberTerm)tto).solve(), TimeUnit.MILLISECONDS);
Modified: trunk/src/jason/stdlib/wait.java
===================================================================
--- trunk/src/jason/stdlib/wait.java 2016-04-12 09:01:45 UTC (rev 1899)
+++ trunk/src/jason/stdlib/wait.java 2016-04-12 12:30:50 UTC (rev 1900)
@@ -208,7 +208,7 @@
}
}
});
- ts.getUserAgArch().wakeUpDeliberate(false);
+ ts.getUserAgArch().wakeUpDeliberate();
}
public void eventAdded(Event e) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|