
    Ef                     `    d Z ddlmZmZ ddlmZ ddlZddlmZ ddl	m
Z
  G d d	e
      Zd	gZy)
zNZAP Authenticator integrated with the tornado IOLoop.

.. versionadded:: 14.1
    )AnyOptional)ioloopN)	zmqstream   )Authenticatorc            
            e Zd ZU dZej
                  ed<   ej                  ed<   	 	 	 	 dde	d   de
dede	ej                     f fdZd fd	Z fd
Z xZS )IOLoopAuthenticatorz0ZAP authentication for use in the tornado IOLoop
zap_streamio_loopcontextzzmq.Contextencodinglogc                     t         |   |||       d | _        |xs t        j                  j                         | _        y )N)super__init__r   r   IOLoopcurrentr   )selfr   r   r   r   	__class__s        1/usr/lib/python3/dist-packages/zmq/auth/ioloop.pyr   zIOLoopAuthenticator.__init__   s6     	(C09&--"7"7"9    c                     t         |           t        j                  | j                  | j
                        | _        | j                  j                  | j                         y)zStart ZAP authenticationN)	r   startr   	ZMQStream
zap_socketr   r   on_recvhandle_zap_messager   r   s    r   r   zIOLoopAuthenticator.start#   s@    #--doot||L 7 78r   c                 |    | j                   r!| j                   j                          d| _         t        |           y)zStop ZAP authenticationN)r   closer   stopr   s    r   r"   zIOLoopAuthenticator.stop)   s*    ??OO!!#"DOr   )Nzutf-8NN)returnN)__name__
__module____qualname____doc__r   r   __annotations__r   r   r   strr   r   r   r"   __classcell__)r   s   @r   r
   r
      sr    :###]] ,0+/	:-(	: 	: 		:
 &--(	:9 r   r
   )r'   typingr   r   tornador   zmqzmq.eventloopr   baser   r
   __all__ r   r   <module>r2      s1    !  
 # - > !
!r   