diff options
author | Martin <marcin.j.chrzanowski@gmail.com> | 2020-01-03 18:29:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-03 18:29:55 +0100 |
commit | 9be545d6f2609d5fe8143a1964d44f6eee588ea2 (patch) | |
tree | f0bb8d159249e9ddf328e92d7fb5eda10122ab3b /src/main/java/pl/edu/mimuw/cloudatlas/agent/messages | |
parent | fda20e7aa496926d4f4d78921925025040414d9b (diff) | |
parent | ec2da92e9636e219f5ad7caa73c9334dae12e5b1 (diff) |
Merge pull request #83 from m-chrzan/remik
Use new modular architecture when implementing the RMI API
Diffstat (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/agent/messages')
-rw-r--r-- | src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/RemikMessage.java (renamed from src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/RMIMessage.java) | 15 | ||||
-rw-r--r-- | src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/RequestStateMessage.java | 16 | ||||
-rw-r--r-- | src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/SetAttributeMessage.java | 37 | ||||
-rw-r--r-- | src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/StanikMessage.java | 1 |
4 files changed, 67 insertions, 2 deletions
diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/RMIMessage.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/RemikMessage.java index a8e3afb..b0300cb 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/RMIMessage.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/RemikMessage.java @@ -3,9 +3,20 @@ package pl.edu.mimuw.cloudatlas.agent.messages; import pl.edu.mimuw.cloudatlas.agent.modules.Module; import pl.edu.mimuw.cloudatlas.agent.modules.ModuleType; -public class RMIMessage extends AgentMessage { - public RMIMessage(String messageId, long timestamp) { +public abstract class RemikMessage extends AgentMessage { + public enum Type { + REQUEST_STATE + } + + private Type type; + + public RemikMessage(String messageId, long timestamp, Type type) { super(messageId, ModuleType.RMI, timestamp); + this.type = type; + } + + public Type getType() { + return type; } public void callMe(Module module) throws InterruptedException, Module.InvalidMessageType { diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/RequestStateMessage.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/RequestStateMessage.java new file mode 100644 index 0000000..698aac7 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/RequestStateMessage.java @@ -0,0 +1,16 @@ +package pl.edu.mimuw.cloudatlas.agent.messages; + +import java.util.concurrent.CompletableFuture; + +public class RequestStateMessage extends RemikMessage { + CompletableFuture<ResponseMessage> responseFuture; + + public RequestStateMessage(String messageId, long timestamp, CompletableFuture<ResponseMessage> responseFuture) { + super(messageId, timestamp, Type.REQUEST_STATE); + this.responseFuture = responseFuture; + } + + public CompletableFuture<ResponseMessage> getFuture() { + return responseFuture; + } +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/SetAttributeMessage.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/SetAttributeMessage.java new file mode 100644 index 0000000..4888484 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/SetAttributeMessage.java @@ -0,0 +1,37 @@ +package pl.edu.mimuw.cloudatlas.agent.messages; + +import pl.edu.mimuw.cloudatlas.agent.modules.ModuleType; +import pl.edu.mimuw.cloudatlas.model.Attribute; +import pl.edu.mimuw.cloudatlas.model.Value; +import pl.edu.mimuw.cloudatlas.model.ValueTime; + +public class SetAttributeMessage extends StanikMessage { + private String pathName; + private Attribute attribute; + private Value value; + private ValueTime updateTimestamp; + + public SetAttributeMessage(String messageId, long timestamp, String pathName, Attribute attribute, Value value, ValueTime updateTimestamp) { + super(messageId, timestamp, Type.SET_ATTRIBUTE); + this.pathName = pathName; + this.attribute = attribute; + this.value = value; + this.updateTimestamp = updateTimestamp; + } + + public String getPathName() { + return pathName; + } + + public Attribute getAttribute() { + return attribute; + } + + public Value getValue() { + return value; + } + + public ValueTime getUpdateTimestamp() { + return updateTimestamp; + } +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/StanikMessage.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/StanikMessage.java index d86de4a..844f31c 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/StanikMessage.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/messages/StanikMessage.java @@ -7,6 +7,7 @@ public abstract class StanikMessage extends AgentMessage { public enum Type { GET_STATE, REMOVE_ZMI, + SET_ATTRIBUTE, UPDATE_ATTRIBUTES, UPDATE_QUERIES } |