From 6aa0f845babdf30e5733af30805edad82436b02a Mon Sep 17 00:00:00 2001 From: Piv <18462828+Piv200@users.noreply.github.com> Date: Wed, 26 Feb 2020 23:00:06 +1030 Subject: [PATCH] Add stuff for messages. --- Messaging/message_factory.py | 9 +++++++-- Messaging/messages.py | 34 ++++++++++++++++++++++++++++++++++ Messaging/packmessage.py | 14 -------------- 3 files changed, 41 insertions(+), 16 deletions(-) create mode 100644 Messaging/messages.py delete mode 100644 Messaging/packmessage.py diff --git a/Messaging/message_factory.py b/Messaging/message_factory.py index a509e70..ff88d1f 100644 --- a/Messaging/message_factory.py +++ b/Messaging/message_factory.py @@ -31,10 +31,15 @@ class ZmqPubSubStreamer(Streamer): # pass it into a thread. pass - def send_message(self, message_bytes): + def send_message(self, message): + ''' + Args + ---- + message: A message type that has the serialise() method. + ''' pass - def send_message_topic(self, topic, message_bytes): + def send_message_topic(self, topic, message): pass diff --git a/Messaging/messages.py b/Messaging/messages.py new file mode 100644 index 0000000..b98a717 --- /dev/null +++ b/Messaging/messages.py @@ -0,0 +1,34 @@ +import umsgpack + + +class Message(): + def __init__(self, message=None): + self.message = message + + def serialise(self): + raise NotImplementedError + + def deserialise(self, message): + raise NotImplementedError + + +class PackMessage(Message): + + def serialise(self): + return umsgpack.packb(self.message) + + def deserialise(self, message): + return PackMessage(umsgpack.unpackb(self.message)) + + +class ProtoMessage(Message): + + def __init__(self, proto_type, message=None): + Message(message) + self._type = proto_type + + def serialise(self): + return self.message.SerializeToString() + + def deserialise(self, message): + return ProtoMessage(self._type, self._type.ParseFromString(message)) diff --git a/Messaging/packmessage.py b/Messaging/packmessage.py deleted file mode 100644 index 35f0916..0000000 --- a/Messaging/packmessage.py +++ /dev/null @@ -1,14 +0,0 @@ -import umsgpack -from Messaging.messaginginterface import Message - -class PackMessage(Message): - - def __init__(self, message=None): - self.message = message - - def serialise(self): - return umsgpack.packb(self.message) - - def deserialise(self): - return umsgpack.unpackb(self.message) -