class BCodeTransport(Transport): '''implements beencoding and bedecoding over channels that may send partial section of each data structure''' def __init__(self, sendBytes, receivedDataCb=None): '''initialises the transport sendBytes => method of one param, taking a byte[] which is used to send bytes receivedDataCb => method of one param, taking any python data when data is received''' self._callbacks = [] if receivedDataCb != None: self._callbacks.append(receivedDataCb) self._bcode = AsyncBCodeDeserialiser() self._bcode.register_cb(self.receive_internal) self._sender = sendBytes def receive_internal(self, data): map(lambda f: f(data), self._callbacks) def add_callback(self, receivedDataCb): self._callbacks.append(receivedDataCb) def send(self, data): '''sends the data encoded''' self._sender(bcode.bencode(data)) def receive(self, raw): '''accepts raw data and determines when to invoke the callback when enough data has been received. raw => byte array''' self._bcode.push_data(raw)
def __init__(self, sendBytes, receivedDataCb=None): '''initialises the transport sendBytes => method of one param, taking a byte[] which is used to send bytes receivedDataCb => method of one param, taking any python data when data is received''' self._callbacks = [] if receivedDataCb != None: self._callbacks.append(receivedDataCb) self._bcode = AsyncBCodeDeserialiser() self._bcode.register_cb(self.receive_internal) self._sender = sendBytes
def __init__(self, sendBytes, receivedDataCb=None): """initialises the transport sendBytes => method of one param, taking a byte[] which is used to send bytes receivedDataCb => method of one param, taking any python data when data is received""" self._callbacks = [] if receivedDataCb != None: self._callbacks.append(receivedDataCb) self._bcode = AsyncBCodeDeserialiser() self._bcode.register_cb(self.receive_internal) self._sender = sendBytes
class BCodeTransport(Transport): """implements beencoding and bedecoding over channels that may send partial section of each data structure""" def __init__(self, sendBytes, receivedDataCb=None): """initialises the transport sendBytes => method of one param, taking a byte[] which is used to send bytes receivedDataCb => method of one param, taking any python data when data is received""" self._callbacks = [] if receivedDataCb != None: self._callbacks.append(receivedDataCb) self._bcode = AsyncBCodeDeserialiser() self._bcode.register_cb(self.receive_internal) self._sender = sendBytes def receive_internal(self, data): map(lambda f: f(data), self._callbacks) def add_callback(self, receivedDataCb): self._callbacks.append(receivedDataCb) def send(self, data): """sends the data encoded""" self._sender(bcode.bencode(data)) def receive(self, raw): """accepts raw data and determines when to invoke the callback when enough data has been received. raw => byte array""" self._bcode.push_data(raw)