
    zf
                     x    d Z  G d d          Z G d de          Z G d de          Z G d de          Zd	S )
z0Module generating ICMP payloads (with no header)c                        e Zd Zd Zd Zd ZdS )PayloadProviderc                      t          d          )Nz*Cannot create instances of PayloadProviderNotImplementedErrorselfs    ]/var/www/ffwdstore.be/apps/py-env/lib/python3.11/site-packages/pythonping/payload_provider.py__init__zPayloadProvider.__init__   s    !"NOOO    c                     t                      Nr   r   s    r	   __iter__zPayloadProvider.__iter__       !###r   c                     t                      r   r   r   s    r	   __next__zPayloadProvider.__next__   r   r   N__name__
__module____qualname__r
   r   r    r   r	   r   r      sD        P P P$ $ $$ $ $ $ $r   r   c                        e Zd Zd Zd Zd ZdS )Listc                 "    || _         d| _        dS )zCreates a provider of payloads from an existing list of payloads

        :param payload_list: An existing list of payloads
        :type payload_list: list    N)	_payloads_counter)r   payload_lists     r	   r
   zList.__init__   s    
 &r   c                     d| _         | S Nr   r   r   s    r	   r   zList.__iter__       r   c                     | j         t          | j                  k     r$| j        | j                  }| xj         dz  c_         |S t          N   )r   lenr   StopIterationr   rets     r	   r   zList.__next__   sB    =3t~...../CMMQMMJr   Nr   r   r   r	   r   r      sA                r   r   c                        e Zd Zd Zd Zd ZdS )Repeatc                 0    || _         || _        d| _        dS )zCreates a provider of many identical payloads

        :param pattern: The existing payload
        :type pattern: Union[str, bytes]
        :param count: How many payloads to generate
        :type count: intr   N)patterncountr   )r   r,   r-   s      r	   r
   zRepeat.__init__%   s     
r   c                     d| _         | S r   r    r   s    r	   r   zRepeat.__iter__0   r!   r   c                 ^    | j         | j        k     r| xj         dz  c_         | j        S t          r#   )r   r-   r,   r&   r   s    r	   r   zRepeat.__next__4   s/    =4:%%MMQMM<r   Nr   r   r   r	   r*   r*   $   sA        	 	 	      r   r*   c                        e Zd Zd Zd Zd ZdS )Sweepc                 6   ||k    rt          d          t          |          dk    rt          d          || _        || _        || _        t          | j                  |k    s(| xj        |z  c_        t          | j                  |k    (| j        | _        dS )av  Creates a provider of payloads of increasing size

        :param pattern: The existing payload, may be cut or replicated to fit the size
        :type pattern: Union[str, bytes]
        :param start_size: The first payload size to start with, included
        :type start_size: int
        :param end_size: The payload size to end with, included
        :type end_size: intz1end_size must be greater or equal than start_sizer   zpattern cannot be emptyN)
ValueErrorr%   r,   
start_sizeend_size_current_size)r   r,   r4   r5   s       r	   r
   zSweep.__init__<   s       PQQQw<<16777$ dl##x//LLG#LL dl##x//!_r   c                     | j         | _        | S r   )r4   r6   r   s    r	   r   zSweep.__iter__Q   s    !_r   c                 |    | j         | j        k    r&| j        d| j                  }| xj         dz  c_         |S t          )Nr   r$   )r6   r5   r,   r&   r'   s     r	   r   zSweep.__next__U   sE    ..,q!334C!#Jr   Nr   r   r   r	   r1   r1   ;   sA        - - -*      r   r1   N)__doc__r   r   r*   r1   r   r   r	   <module>r:      s    6 6$ $ $ $ $ $ $ $    ?   *    _   .    O     r   