35 lines
772 B
Python
35 lines
772 B
Python
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=None, message=None):
|
|
super().__init__(message)
|
|
self._type = proto_type
|
|
|
|
def serialise(self):
|
|
return self.message.SerializeToString()
|
|
|
|
def deserialise(self, message):
|
|
return ProtoMessage(self._type, self._type.ParseFromString(message))
|