
    h                         d dl mZmZ d dlZd dlZddlmZ ddlmZm	Z	m
Z
 ddlmZ ddlmZ erddlmZ  G d	 d
e      Zy)    )print_functionunicode_literalsN   )TYPE_CHECKING)	BrokerCliExceptionalQueue
NotExQueue)HttpSrv)HMaccas)SvcHubc                   :     e Zd ZdZ fdZd Zd Zd Zd Z xZ	S )	BrokerThrz;external api; behaves like BrokerMP but using plain threadsc                    t         t        |           || _        |j                  | _        |j
                  | _        |j                  | _        t        j                         | _	        d| _
        t        t        j                  j                  | j
                  j                  j                   d      d      | _        t%        | d       | _        | j(                  | _        | j(                  | _        y )Nr   iphash   )superr   __init__hublogargsasrv	threadingLockmutexnum_workersr   ospathjoinEcfgr   r
   httpsrvnoopreloadreload_sessions)selfr   	__class__s     I/jellyfin/media/venv/lib/python3.12/site-packages/copyparty/broker_thr.pyr   zBrokerThr.__init__   s    i')77HH	HH	^^%
 bggll499;;??HEqItT*ii#yy    c                 8    | j                   j                          y N)r!   shutdownr%   s    r'   r+   zBrokerThr.shutdown#   s    r(   c                      y r*    r,   s    r'   r"   zBrokerThr.noop'   s    r(   c                 z    | j                   }|j                  d      D ]  }t        ||      } t         ||       S )N.)r   splitgetattrr	   r%   destr   objnodes        r'   askzBrokerThr.ask*   sA     hhJJsO 	%D#t$C	% #t*%%r(   c                     |dk(  r | j                   j                  |d   d       y |dk(  r| j                   j                  |d          y | j                  }|j	                  d      D ]  }t        ||      }  ||  y )Nzhttpsrv.listenr   r   zhttpsrv.set_netdevsr0   )r!   listenset_netdevsr   r1   r2   r3   s        r'   sayzBrokerThr.say3   s    ##LLQ+((LL$$T!W- hhJJsO 	%D#t$C	% 	T
r(   )
__name__
__module____qualname____doc__r   r+   r"   r7   r;   __classcell__)r&   s   @r'   r   r      s    E)" &r(   r   )
__future__r   r   r   r   r   r   broker_utilr   r   r	   r!   r
   utilr   svchubr   r   r.   r(   r'   <module>rE      s/    7 	  # @ @  2	 2r(   