m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/pl/edu/mimuw/cloudatlas/agent/Module.java
diff options
context:
space:
mode:
authorMagdalena Grodzińska <mag.grodzinska@gmail.com>2019-12-23 19:06:41 +0100
committerMagdalena Grodzińska <mag.grodzinska@gmail.com>2019-12-23 19:06:41 +0100
commitcb173ac60b8307247efd83aaed5a0bb44a107766 (patch)
tree035dfe9ee0b1ce87e0ef60ca4a2dd6407566c5f6 /src/main/java/pl/edu/mimuw/cloudatlas/agent/Module.java
parent651c2b76ff3db39cefd1542d6f4c19d8686dfb85 (diff)
Add sending messages from modules
Diffstat (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/agent/Module.java')
-rw-r--r--src/main/java/pl/edu/mimuw/cloudatlas/agent/Module.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/Module.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/Module.java
index 46df31b..167f3b7 100644
--- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/Module.java
+++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/Module.java
@@ -6,5 +6,25 @@ import pl.edu.mimuw.cloudatlas.agent.message.AgentMessage;
* A Module is a (potentially stateful) event handler.
*/
public abstract class Module {
- public abstract void handle(AgentMessage event);
+ private AgentMessage.AgentModule moduleType;
+ private Executor executor;
+
+ Module(AgentMessage.AgentModule moduleType) {
+ this.moduleType = moduleType;
+ }
+
+ public abstract void handle(AgentMessage event) throws InterruptedException ;
+
+ public void setExecutor(Executor executor) {
+ this.executor = executor;
+ }
+
+ public void sendMessage(AgentMessage event) throws InterruptedException {
+ this.executor.passMessage(event);
+ }
+
+ @Override
+ public String toString() {
+ return moduleType.toString();
+ }
}