'Dispatch previously read data. Return True if self.reading and we don\'t
have any more data'

def _dispatchData(self):

    if (not self._readSize):
        return self.reading
    size = self._readSize
    full_buffers = (size // self.readBufferSize)
    while (self._readNextBuffer < full_buffers):
        self.dataReceived(self._readBuffers[self._readNextBuffer])
        self._readNextBuffer += 1
        if (not self.reading):
            return False
    remainder = (size % self.readBufferSize)
    if remainder:
        self.dataReceived(self._readBuffers[full_buffers][0:remainder])
    if self.dynamicReadBuffers:
        total_buffer_size = (self.readBufferSize * len(self._readBuffers))
        if (size < (total_buffer_size - self.readBufferSize)):
            del self._readBuffers[(-1)]
        elif ((size == total_buffer_size) and (len(self._readBuffers) < self.maxReadBuffers)):
            self._readBuffers.append(bytearray(self.readBufferSize))
    self._readNextBuffer = 0
    self._readSize = 0
    return self.reading
