<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _publisher_confirmation_future(self, name, exchange, routing_key, properties):
 """Return a future a publisher confirmation result that enables consumers to block on the confirmation of a published message. Two internal dicts are used for keeping track of state. Consumer._delivery_tags is a dict of connection names that keeps the last delivery tag expectation and is used to correlate the future with the delivery tag that is expected to be confirmed from RabbitMQ. This for internal use and should not be extended or used directly. :param str name: The connection name for the future :param str exchange: The exchange the message was published to :param str routing_key: The routing key that was used :param properties: The AMQP message properties for the delivery :type properties: pika.spec.Basic.Properties :rtype: concurrent.Future. """

        if self._connections[name].publisher_confirmations:
            future = concurrent.Future()
            self._connections[name].add_confirmation_future(
                exchange, routing_key, properties, future)
            return future