3 À<×eÒ ã @ s4 d dl mZ ddlZddlZG dd„ dejjƒZdS )é )Ú interfacesé Nc s e Zd ZdZ‡ fdd„Zdd„ Zdd„ Zdd „ Zd d„ Zdd „ Z dd„ Z dd„ Zdd„ Zdd„ Z dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Z‡ ZS )$ÚExportsControllerz4 Controls and manages object interface exporting. c s$ t t| ƒjƒ g | _g | _d| _d S )NF)Úsuperr Ú__init__Ú _exportersÚ_objectsÚ_exports_initialized)Úself)Ú __class__© ú /usr/lib/python3.6/controller.pyr s zExportsController.__init__c C s | j j|ƒ dS )zRegister objects exporter.N)r Úappend)r Úinstancer r r Úregister_exporter s z#ExportsController.register_exporterc C s | j j|ƒ dS )zRegister object to be exported.N)r r )r r r r r Úregister_object s z!ExportsController.register_objectc C s t j|ƒot|dƒS )z8Check if method was marked with @exports.export wrapper.Ú export_params)ÚinspectÚismethodÚhasattr)r Úmethodr r r Ú_is_exportable_method s z'ExportsController._is_exportable_methodc C s t j|ƒot|dƒS )z8Check if method was marked with @exports.signal wrapper.Ú signal_params)r r r )r r r r r Ú_is_exportable_signal s z'ExportsController._is_exportable_signalc C s t j|ƒot|dƒS )z>Check if method was marked with @exports.get_property wrapper.Úproperty_get_params)r r r )r r r r r Ú_is_exportable_getter s z'ExportsController._is_exportable_getterc C s t j|ƒot|dƒS )z>Check if method was marked with @exports.set_property wrapper.Úproperty_set_params)r r r )r r r r r Ú_is_exportable_setter$ s z'ExportsController._is_exportable_setterc C s: x4| j D ]*}|jd }|jd }|j|f|ž|Ž qW dS )z!Register method to all exporters.r r N)r r Zexport)r r ÚexporterÚargsÚkwargsr r r Ú_export_method( s z ExportsController._export_methodc C s: x4| j D ]*}|jd }|jd }|j|f|ž|Ž qW dS )z!Register signal to all exporters.r r N)r r Úsignal)r r r r r r r r Ú_export_signal/ s z ExportsController._export_signalc C s: x4| j D ]*}|jd }|jd }|j|f|ž|Ž qW dS )z*Register property getter to all exporters.r r N)r r Zproperty_getter)r r r r r r r r Ú_export_getter6 s z ExportsController._export_getterc C s: x4| j D ]*}|jd }|jd }|j|f|ž|Ž qW dS )z*Register property setter to all exporters.r r N)r r Zproperty_setter)r r r r r r r r Ú_export_setter= s z ExportsController._export_setterc O s&