a ”ˆ«hÒ ã@s4ddlmZddlZddlZGdd„dejjƒZdS)é)Ú interfaceséNcs eZdZdZ‡fdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Z‡ZS)$ÚExportsControllerz4 Controls and manages object interface exporting. cs$tt|ƒ ¡g|_g|_d|_dS)NF)ÚsuperrÚ__init__Ú _exportersÚ_objectsÚ_exports_initialized)Úself©Ú __class__©úCheck if method was marked with @exports.get_property wrapper.Úproperty_get_paramsrrr r rÚ_is_exportable_getter sz'ExportsController._is_exportable_gettercCst |¡ot|dƒS)z>Check if method was marked with @exports.set_property wrapper.Úproperty_set_paramsrrr r rÚ_is_exportable_setter$sz'ExportsController._is_exportable_settercCs<|jD]0}|jd}|jd}|j|g|¢Ri|¤ŽqdS)z!Register method to all exporters.rrN)rrZexport©r rÚexporterÚargsÚkwargsr r rÚ_export_method(s   z ExportsController._export_methodcCs<|jD]0}|jd}|jd}|j|g|¢Ri|¤ŽqdS)ú!Register signal to all exporters.rrN)rrÚsignalr!r r rÚ_export_signal/s   z ExportsController._export_signalcCs<|jD]0}|jd}|jd}|j|g|¢Ri|¤ŽqdS)z*Register property getter to all exporters.rrN)rrZproperty_getterr!r r rÚ_export_getter6s   z ExportsController._export_gettercCs<|jD]0}|jd}|jd}|j|g|¢Ri|¤ŽqdS)z*Register property setter to all exporters.rrN)rrZproperty_setterr!r r rÚ_export_setter=s   z ExportsController._export_settercOs(|jD]}|j|g|¢Ri|¤ŽqdS)r&N)rÚ send_signal)r r'r#r$r"r r rr+Ds zExportsController.send_signalcOs |jD]}|j|i|¤ŽqdS)N)rÚproperty_changed)r r#r$r"r r rr,Is z"ExportsController.property_changedcCs|jD] }| ¡qdS)z=Allows to perform checks on exporters without special thread.N)rÚ period_check©r r"r r rr-Ms zExportsController.period_checkcCs¨|jr dS|jD]Œ}t ||j¡D]\}}| |¡q"t ||j¡D]\}}| |¡qDt ||j¡D]\}}|  |¡qft ||j ¡D]\}}|  |¡qˆqd|_dS)NT) r rrZ getmembersrr%rr(rr)r r*)r rÚnamerr r rÚ_initialize_exportsRs    z%ExportsController._initialize_exportscCs | ¡|jD] }| ¡qdS)zStart the exports.N)r0rÚstartr.r r rr1bs zExportsController.startcCs|jD] }| ¡qdS)zStop the exports.N)rÚstopr.r r rr2hs zExportsController.stop)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrrrrr r%r(r)r*r+r,r-r0r1r2Ú __classcell__r r r rrs$ r)ÚrrZtuned.patternsZtunedÚpatternsZ Singletonrr r r rÚs