m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/GossipGirlMessage.java25
-rw-r--r--src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/InitiateGossipMessage.java11
-rw-r--r--src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java5
-rw-r--r--src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/ModuleType.java3
4 files changed, 42 insertions, 2 deletions
diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/GossipGirlMessage.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/GossipGirlMessage.java
new file mode 100644
index 0000000..705d64a
--- /dev/null
+++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/GossipGirlMessage.java
@@ -0,0 +1,25 @@
+package pl.edu.mimuw.cloudatlas.agent.messages;
+
+import pl.edu.mimuw.cloudatlas.agent.modules.Module;
+import pl.edu.mimuw.cloudatlas.agent.modules.ModuleType;
+
+public abstract class GossipGirlMessage extends AgentMessage {
+ public enum Type {
+ INITIATE
+ }
+
+ private Type type;
+
+ public GossipGirlMessage(String messageId, long timestamp, Type type) {
+ super(messageId, ModuleType.GOSSIP, timestamp);
+ this.type = type;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void callMe(Module module) throws InterruptedException, Module.InvalidMessageType {
+ module.handleTyped(this);
+ }
+}
diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/InitiateGossipMessage.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/InitiateGossipMessage.java
new file mode 100644
index 0000000..d216d59
--- /dev/null
+++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/InitiateGossipMessage.java
@@ -0,0 +1,11 @@
+package pl.edu.mimuw.cloudatlas.agent.messages;
+
+import pl.edu.mimuw.cloudatlas.agent.modules.ModuleType;
+
+public class InitiateGossipMessage extends GossipGirlMessage {
+ private long nextGossipId = 0;
+
+ public InitiateGossipMessage(String messageId, long timestamp) {
+ super(messageId, timestamp, Type.INITIATE);
+ }
+}
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
index 0a934cb..5511607 100644
--- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java
+++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java
@@ -2,6 +2,7 @@ package pl.edu.mimuw.cloudatlas.agent.modules;
import pl.edu.mimuw.cloudatlas.agent.Executor;
import pl.edu.mimuw.cloudatlas.agent.messages.AgentMessage;
+import pl.edu.mimuw.cloudatlas.agent.messages.GossipGirlMessage;
import pl.edu.mimuw.cloudatlas.agent.messages.TimerSchedulerMessage;
import pl.edu.mimuw.cloudatlas.agent.messages.QurnikMessage;
import pl.edu.mimuw.cloudatlas.agent.messages.RemikMessage;
@@ -33,6 +34,10 @@ public abstract class Module {
throw new InvalidMessageType("Got a TimerSchedulerMessage in module " + moduleType.toString());
}
+ public void handleTyped(GossipGirlMessage message) throws InterruptedException, InvalidMessageType {
+ throw new InvalidMessageType("Got a GossipGirlMessage in module " + moduleType.toString());
+ }
+
public void handleTyped(QurnikMessage message) throws InterruptedException, InvalidMessageType {
throw new InvalidMessageType("Got a QurnikMessage in module " + moduleType.toString());
}
diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/ModuleType.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/ModuleType.java
index d221f06..40e629a 100644
--- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/ModuleType.java
+++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/ModuleType.java
@@ -5,8 +5,7 @@ public enum ModuleType {
TIMER_GTP,
RMI,
UDP,
- GOSSIP_IN,
- GOSSIP_OUT,
+ GOSSIP,
STATE,
QUERY,
// for testing