File: //lib64/python3.6/site-packages/tornado/platform/__pycache__/caresresolver.cpython-36.pyc
3
��f� � @ s� d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm Z m
Z
d dlZejrnd dlm
Z
mZmZmZmZ G dd� de �ZdS ) � N)�Future)�gen)�IOLoop)�Resolver�is_valid_ip)� Generator�Any�List�Tuple�Dictc @ s` e Zd ZdZdd�dd�Zeeedd�dd�Zeedd �d
d�Ze j
deeed
d�dd��ZdS )�
CaresResolvera` Name resolver based on the c-ares library.
This is a non-blocking and non-threaded resolver. It may not produce
the same results as the system resolver, but can be used for non-blocking
resolution when threads cannot be used.
c-ares fails to resolve some names when ``family`` is ``AF_UNSPEC``,
so it is only recommended for use in ``AF_INET`` (i.e. IPv4). This is
the default for ``tornado.simple_httpclient``, but other libraries
may default to ``AF_UNSPEC``.
.. versionchanged:: 5.0
The ``io_loop`` argument (deprecated since version 4.1) has been removed.
N)�returnc C s$ t j� | _tj| jd�| _i | _d S )N)Z
sock_state_cb)r Zcurrent�io_loop�pycaresZChannel�_sock_state_cb�channel�fds)�self� r �%/usr/lib64/python3.6/caresresolver.py�
initialize s
zCaresResolver.initialize)�fd�readable�writabler
c C sz |r
t jnd|rt jndB }|s6| jj|� | j|= n@|| jkrZ| jj||� || j|<