o
    d÷¡i?  ã                   @   sæ   d dl Z d dlmZ d dlmZ eG dd„ dƒƒZeG dd„ deƒƒZeG dd	„ d	eƒƒZeG d
d„ deƒƒZeG dd„ deƒƒZ	eG dd„ deƒƒZ
eG dd„ deƒƒZeG dd„ deƒƒZeG dd„ deƒƒZG dd„ deƒZdS )é    N)Ú	dataclass)ÚOptionalc                   @   s.   e Zd ZU dZejed< 	 eed< eed< dS )ÚRTCStatsz$
    Base class for statistics.
    Ú	timestampÚtypeÚidN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚdatetimeÚ__annotations__Ústr© r   r   ú@/home/ubuntu/.local/lib/python3.10/site-packages/aiortc/stats.pyr      s   
 
r   c                   @   s&   e Zd ZU eed< eed< eed< dS )ÚRTCRtpStreamStatsÚssrcÚkindÚtransportIdN©r   r	   r
   Úintr   r   r   r   r   r   r      ó   
 r   c                   @   s&   e Zd ZU eed< eed< eed< dS )ÚRTCReceivedRtpStreamStatsÚpacketsReceivedÚpacketsLostÚjitterN©r   r	   r
   r   r   r   r   r   r   r      r   r   c                   @   s    e Zd ZU eed< 	 eed< dS )ÚRTCSentRtpStreamStatsÚpacketsSentÚ	bytesSentNr   r   r   r   r   r       s
   
 r   c                   @   s   e Zd ZdZdS )ÚRTCInboundRtpStreamStatsz„
    The :class:`RTCInboundRtpStreamStats` dictionary represents the measurement
    metrics for the incoming RTP media stream.
    N)r   r	   r
   r   r   r   r   r   r    (   s    r    c                   @   s"   e Zd ZU dZeed< eed< dS )ÚRTCRemoteInboundRtpStreamStatszŸ
    The :class:`RTCRemoteInboundRtpStreamStats` dictionary represents the remote
    endpoint's measurement metrics for a particular incoming RTP stream.
    ÚroundTripTimeÚfractionLostN)r   r	   r
   r   Úfloatr   r   r   r   r   r!   2   s   
 r!   c                   @   s   e Zd ZU dZeed< dS )ÚRTCOutboundRtpStreamStatsz
    The :class:`RTCOutboundRtpStreamStats` dictionary represents the measurement
    metrics for the outgoing RTP stream.
    ÚtrackIdN)r   r	   r
   r   r   r   r   r   r   r   r%   =   s   
 r%   c                   @   s$   e Zd ZU dZdZeej ed< dS )ÚRTCRemoteOutboundRtpStreamStatsz—
    The :class:`RTCRemoteOutboundRtpStreamStats` dictionary represents the remote
    endpoint's measurement metrics for its outgoing RTP stream.
    NÚremoteTimestamp)r   r	   r
   r   r(   r   r   r   r   r   r   r   r'   G   s   
 r'   c                   @   sH   e Zd ZU eed< 	 eed< 	 eed< 	 eed< 	 eed< 	 eed< dS )ÚRTCTransportStatsr   r   r   ÚbytesReceivedÚiceRoleÚ	dtlsStateNr   r   r   r   r   r)   Q   s   
 r)   c                   @   s"   e Zd ZdZdeddfdd„ZdS )ÚRTCStatsReporta  
    Provides statistics data about WebRTC connections as returned by the
    :meth:`RTCPeerConnection.getStats()`, :meth:`RTCRtpReceiver.getStats()`
    and :meth:`RTCRtpSender.getStats()` coroutines.

    This object consists of a mapping of string identifiers to objects which
    are instances of:

    - :class:`RTCInboundRtpStreamStats`
    - :class:`RTCOutboundRtpStreamStats`
    - :class:`RTCRemoteInboundRtpStreamStats`
    - :class:`RTCRemoteOutboundRtpStreamStats`
    - :class:`RTCTransportStats`
    ÚstatsÚreturnNc                 C   s   || |j < d S )N)r   )Úselfr.   r   r   r   Úaddq   s   zRTCStatsReport.add)r   r	   r
   r   r   r1   r   r   r   r   r-   a   s    r-   )r   Údataclassesr   Útypingr   r   r   r   r   r    r!   r%   r'   r)   Údictr-   r   r   r   r   Ú<module>   s,    	
		