Fix default message, and change deserialiser and submit constructor

This commit is contained in:
Michael Pivato
2019-01-18 16:35:22 +10:30
parent 57223ee224
commit 451c3c7830

View File

@@ -1,7 +1,9 @@
import umsgpack import umsgpack
import uuid
class Message: class Message:
def __init__(self, sender = "", data = {}}): _type = None
def __init__(self, sender = "", data = {}):
self._sender = sender self._sender = sender
self._data = data self._data = data
@@ -9,6 +11,10 @@ class Message:
def sender(self): def sender(self):
return self._sender return self._sender
@sender.setter
def sender(self, value):
self._sender = value
@property @property
def data(self): def data(self):
return self._data return self._data
@@ -24,12 +30,18 @@ class Message:
def serialise(self): def serialise(self):
return umsgpack.packb({"type":self.type, "sender": self.sender, "data": self.data}) return umsgpack.packb({"type":self.type, "sender": self.sender, "data": self.data})
def deserialise(self, obj): def deserialise(obj):
'''
Deserialises a given messagepack object into a Message.
'''
m = Message()
unpacked = umsgpack.unpackb(obj) unpacked = umsgpack.unpackb(obj)
self.type = unpacked["type"] print('Unpacked Object')
self.sender = unpacked["sender"] print(unpacked)
self.data = unpacked["data"] m.type = unpacked["type"]
return self m._sender = unpacked["sender"]
m._data = unpacked["data"]
return m
class RequestLeader(Message): class RequestLeader(Message):
_type = "RequestLeader" _type = "RequestLeader"
@@ -61,6 +73,10 @@ class CommanderWill(Message):
class SubmitVote(Message): class SubmitVote(Message):
_type = "vote" _type = "vote"
def __init__(self, vote = None, sender = "", data = {}):
Message.__init__(self, sender, data)
self._data["vote"] = vote
@property @property
def vote(self): def vote(self):
return self._data["vote"] return self._data["vote"]
@@ -69,4 +85,5 @@ class SubmitVote(Message):
def vote(self, value): def vote(self, value):
self._data["vote"] = value self._data["vote"] = value
class GetSwarmParticipants(Message):
_type = "listening"