# File lib/messenger/messenger.rb, line 314
    def put(message)
      if message.nil?
        raise TypeError.new("invalid message: #{message}")
      end
      unless message.kind_of?(Qpid::Proton::Message)
        raise ::ArgumentError.new("invalid message type: #{message.class}")
      end
      # encode the message first
      message.pre_encode
      perform_put(message)
      return outgoing_tracker
    end