Add 'car/' from commit 'eee0e8dc445691e600680f4abc77f2814b20b054'
git-subtree-dir: car git-subtree-mainline:1d29a5526cgit-subtree-split:eee0e8dc44
This commit is contained in:
34
car/Messaging/messages.py
Normal file
34
car/Messaging/messages.py
Normal 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=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))
|
||||
Reference in New Issue
Block a user