'Send the message directly, bypassing the single _send_frame
invocation by directly appending to the output buffer and flushing
within a lock.
:param int channel_number: The channel number for the frame
:param pika.amqp_object.Method method: The method frame to send
:param tuple content: If set, is a content frame, is tuple of
properties and body.'

def _send_message(self, channel_number, method, content=None):

    length = len(content[1])
    write_buffer = [frame.Method(channel_number, method).marshal(), frame.Header(channel_number, length, content[0]).marshal()]
    if content[1]:
        chunks = int(math.ceil((float(length) / self._body_max_length)))
        for chunk in xrange(0, chunks):
            start = (chunk * self._body_max_length)
            end = (start + self._body_max_length)
            if (end > length):
                end = length
            write_buffer.append(frame.Body(channel_number, content[1][start:end]).marshal())
    self.outbound_buffer += write_buffer
    self.frames_sent += len(write_buffer)
    self.bytes_sent += sum((len(frame) for frame in write_buffer))
    self._flush_outbound()
    if self.params.backpressure_detection:
        self._detect_backpressure()
