
    "j                     d    d dl Z d dlZd dlmZ d dlmZ  ej                  e      Z G d d      Z	y)    N)Protocol)
AdbLoggingc                   j    e Zd Zd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dZd Zy)
ConnectionNc                 <    || _         || _        || _        d | _        y N)hostporttimeoutsocket)selfr	   r
   r   s       T/var/www/oz-panel.ru/ozpay-pub/venv/lib/python3.12/site-packages/ppadb/connection.py__init__zConnection.__init__   s    		    c                     | S r    r   s    r   	__enter__zConnection.__enter__   s    r   c                 $    | j                          y r   )close)r   typevalue	tracebacks       r   __exit__zConnection.__exit__   s    

r   c           	         t         j                  dj                  | j                  | j                               t        j
                  t
        j                  t
        j                        | _        d}d}| j
                  j                  t
        j                  t
        j                  t        j                  d||             | j                  r%| j
                  j                  | j                         	 | j
                  j                  | j                  | j                  f       | j
                  S # t
        j                   $ rE}| j#                          t%        dj                  | j                  | j                  |            d }~ww xY w)NzConnect to adb server - {}:{}   r   iiz?ERROR: connecting to {}:{} {}.
Is adb running on your computer?)loggerdebugformatr	   r
   r   AF_INETSOCK_STREAM
setsockopt
SOL_SOCKET	SO_LINGERstructpackr   
settimeoutconnecterrorr   RuntimeError)r   l_onoffl_lingeres       r   r)   zConnection.connect   s   4;;DIItyyQRmmFNNF4F4FGv00&2B2BFKKPTV]_gDhi<<KK""4<<0	KKDII 67 {{ || 	JJLahh				   	s   51D2 2F
A FF
c                     | j                   sy t        j                  d       	 | j                   j                          y # t        $ r Y y w xY w)NzConnection closed...)r   r   r   r   OSErrorr   s    r   r   zConnection.close/   s@    {{+,	KK 		s   ? 	A
Ac                 8    | j                   j                  |      S r   )r   recv)r   lengths     r   _recvzConnection._recv>   s    {{''r   c                 h    t        |      }t        |      }| j                  j                  |       |S r   )	bytearray
memoryviewr   	recv_into)r   r3   r2   views       r   
_recv_intozConnection._recv_intoA   s-     $d#r   c                 :    | j                   j                  |       y r   )r   sendr   datas     r   _sendzConnection._sendG   s    r   c                     t        | j                  d      j                  d      d      }| j                  |      }|j                  d      S )N   utf-8   )intr4   decoder:   )r   nobr2   s      r   receivezConnection.receiveJ   s>    $**Q-&&w/4s#{{7##r   c                     t        j                  |      }t        j                  |       | j	                  |       | j                         S r   )r   encode_datar   r   r?   _check_status)r   msgs     r   r<   zConnection.sendP   s8    ""3'S

3!!##r   c                     | j                  d      j                  d      }|t        j                  k7  rD| j                  d      j                  d      }t	        dj                  t        |      |            y)NrA   rB   i   zERROR: {} {}T)r4   rE   r   OKAYr+   r    repr)r   r2   r*   s      r   rJ   zConnection._check_statusV   s^    zz!}##G,8== JJt$++G4E~44T$ZGHHr   c                 "    | j                         S r   )rJ   r   s    r   check_statuszConnection.check_status^   s    !!##r   c                 P    t               }	 | j                  d      }|s	 |S ||z  })Ni   )r6   r4   )r   r>   r2   s      r   read_allzConnection.read_allf   s7    {::d#D  DLD	 r   c                 (    | j                  |      }|S r   )r4   )r   r3   r>   s      r   readzConnection.readq   s    zz&!r   c                 &    | j                  |       y r   )r?   r=   s     r   writezConnection.writeu   s    

4r   )	localhosti  N)r   )__name__
__module____qualname__r   r   r   r)   r   r4   r:   r?   rG   r<   rJ   rP   rR   rT   rV   r   r   r   r   r   
   sM    0($$$	r   r   )
r&   r   ppadb.protocolr   ppadb.utils.loggerr   
get_loggerrX   r   r   r   r   r   <module>r^      s/      # )			x	(l lr   