From 451c3c783023ce7e99458bfc48994380782d1a67 Mon Sep 17 00:00:00 2001 From: Michael Pivato Date: Fri, 18 Jan 2019 16:35:22 +1030 Subject: [PATCH] Fix default message, and change deserialiser and submit constructor --- DecisionSystem/messages.py | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/DecisionSystem/messages.py b/DecisionSystem/messages.py index 34016c3..ac07d19 100644 --- a/DecisionSystem/messages.py +++ b/DecisionSystem/messages.py @@ -1,7 +1,9 @@ import umsgpack +import uuid class Message: - def __init__(self, sender = "", data = {}}): + _type = None + def __init__(self, sender = "", data = {}): self._sender = sender self._data = data @@ -9,6 +11,10 @@ class Message: def sender(self): return self._sender + @sender.setter + def sender(self, value): + self._sender = value + @property def data(self): return self._data @@ -24,12 +30,18 @@ class Message: def serialise(self): return umsgpack.packb({"type":self.type, "sender": self.sender, "data": self.data}) - def deserialise(self, obj): - unpacked = umsgpack.unpackb(obj) - self.type = unpacked["type"] - self.sender = unpacked["sender"] - self.data = unpacked["data"] - return self +def deserialise(obj): + ''' + Deserialises a given messagepack object into a Message. + ''' + m = Message() + unpacked = umsgpack.unpackb(obj) + print('Unpacked Object') + print(unpacked) + m.type = unpacked["type"] + m._sender = unpacked["sender"] + m._data = unpacked["data"] + return m class RequestLeader(Message): _type = "RequestLeader" @@ -61,6 +73,10 @@ class CommanderWill(Message): class SubmitVote(Message): _type = "vote" + def __init__(self, vote = None, sender = "", data = {}): + Message.__init__(self, sender, data) + self._data["vote"] = vote + @property def vote(self): return self._data["vote"] @@ -69,4 +85,5 @@ class SubmitVote(Message): def vote(self, value): self._data["vote"] = value - \ No newline at end of file +class GetSwarmParticipants(Message): + _type = "listening" \ No newline at end of file