Add stuff for messages.

This commit is contained in:
Piv
2020-02-26 23:00:06 +10:30
parent 136c96a926
commit 6aa0f845ba
3 changed files with 41 additions and 16 deletions

View File

@@ -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

34
Messaging/messages.py Normal file
View File

@@ -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))

View File

@@ -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)