B
    °F.\)  ã               @   sT   d dl mZmZmZ d dlmZmZ d dlmZ G dd„ deeƒƒZ	i Z
dd„ ZdS )	é    )Úprint_functionÚdivisionÚabsolute_import)ÚABCMetaÚabstractmethod)Úwith_metaclassc               @   sT   e Zd ZdZedd„ ƒZedd„ ƒZedd„ ƒZedd	„ ƒZd
d„ Z	edd„ ƒZ
dS )ÚBackendzO
    A communication backend, selected by a given URI scheme (e.g. 'tcp').
    c             C   s   dS )zL
        Get a connector object usable for connecting to addresses.
        N© )Úselfr	   r	   ú8lib/python3.7/site-packages/distributed/comm/registry.pyÚget_connector   s    zBackend.get_connectorc             K   s   dS )zJ
        Get a listener object for the scheme-less address *loc*.
        Nr	   )r
   ÚlocZhandle_commZdeserializeZconnection_argsr	   r	   r   Úget_listener   s    zBackend.get_listenerc             C   s   dS )zš
        Get a host name (normally an IP address) identifying the host the
        address is located on.
        *loc* is a scheme-less address.
        Nr	   )r
   r   r	   r	   r   Úget_address_host   s    zBackend.get_address_hostc             C   s   dS )z 
        Resolve the address into a canonical form.
        *loc* is a scheme-less address.

        Simple implementations may return *loc* unchanged.
        Nr	   )r
   r   r	   r	   r   Úresolve_address%   s    zBackend.resolve_addressc             C   s   t ‚dS )zŽ
        Get the (host, port) tuple of the scheme-less address *loc*.
        This should only be implemented by IP-based transports.
        N)ÚNotImplementedError)r
   r   r	   r	   r   Úget_address_host_port.   s    zBackend.get_address_host_portc             C   s   dS )zN
        Get the local listening address suitable for reaching *loc*.
        Nr	   )r
   r   r	   r	   r   Úget_local_address_for5   s    zBackend.get_local_address_forN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r	   r	   r	   r   r      s   	r   c             C   s*   t  | ¡}|dkr&td| tt ƒf ƒ‚|S )z:
    Get the Backend instance for the given *scheme*.
    Nz-unknown address scheme %r (known schemes: %s))ÚbackendsÚgetÚ
ValueErrorÚsorted)ZschemeZbackendr	   r	   r   Úget_backend@   s
    
r   N)Z
__future__r   r   r   Úabcr   r   Zsixr   r   r   r   r	   r	   r	   r   Ú<module>   s
   5