o
    JPZ                     @   sL   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ G dd deZdS )    N)AbstractReader)MibInfo)error)debugc                   @   s*   e Zd ZdZd	ddZdd Zdd ZdS )
CallbackReaderzFetch ASN.1 MIB text by name by calling user-defined callable.

    *CallbackReader* class instance tries to retrieve ASN.1 MIB files
    by name and return their contents to caller.
    Nc                 C   s   || _ || _dS )aq  Create an instance of *CallbackReader* bound to specific URL.

           Args:
               cbFun (callable): user callable accepting *MIB name* and *cbCtx* objects

           Keyword Args:
               cbCtx (object): user object that can be used to communicate state information
                   between user-scope code and the *cbFun* callable scope
        N)_cbFun_cbCtx)selfZcbFunZcbCtx r
   7/usr/lib/python3/dist-packages/pysmi/reader/callback.py__init__   s   

zCallbackReader.__init__c                 C   s   d| j j| jf S )Nz%s{"%s"})	__class____name__r   )r	   r
   r
   r   __str__!   s   zCallbackReader.__str__c                 C   sX   t jt j@ ot d| j|f  | || j}|r%tdd|t d|fS tj|| d)Nz#calling user callback %s for MIB %szfile:///dev/stdin )pathfilenamemtime)mibnamereader)	r   loggerZ
flagReaderr   r   r   timer   ZPySmiReaderFileNotFoundError)r	   r   resr
   r
   r   getData$   s   zCallbackReader.getData)N)r   
__module____qualname____doc__r   r   r   r
   r
   r
   r   r      s
    
r   )	r   Zpysmi.reader.baser   Zpysmi.mibinfor   Zpysmir   r   r   r
   r
   r
   r   <module>   s   