U
    Ïþe³  ã                   @   sd   G d d„ de ƒZG dd„ de ƒZG dd„ de ƒZG dd„ deƒZG dd	„ d	eƒZG d
d„ deƒZdS )c                   @   sT   e Zd ZdZdZdZdZdZdZdZ	dZ
dZd	Zd	Zd
ZdZdZdZdZdZdZdS )ÚTTypeé    é   é   é   é   é   é   é
   é   é   é   é   é   é   é   )ÚSTOPÚVOIDÚBOOLÚBYTEÚDOUBLENÚI16NÚI32NÚI64ÚSTRINGÚSTRUCTÚMAPÚSETÚLISTÚUTF8ÚUTF16N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   ZI08r   r   r   r   r   ZUTF7r   r   r   r   r   r   Z_VALUES_TO_NAMES© r#   r#   ú/thrift/Thrift.pyr      s$   r   c                   @   s   e Zd ZdZdZdZdZdS )ÚTMessageTyper   r   r   r   N)r    r!   r"   ÚCALLZREPLYZ	EXCEPTIONZONEWAYr#   r#   r#   r$   r%   >   s   r%   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )Ú
TProcessorz5Base class for processor, which works on two streams.c                 C   s   dS )zÈ
        Process a request.  The normal behvaior is to have the
        processor invoke the correct handler and then it is the
        server's responsibility to write the response to oprot.
        Nr#   )ÚselfÚiprotÚoprotr#   r#   r$   ÚprocessH   s    zTProcessor.processc                 C   s   dS )zp
        Install a callback that receives (name, type, seqid)
        after the message header is read.
        Nr#   )r(   Úfuncr#   r#   r$   Úon_message_beginP   s    zTProcessor.on_message_beginN)r    r!   r"   Ú__doc__r+   r-   r#   r#   r#   r$   r'   E   s   r'   c                       s"   e Zd ZdZd‡ fdd„	Z‡  ZS )Ú
TExceptionz%Base class for all thrift exceptions.Nc                    s"   t  | |¡ tt| ƒ d|¡ d S )NÚmessage)Ú	ExceptionÚ__init__Úsuperr/   Ú__setattr__)r(   r0   ©Ú	__class__r#   r$   r2   [   s    zTException.__init__)N)r    r!   r"   r.   r2   Ú__classcell__r#   r#   r5   r$   r/   X   s   r/   c                   @   sb   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZedfdd„Zdd„ Zdd„ Zdd„ ZdS )ÚTApplicationExceptionz$Application level thrift exceptions.r   r   r   r   r   é   r   é   r   é	   r	   Nc                 C   s   t  | |¡ || _d S ©N)r/   r2   Útype)r(   r=   r0   r#   r#   r$   r2   o   s    zTApplicationException.__init__c                 C   s´   | j r| j S | j| jkrdS | j| jkr,dS | j| jkr<dS | j| jkrLdS | j| jkr\dS | j| jkrldS | j| jkr|dS | j| j	krŒdS | j| j
krœd	S | j| jkr¬d
S dS d S )NzUnknown methodzInvalid message typezWrong method namezBad sequence IDzMissing resultzInternal errorzProtocol errorzInvalid transformzInvalid protocolzUnsupported client typez'Default (unknown) TApplicationException)r0   r=   ÚUNKNOWN_METHODÚINVALID_MESSAGE_TYPEÚWRONG_METHOD_NAMEÚBAD_SEQUENCE_IDÚMISSING_RESULTÚINTERNAL_ERRORÚPROTOCOL_ERRORÚINVALID_TRANSFORMÚINVALID_PROTOCOLÚUNSUPPORTED_CLIENT_TYPE©r(   r#   r#   r$   Ú__str__s   s.    zTApplicationException.__str__c                 C   s–   |  ¡  | ¡ \}}}|tjkr"qŠ|dkrL|tjkr@| ¡ | _q€| |¡ n4|dkrv|tjkrj| 	¡ | _
q€| |¡ n
| |¡ | ¡  q| ¡  d S )Nr   r   )ZreadStructBeginZreadFieldBeginr   r   r   Z
readStringr0   Úskipr   ZreadI32r=   ZreadFieldEndZreadStructEnd)r(   r)   ZfnameZftypeZfidr#   r#   r$   Úread   s    




zTApplicationException.readc                 C   sz   |  d¡ | jd k	r8| dtjd¡ | | j¡ | ¡  | jd k	rf| dtjd¡ | 	| j¡ | ¡  | 
¡  | ¡  d S )Nr8   r0   r   r=   r   )ZwriteStructBeginr0   ZwriteFieldBeginr   r   ZwriteStringZwriteFieldEndr=   r   ZwriteI32ZwriteFieldStopZwriteStructEnd)r(   r*   r#   r#   r$   Úwrite¢   s    


zTApplicationException.write)r    r!   r"   r.   ZUNKNOWNr>   r?   r@   rA   rB   rC   rD   rE   rF   rG   r2   rI   rK   rL   r#   r#   r#   r$   r8   `   s    r8   c                       s8   e Zd ZdZ‡ fdd„Zdd„ Zdd„ Zdd	„ Z‡  ZS )
ÚTFrozenDictz.A dictionary that is "frozen" like a frozensetc                    s4   t t| ƒj||Ž ttƒttt|  ¡ ƒƒƒA | _d S r<   )r3   rM   r2   ÚhashÚtupleÚsortedÚitemsÚ_TFrozenDict__hashval)r(   ÚargsÚkwargsr5   r#   r$   r2   ³   s    zTFrozenDict.__init__c                 G   s   t dƒ‚d S ©Nz"Can't modify frozen TFreezableDict©Ú	TypeError©r(   rS   r#   r#   r$   Ú__setitem__º   s    zTFrozenDict.__setitem__c                 G   s   t dƒ‚d S rU   rV   rX   r#   r#   r$   Ú__delitem__½   s    zTFrozenDict.__delitem__c                 C   s   | j S r<   )rR   rH   r#   r#   r$   Ú__hash__À   s    zTFrozenDict.__hash__)	r    r!   r"   r.   r2   rY   rZ   r[   r7   r#   r#   r5   r$   rM   °   s
   rM   N)	Úobjectr   r%   r'   r1   r/   r8   ÚdictrM   r#   r#   r#   r$   Ú<module>   s
   )P