"""LCM type definitions This file automatically generated by lcm. struct file_send_lcmt { string data; } """ try: import cStringIO.StringIO as BytesIO except ImportError: from io import BytesIO import struct class file_send_lcmt(object): __slots__ = ["data"] __typenames__ = ["string"] __dimensions__ = [None] def __init__(self): self.data = "" def encode(self): buf = BytesIO() buf.write(file_send_lcmt._get_packed_fingerprint()) self._encode_one(buf) return buf.getvalue() def _encode_one(self, buf): __data_encoded = self.data.encode('utf-8') buf.write(struct.pack('>I', len(__data_encoded)+1)) buf.write(__data_encoded) buf.write(b"\0") def decode(data): if hasattr(data, 'read'): buf = data else: buf = BytesIO(data) if buf.read(8) != file_send_lcmt._get_packed_fingerprint(): raise ValueError("Decode error") return file_send_lcmt._decode_one(buf) decode = staticmethod(decode) def _decode_one(buf): self = file_send_lcmt() __data_len = struct.unpack('>I', buf.read(4))[0] self.data = buf.read(__data_len)[:-1].decode('utf-8', 'replace') return self _decode_one = staticmethod(_decode_one) def _get_hash_recursive(parents): if file_send_lcmt in parents: return 0 tmphash = (0x90df9b84cdceaf0a) & 0xffffffffffffffff tmphash = (((tmphash<<1)&0xffffffffffffffff) + (tmphash>>63)) & 0xffffffffffffffff return tmphash _get_hash_recursive = staticmethod(_get_hash_recursive) _packed_fingerprint = None def _get_packed_fingerprint(): if file_send_lcmt._packed_fingerprint is None: file_send_lcmt._packed_fingerprint = struct.pack(">Q", file_send_lcmt._get_hash_recursive([])) return file_send_lcmt._packed_fingerprint _get_packed_fingerprint = staticmethod(_get_packed_fingerprint) def get_hash(self): """Get the LCM hash of the struct""" return struct.unpack(">Q", file_send_lcmt._get_packed_fingerprint())[0]