+
     Gi  c                   s`    ^RI Ht ^ RIt^ RIt ! R R]P
                  P                  4      tR# )i   )
interfacesNc                   s   a a ] tR t^t oRtV 3R ltR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tRtVtV ;t# )ExportsControllerz2
Controls and manages object interface exporting.
c                sV   < \         \        V `  4        . V n        . V n        R V n        R# )FN)Zsuperr   __init__
_exporters_objects_exports_initialized)self	__class__s   &=/usr/lib/python3.14/site-packages/tuned/exports/controller.pyr   ZExportsController.__init__
   s'    4)+$/$-#$    c                <    V P                   P                  V4       R# )zRegister objects exporter.N)r   appendr   instance   &&r   register_exporterZ#ExportsController.register_exporter   s    //"r	   c                r
   )zRegister object to be exported.N)r   r   r   r   r   register_objectZ!ExportsController.register_object   s    --x r	   c                V    \         P                  ! V4      ;'       d    \        VR4      # )z8Check if method was marked with @exports.export wrapper.export_paramsinspectZismethodZhasattrr   methodr   r   _is_exportable_methodZ'ExportsController._is_exportable_method   "    			&	!	F	Fgfo&FFr	   c                r   )z8Check if method was marked with @exports.signal wrapper.signal_paramsr   r   r   r   _is_exportable_signalZ'ExportsController._is_exportable_signal   r   r	   c                r   )z>Check if method was marked with @exports.get_property wrapper.property_get_paramsr   r   r   r   _is_exportable_getterZ'ExportsController._is_exportable_getter    #    			&	!	L	Lgf6K&LLr	   c                r   )z>Check if method was marked with @exports.set_property wrapper.property_set_paramsr   r   r   r   _is_exportable_setterZ'ExportsController._is_exportable_setter$   r   r	   c                    V P                    F?  pVP                  ^ ,          pVP                  ^,          pVP                  ! V.VO5/ VB  KA  	  R# )z!Register method to all exporters.N)r   r   Zexportr   r   exporterargskwargs   &&   r   _export_methodZ ExportsController._export_method(   F    //h


q
!4  #6??6+D+F+ "r	   c                r    z!Register signal to all exporters.N)r   r   signalr!   r%   r   _export_signalZ ExportsController._export_signal/   r'   r	   c                r    )z*Register property getter to all exporters.N)r   r   Zproperty_getterr!   r%   r   _export_getterZ ExportsController._export_getter6   H    //h

$
$Q
'4&&q)6F4T4V4 "r	   c                r    )z*Register property setter to all exporters.N)r   r   Zproperty_setterr!   r%   r   _export_setterZ ExportsController._export_setter=   r,   r	   c                sX    V P                    F  pVP                  ! V.VO5/ VB  K  	  R# r(   )r   send_signal)r   r)   r#   r$   r"   s   &&*, r   r.   ZExportsController.send_signalD   s(    //h000 "r	   c                sP    V P                    F  pVP                  ! V/ VB  K  	  R # )N)r   property_changed)r   r#   r$   r"   s   &*, r   r/   Z"ExportsController.property_changedI   s#    //hd-f- "r	   c                L    V P                    F  pVP                  4        K  	  R# )z=Allows to perform checks on exporters without special thread.N)r   period_checkr   r"      & r   r1   ZExportsController.period_checkM   s    //h "r	   c                s2   V P                   '       d   R # V P                   F  p\        P                  ! WP                  4       F  w  r#V P                  V4       K  	  \        P                  ! WP                  4       F  w  r#V P                  V4       K  	  \        P                  ! WP                  4       F  w  r#V P                  V4       K  	  \        P                  ! WP                  4       F  w  r#V P                  V4       K  	  K  	  RV n         R # )NT)r   r   r   Z
getmembersr   r&   r   r*   r   r+   r   r-   )r   r   Znamer   s   &   r   _initialize_exportsZ%ExportsController._initialize_exportsR   s    		--h))(4N4NO|t P))(4N4NO|t P))(4N4NO|t P))(4N4NO|t P   #$r	   c                sl    V P                  4        V P                   F  pVP                  4        K  	  R# )zStart the exports.N)r4   r   startr2   r3   r   r5   ZExportsController.startb   s&    //h>> "r	   c                r0   )zStop the exports.N)r   stopr2   r3   r   r6   ZExportsController.stoph   s    //h==? "r	   )r   r   r   )Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   r   r   r   r   r   r   r&   r*   r+   r-   r.   r/   r1   r4   r5   r6   Z__static_attributes__Z__classdictcell__Z__classcell__)r   Z__classdict__s   @@r   r   r      sh     $#!GGMM,,551
.
#  r	   r   )Z r    r   Ztuned.patternsZtunedZpatternsZ	Singletonr   ) r	   r   <module>r7      s&      f00 fr	   