in qpid/framing.py [0:0]
def write(self, *segments):
for seg in segments:
op = self.current_op.get(seg.track)
if seg.first:
if seg.type == segment_type.command:
op = self.decode_command(seg.payload)
elif seg.type == segment_type.control:
op = self.decode_control(seg.payload)
else:
raise ValueError(seg)
op.channel = seg.channel
elif seg.type == segment_type.header:
if op.headers is None:
op.headers = []
op.headers.extend(self.decode_headers(seg.payload))
elif seg.type == segment_type.body:
if op.payload is None:
op.payload = seg.payload
else:
op.payload += seg.payload
if seg.last:
self.ops.append(op)
if seg.track in self.current_op:
del self.current_op[seg.track]
else:
self.current_op[seg.track] = op