diff options
author | Magdalena Grodzińska <mag.grodzinska@gmail.com> | 2019-12-23 19:50:46 +0100 |
---|---|---|
committer | Magdalena Grodzińska <mag.grodzinska@gmail.com> | 2019-12-23 19:53:22 +0100 |
commit | 4c728b0ba906799afd30f0a337b540cf167a0cfd (patch) | |
tree | d9d453d9402a8af5de8ee76a0d5b7141952822ea /src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java | |
parent | 9d24163dc71c345fb2197f91abb62478e1e9e3ee (diff) |
Make timer inherit from module, move to modules package
Diffstat (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java')
-rw-r--r-- | src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java new file mode 100644 index 0000000..dd6a5f8 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java @@ -0,0 +1,31 @@ +package pl.edu.mimuw.cloudatlas.agent.modules; + +import pl.edu.mimuw.cloudatlas.agent.Executor; +import pl.edu.mimuw.cloudatlas.agent.message.AgentMessage; + +/* + * A Module is a (potentially stateful) event handler. + */ +public abstract class Module { + private AgentMessage.AgentModule moduleType; + private Executor executor; + + public 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(); + } +} |