
    |e5                     x    d dl Z d dlZd dlmZmZmZ d dlmZ dZdZ	 G d ded	          Z
 G d
 d          ZdS )    N)CallableOptional	TypedDict)ClientSession	connectedupdatec                   @   e Zd ZU eed<   eed<   eed<   eed<   ee         ed<   ee         ed<   ee         ed<   ee         ed<   ee         ed	<   ee         ed
<   ee         ed<   ee         ed<   ee         ed<   ee         ed<   ee         ed<   ee         ed<   dS )XDevicedeviceidextranameparams	brandNameproductModelonlineapikeylocal	localtypehost	devicekeylocal_tsparams_bulkpow_tsparentN)	__name__
__module____qualname__str__annotations__dictr   boolfloat     5/config/custom_components/sonoff/core/ewelink/base.pyr
   r
      s         MMMKKK
IIILLL}3-TNSMD>}
3-}uo$UOTNr$   r
   F)totalc                       e Zd ZU dZeeee         f         ed<   dZ	e
ed<   defdZedefd            Zd	ed
edefdZd	efdZd	efdZdS )XRegistryBaseN
dispatcherr   	_sequencesessionc                 "    i | _         || _        d S N)r)   r+   )selfr+   s     r%   __init__zXRegistryBase.__init__'   s    r$   returnc                      t          t          j                              dz  } | t          j        k    r| t          _        nt          xj        dz  c_        t	          t          j                  S )z,Return sequnce counter in ms. Always unique.i     )inttimer(   r*   r   )ts    r%   sequencezXRegistryBase.sequence+   sZ     	t#}&&&&'M####q(##=*+++r$   signaltargetc                 z    | j                             |g           vr                               fdS )Nc                  .                                    S r-   )remove)r8   targetss   r%   <lambda>z2XRegistryBase.dispatcher_connect.<locals>.<lambda>9   s    w~~f-- r$   )r)   
setdefaultappend)r.   r7   r8   r<   s     `@r%   dispatcher_connectz XRegistryBase.dispatcher_connect5   sJ    /,,VR88  NN6"""------r$   c                 n    | j                             |          sd S | j         |         D ]
} ||i | d S r-   )r)   get)r.   r7   argskwargshandlers        r%   dispatcher_sendzXRegistryBase.dispatcher_send;   sW    ""6** 	Fv. 	% 	%GGT$V$$$$	% 	%r$   c                    K   t          j                    |                     |fd          }                                 d {V   |             d S )Nc                  ,                                      S r-   )set)events   r%   r=   z/XRegistryBase.dispatcher_wait.<locals>.<lambda>C   s    UYY[[ r$   )asyncioEventr@   wait)r.   r7   
disconnectrJ   s      @r%   dispatcher_waitzXRegistryBase.dispatcher_waitA   s`      ,,V5H5H5H5HII
jjll
r$   )r   r   r   r)   r    r   listr   r   r*   r3   r   r/   staticmethodr6   r@   rF   rO   r#   r$   r%   r(   r(   #   s         ,0JS$x.()000Is     ,c , , , \,. .h .8 . . . .%c % % % %C      r$   r(   )rK   r4   typingr   r   r   aiohttpr   SIGNAL_CONNECTEDSIGNAL_UPDATEr
   r(   r#   r$   r%   <module>rV      s      0 0 0 0 0 0 0 0 0 0 ! ! ! ! ! !     iu    0" " " " " " " " " "r$   