+
    Dfj                     p    R t ^ RIHt ^ RIHtHt ^ RIHt ^RIH	t	H
t
 Rt]! ]	4       ! R R4      4       tR# )	z'
Log observer that maintains a buffer.
)deque)DequeOptional)implementer)ILogObserverLogEventc                   `   a  ] tR t^t o Rt]3V 3R lR lltV 3R lR ltV 3R lR ltRt	V t
R	# )
LimitedHistoryLogObservera  
L{ILogObserver} that stores events in a buffer of a fixed size::

    >>> from twisted.logger import LimitedHistoryLogObserver
    >>> history = LimitedHistoryLogObserver(5)
    >>> for n in range(10): history({'n': n})
    ...
    >>> repeats = []
    >>> history.replayTo(repeats.append)
    >>> len(repeats)
    5
    >>> repeats
    [{'n': 5}, {'n': 6}, {'n': 7}, {'n': 8}, {'n': 9}]
    >>>
c                4   < V ^8  d   QhRS[ S[,          RR/# )   sizereturnN)r   int)format__classdict__s   "8/usr/lib/python3/dist-packages/twisted/logger/_buffer.py__annotate__&LimitedHistoryLogObserver.__annotate__%   s     ; ;Xc] ; ;    c                (    \        VR7      V n        R# )z`
@param size: The maximum number of events to buffer.  If L{None}, the
    buffer is unbounded.
)maxlenN)r   _buffer)selfr   s   &&r   __init__"LimitedHistoryLogObserver.__init__%   s    
 ).T(:r   c                $   < V ^8  d   QhRS[ RR/# )r   eventr   N)r   )r   r   s   "r   r   r   ,   s     # #h #4 #r   c                <    V P                   P                  V4       R # )N)r   append)r   r   s   &&r   __call__"LimitedHistoryLogObserver.__call__,   s    E"r   c                $   < V ^8  d   QhRS[ RR/# )r   otherObserverr   N)r   )r   r   s   "r   r   r   /   s     ! !l !t !r   c                <    V P                    F  pV! V4       K  	  R# )zn
Re-play the buffered events to another log observer.

@param otherObserver: An observer to replay events to.
Nr   )r   r"   r   s   && r   replayTo"LimitedHistoryLogObserver.replayTo/   s     \\E%  "r   r$   N)__name__
__module____qualname____firstlineno____doc___DEFAULT_BUFFER_MAXIMUMr   r   r%   __static_attributes____classdictcell__)r   s   @r   r	   r	      s.       .E ; ;# #! !r   r	   Ni   )r+   collectionsr   typingr   r   zope.interfacer   _interfacesr   r   r,   r	    r   r   <module>r4      s<   
  " & /#  \"! "! "!r   