o
    BŠ]s  ã                   @   s<   d dl mZ d dlmZ d dlmZ g ZG dd„ deƒZdS )é    )Únull)ÚAbstractTransport)Úerrorc                   @   sT   e Zd ZdZeZddefdd„Zdd„ Zdd	„ Z	d
d„ Z
dd„ Zdd„ Zdd„ ZdS )ÚAbstractTransportTargetNé   é   c                 C   s.   |   |¡| _|| _|| _|| _d | _d | _d S ©N)Ú_resolveAddrÚtransportAddrÚtimeoutÚretriesÚtagListÚifaceÚ	transport)Úselfr
   r   r   r   © r   ú8/usr/lib/python3/dist-packages/pysnmp/hlapi/transport.pyÚ__init__   s   
z AbstractTransportTarget.__init__c                 C   s   d| j j| j| j| j| jf S )Nz*%s(%r, timeout=%r, retries=%r, tagList=%r))Ú	__class__Ú__name__r
   r   r   r   ©r   r   r   r   Ú__repr__   s   
þz AbstractTransportTarget.__repr__c                 C   s   | j | jfS r   )ÚtransportDomainr
   r   r   r   r   ÚgetTransportInfo    s   z(AbstractTransportTarget.getTransportInfoc                 C   s
   || _ | S )a,  Set source address.

        Parameters
        ----------
        iface : tuple
            Indicates network address of a local interface from which SNMP packets will be originated.
            Format is the same as of `transportAddress`.

        Returns
        -------
            self

        )r   )r   r   r   r   r   ÚsetLocalAddress#   s   z'AbstractTransportTarget.setLocalAddressc                 C   s   |   ¡  | j¡| _| jS r   )ÚprotoTransportÚopenClientModer   r   r   r   r   r   r   4   s   z&AbstractTransportTarget.openClientModec                 C   s(   | j  |j¡st d| j |jf ¡‚d S )Nz1Transport %r is not compatible with dispatcher %r)r   ZisCompatibleWithDispatcherZtransportDispatcherr   ZPySnmpError)r   Z
snmpEnginer   r   r   ÚverifyDispatcherCompatibility8   s
   ÿÿz5AbstractTransportTarget.verifyDispatcherCompatibilityc                 C   s   t ƒ ‚r   )ÚNotImplementedError)r   r
   r   r   r   r	   =   s   z$AbstractTransportTarget._resolveAddr)r   Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r      s    r   N)	Zpyasn1.compat.octetsr   Zpysnmp.carrier.baser   Zpysnmpr   Ú__all__Úobjectr   r   r   r   r   Ú<module>   s
   