code: def data_received(self, data):
          
          try:
              self.data_received_count += 1
              while data:
                  consumer = self.current_consumer()
                  if not consumer.request:
                      consumer.start()
                  toprocess = consumer.feed_data(data)
                  consumer.fire_event('data_processed', data=data, exc=None)
                  data = toprocess
              self.changed()
          except Exception:
              if self.transport:
                  self.transport.abort()
              raise
docs: Delegates handling of data to the :meth:`current_consumer`.
          Once done set a timeout for idle connections when a
          :attr:`~Protocol.timeout` is a positive number (of seconds).