+ if request is None:
+ # no request
+ break
+
+ # request, and also some non-expired packets
+ while True:
+ try: (dummy, packet) = self._pq[0]
+ except IndexError: break
+
+ encoded = slip_encode(packet)
+
+ if request.sentLength > 0:
+ if (request.sentLength + len(slip_delimiter)
+ + len(encoded) > self.max_batch_down):
+ break
+ request.write(slip_delimiter)
+
+ request.write(encoded)
+ self._pq.popLeft()
+
+ assert(request.sentLength)
+ self._rq.popLeft()
+ request.finish()
+ # round again, looking for more to do