+
     h  c                  sj    R t ^ RIHt ^ RIt^ RIHtHt  ! R R4      t ! R R]4      t]! ]R4       R# )	a(  
from Thinking in Python, Bruce Eckel
https://python-3-patterns-idioms-test.readthedocs.io/en/latest/Observer.html

(c) Copyright 2008, Creative Commons Attribution-Share Alike 3.0.

Class support for "observer" pattern.

The observer class is the base class
for all smartcard package observers.
)annotationsN)Synchronizationsynchronizec                  s"    ] tR t^tR R ltRtR# )Observerc               s$    V ^8  d   QhRRRRRR/# )   
observable
Observablearg
typing.AnyreturnNone Zformat   "9/usr/lib64/python3.14/site-packages/smartcard/Observer.py__annotate__ZObserver.__annotate__   s!       *      c                s    R# )zCalled when the observed object is
modified. You call an Observable object's
notifyObservers method to notify all the
object's observers of the change.Nr   )selfr   r   s   &&&r   updateZObserver.update   s    
 	r   r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r   r      s     r   r   c                  s   a  ] tR t^tR V 3R lltR R ltR R ltRR R lltR	 R
 ltR R lt	R R lt
R R ltR R ltRtV ;t# )r   c                   V ^8  d   QhRR/# r   r	   r
   r   r   r   r   r   Observable.__annotate__   s      $ r   c                	s@   < \         SV `  4        . V n        ^ V n        R# i    N)Zsuper__init__obschanged)r   	__class__s   &r   r   ZObservable.__init__   s    #%r   c                    V ^8  d   QhRRRR/# r   observerr   r	   r
   r   r   r   r   r   r   #   s     & &H & &r   c                	s`    WP                   9  d   V P                   P                  V4       R # R # N)r   Zappendr   r"      &&r   addObserverZObservable.addObserver#   s!    88#HHOOH% $r   c               r    r!   r   r   r   r   r   r   '   s     " "x "D "r   c                	s<    V P                   P                  V4       R # r#   )r   Zremover$   r%   r   deleteObserverZObservable.deleteObserver'   s    !r   c               r    )r   r   r   r	   r
   r   r   r   r   r   r   *   s     ' ': ' 'r   c                s   V P                   ;_uu_ 4        V P                  '       g    RRR4       R# V P                  P                  4       p^ V n        RRR4       X F  pVP	                  W4       K  	  R#   + '       g   i     L,; i)zIf 'changed' indicates that this object
has changed, notify all its observers, then
call clearChanged(). Each observer has its
update() called with two arguments: this
observable object and the generic 'arg'.N)Zmutexr   r   Zcopyr   )r   r   Z	observersr"   s   &&  r   notifyObserversZObservable.notifyObservers*   s]     ZZZ<<< Z IDL  "HOOD& " Zs   A8!A88B	c               r   r   r   r   r   r   r   r   <   s       r   c                	s    . V n         R # r#   )r   r      &r   deleteObserversZObservable.deleteObservers<   s	    r   c               r   r   r   r   r   r   r   r   ?   s      D r   c                	s    ^V n         R# )i   Nr   r)   r*   r   
setChangedZObservable.setChanged?   	    r   c               r   r   r   r   r   r   r   r   B   s      d r   c                	s    ^ V n         R# r   r,   r)   r*   r   clearChangedZObservable.clearChangedB   r.   r   c               r   r   r	   Zintr   r   r   r   r   r   E   s      C r   c                	s    V P                   # r#   r,   r)   r*   r   
hasChangedZObservable.hasChangedE   s    ||r   c               r   r0   r   r   r   r   r   r   H   s       r   c                	s,    \        V P                  4      # r#   )Zlenr   r)   r*   r   countObserversZObservable.countObserversH   s    488}r   )r   r   r#   )r   r   r   r   r   r&   r'   r(   r+   r-   r/   r1   r2   r   Z__classcell__)r   s   @r   r   r      s:     
&"'$ r   r   z\addObserver deleteObserver deleteObservers setChanged clearChanged hasChanged countObservers)	Z__doc__Z
__future__r    ZtypingZsmartcard.Synchronizationr   r   r   r   r   r   r   <module>r3      s>   
 #  B , ,^ r   