File: //opt/alt/python35/lib64/python3.5/idlelib/__pycache__/RemoteDebugger.cpython-35.opt-1.pyc
��Yf�.  �               @   s)  d  Z  d d l Z d d l m Z d Z d a d Z i  Z i  Z i  Z	 i  Z
 d d �  Z d d	 �  Z Gd
 d �  d � Z
 Gd d
 �  d
 � Z d d �  Z Gd d �  d � Z Gd d �  d � Z Gd d �  d � Z Gd d �  d � Z Gd d �  d � Z d d �  Z d d �  Z d d �  Z d  d! �  Z d S)"a�  Support for remote Python debugging.
Some ASCII art to describe the structure:
       IN PYTHON SUBPROCESS          #             IN IDLE PROCESS
                                     #
                                     #        oid='gui_adapter'
                 +----------+        #       +------------+          +-----+
                 | GUIProxy |--remote#call-->| GUIAdapter |--calls-->| GUI |
+-----+--calls-->+----------+        #       +------------+          +-----+
| Idb |                               #                             /
+-----+<-calls--+------------+         #      +----------+<--calls-/
                | IdbAdapter |<--remote#call--| IdbProxy |
                +------------+         #      +----------+
                oid='idb_adapter'      #
The purpose of the Proxy and Adapter classes is to translate certain
arguments and return values that cannot be transported through the RPC
barrier, in particular frame and traceback objects.
�    N)�Debugger�idb_adapterZgui_adapterc             C   s   t  |  � } |  t | <| S)N)�id�
frametable)�frame�fid� r   �;/opt/alt/python35/lib64/python3.5/idlelib/RemoteDebugger.py�
wrap_frame(   s    
r
   c             C   sO   |  d k r d S|  d } t  | � } | t | <|  d |  d | f } | Sd S)z0replace info[2], a traceback instance, by its IDN�   r   �   )r   �tracebacktable)�info�	tracebackZtraceback_id�
modified_infor   r   r	   �	wrap_info-   s    
r   c               @   s+   e  Z d  Z d d �  Z d d d � Z d S)�GUIProxyc             C   s   | |  _  | |  _ d  S)N)�conn�oid)�selfr   �gui_adap_oidr   r   r	   �__init__;   s    	zGUIProxy.__init__Nc             C   s5   |  j  j |  j d | t | � t | � f i  � d  S)N�interaction)r   �
remotecallr   r
   r   )r   �messager   r   r   r   r	   r   ?   s    zGUIProxy.interaction)�__name__�
__module__�__qualname__r   r   r   r   r   r	   r   9   s   r   c               @   s   e  Z d  Z d d �  Z d d �  Z d d �  Z d d �  Z d	 d
 �  Z d d �  Z d
 d �  Z	 d d �  Z
 d d �  Z d d �  Z d d �  Z
 d d �  Z d d �  Z d d �  Z d d �  Z d d  �  Z d! d"