
    Efc                     d    d Z ddlZddlZddlmZ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)	zOZAP Authenticator integrated with the asyncio IO loop.

.. versionadded:: 15.2
    N)AnyOptional)Poller   )Authenticatorc                   z     e Zd ZU dZee   ed<   eed<   ded<   dded   def fd	Zdd
Z	d fdZ
d fdZ xZS )AsyncioAuthenticatorz1ZAP authentication for use in the asyncio IO loop_AsyncioAuthenticator__poller_AsyncioAuthenticator__taskzzmq.asyncio.Socket
zap_socketcontextzzmq.Contextloopc                     t         |   |       |,t        j                  | j                  j
                   d       d | _        d | _        y )Nz (loop) is deprecated and ignored)super__init__warningswarn	__class____name__r
   r   )selfr   r   r   s      2/usr/lib/python3/dist-packages/zmq/auth/asyncio.pyr   zAsyncioAuthenticator.__init__   sC    !MMT^^4455UVW    c                    K   | j                   z| j                   j                          d {   }| j                  t        |      v r3| j                  j	                          d {   }| j                  |       | j                   yy y 7 ]7 &w)N)r
   pollr   dictrecv_multiparthandle_zap_message)r   eventsmsgs      r   __handle_zapz!AsyncioAuthenticator.__handle_zap!   sk     mm'==--//F$v,. OO::<<'',	 mm'/<s'   *BB
8B%B&!BBBc                     t         |           t               | _        | j                  j	                  | j
                  t        j                         t        j                  | j                               | _        y)zStart ZAP authenticationN)r   startr   r
   registerr   zmqPOLLINasyncioensure_future!_AsyncioAuthenticator__handle_zapr   r   r   s    r   r"   zAsyncioAuthenticator.start(   sL    t

;++D,=,=,?@r   c                     | j                   r| j                   j                          | j                  r,| j                  j                  | j                         d| _        t
        |           y)zStop ZAP authenticationN)r   cancelr
   
unregisterr   r   stopr)   s    r   r-   zAsyncioAuthenticator.stop/   sG    ;;KK ==MM$$T__5 DMr   )NN)returnN)r   
__module____qualname____doc__r   r   __annotations__r   r   r(   r"   r-   __classcell__)r   s   @r   r	   r	      sI    ;vK$$ 7 c -A r   r	   )r1   r&   r   typingr   r   r$   zmq.asyncior   baser   r	   __all__ r   r   <module>r9      s5        
  #= #L "
"r   