Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 À<×eOã @sddlmZddlZddlZddlZddlZddlZddlZ ddl j Z ddl Z ddl Z ddlmZddlmZddlmZddlmZddlmZdd lmZydd lmZd d „ZWn ek rÖdd lmZYnXe jjƒZdd„ZGdd„dej ƒZ!dS)é)Ú interfaceséN)Úismethod)Úpolkit)ÚGLib)Ú FunctionType)Ú DBusException)Ú ErrorMessage)ÚgetfullargspeccCst|ƒS)N)r )Úfunc©r ú#/usr/lib/python3.6/dbus_exporter.pyÚ getargspecsr)rcCs�t|ddƒ}|dk rn0t|ddƒdkr4d|jj}nd|j|jjf}t|tƒrZ|jƒ}ndjtj |j|ƒƒ}t |||ƒ}|j ƒsŒ|j |ƒdS)NZ_dbus_error_nameÚ __module__ÚÚ__main__zorg.freedesktop.DBus.Python.%sz!org.freedesktop.DBus.Python.%s.%s)rr) ÚgetattrÚ __class__Ú__name__rÚ isinstancerZget_dbus_messageÚjoinÚ tracebackÚformat_exception_onlyr Z get_no_replyZ send_message)Z connectionÚmessageZ exceptionÚnameÚcontentsZreplyr r r Ú_method_reply_error$s     rc@s„eZdZdZdd„Zedd„ƒZedd„ƒZedd „ƒZd d „Z d d „Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„ZdS)Ú DBusExportera+ Export method calls through DBus Interface. We take a method to be exported and create a simple wrapper function to call it. This is required as we need the original function to be bound to the original object instance. While the wrapper will be bound to an object we dynamically construct. cCs”tjƒtjkrttj_tjjj dd�d|_ d|_ i|_ t ƒ|_||_||_||_||_d|_d|_tƒ|_tjtjƒ}tjƒ|_tjtj|ƒdS)NT)Zset_as_default)ÚlogZgetEffectiveLevelÚloggingÚDEBUGrÚdbusÚserviceZmainloopZglibZ DBusGMainLoopÚ_dbus_object_clsZ _dbus_objectÚ _dbus_methodsÚsetÚ_signalsÚ _bus_nameÚ_interface_nameÚ _object_nameÚ _namespaceÚ_threadÚ _bus_objectrÚ_polkitÚsignalÚ getsignalÚSIGINTrZMainLoopÚ _main_loop)ÚselfÚbus_nameÚinterface_nameÚ object_nameÚ namespaceZsignal_handlerr r r Ú__init__Bs"  zDBusExporter.__init__cCs|jS)N)r')r2r r r r3`szDBusExporter.bus_namecCs|jS)N)r()r2r r r r4dszDBusExporter.interface_namecCs|jS)N)r))r2r r r r5hszDBusExporter.object_namecCs |jdk S)N)r+)r2r r r ÚrunninglszDBusExporter.runningcCsNdj|jdjt|jƒjƒd�}t|dt|jƒdƒ}t |j dt ƒ|jƒ}|S)Nz2def {name}({args}): return wrapper({args}) z, )rÚargszÚexecr) ÚformatrrrÚ__func__r9ÚcompileÚlenr$rÚ co_constsÚlocals)r2ÚmethodÚwrapperÚsourceÚcoder r r r Ú_prepare_for_dbusoszDBusExporter._prepare_for_dbuscsjtˆƒstdƒ‚ˆj}|ˆjkr(tdƒ‚‡‡fdd„}ˆjˆ|ƒ}tjjˆj||dd�|ƒ}|ˆj|<dS)Nz#Only bound methods can be exported.z*Method with this name is already exported.cs ˆjdˆj}|d }tjd||fƒˆjj||ƒ}|}|dkrXtjd||fƒn¨|dkrttjd||fƒnŒ|dkr¦tjd||fƒt|dd …ƒd g}nZ|dkrØtjd ||fƒt|dd…ƒd g}n(tj d ||fƒt|dd…ƒd g}ˆ||ŽS)NÚ.rz?checking authorization for action '%s' requested by caller '%s'zJaction '%s' requested by caller '%s' was successfully authorized by polkitézepolkit error, but action '%s' requested by caller '%s' was successfully authorized by fallback methodrzLaction '%s' requested by caller '%s' wasn't authorized, ignoring the requestrzppolkit error and action '%s' requested by caller '%s' wasn't authorized by fallback method, ignoring the requestzvpolkit error and unable to use fallback method to authorize action '%s' requested by caller '%s', ignoring the requestéÿÿÿÿrHrHrHrH) r*rrÚdebugr-Zcheck_authorizationÚwarnÚinfoÚlistÚerror)Úownerr9ÚkwargsZ action_idÚcallerÚretZ args_copy)rAr2r r rB…s$z$DBusExporter.export..wrapperrP)Zsender_keyword) rÚ Exceptionrr$rEr!r"rAr()r2rAZ in_signatureÚ out_signatureÚ method_namerBr )rAr2r Úexport}s  zDBusExporter.exportcsntˆƒstdƒ‚ˆj}||jkr(tdƒ‚‡fdd„}|jˆ|ƒ}tjj|j|ƒ|ƒ}||j|<|j j |ƒdS)Nz#Only bound methods can be exported.z*Method with this name is already exported.cs ˆ||ŽS)Nr )rNr9rO)rAr r rB§sz$DBusExporter.signal..wrapper) rrRrr$rEr!r"r.r(r&Úadd)r2rArSrTrBr )rAr r.Ÿs    zDBusExporter.signalc Osfd}||jks|jdkrd}yt|j|ƒ}Wntk rDd}YnX|rXtd|ƒ‚n |||ŽdS)NFTzSignal '%s' doesn't exist.)r&r,rÚAttributeErrorrR)r2r.r9rOÚerrrAr r r Ú send_signal°s zDBusExporter.send_signalcCs<|jdk rtdƒ‚dt|ƒ}t|tjjf|jƒ}||_dS)Nz%The exporter class was already build.zDBusExporter_%d)r#rRÚidÚtyper!r"ZObjectr$)r2Z unique_nameÚclsr r r Ú_construct_dbus_object_class½s   z)DBusExporter._construct_dbus_object_classcCsn|jƒr dS|jdkr|jƒ|jƒtjƒ}tjj|j|ƒ}|j||j |ƒ|_ t j |j d�|_|jjƒdS)N)Útarget)r8r#r]Ústopr!Z SystemBusr"ZBusNamer'r)r,Ú threadingZThreadÚ _thread_coder+Ústart)r2Zbusr3r r r rbÆs zDBusExporter.startcCs2|jdk r.|jjƒr.|jjƒ|jjƒd|_dS)N)r+Zis_aliver1Úquitr)r2r r r r_Ós  zDBusExporter.stopcCs|jjƒ|`d|_dS)N)r1Zrunr,)r2r r r raÙs zDBusExporter._thread_codeN)rrÚ __qualname__Ú__doc__r7Úpropertyr3r4r5r8rErUr.rYr]rbr_rar r r r r8s   "   r)"rrZ dbus.servicer!Zdbus.mainloop.glibZdbus.exceptionsr`r.Z tuned.logsZtunedZ tuned.constsZconstsrrÚinspectrZtuned.utils.polkitrZ gi.repositoryrÚtypesrrZ dbus.lowlevelr r rÚ ImportErrorZlogsÚgetrrZExporterInterfacerr r r r Ús.