+
    üÐj®  ã                   óê   € R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ]! ]RR4      e   ]P                  ! 4         ! R R	]P                  4      t ! R
 R]P                  4      tRR R lltR.tR# )aÕ  
This module provides support for Twisted to interact with the glib
mainloop via GObject Introspection.

In order to use this support, simply do the following::

    from twisted.internet import gireactor
    gireactor.install()

If you wish to use a GApplication, register it with the reactor::

    from twisted.internet import reactor
    reactor.registerGApplication(app)

Then use twisted.internet APIs as usual.

On Python 3, pygobject v3.4 or later is required.
)ÚUnion)ÚGLib)Ú	_glibbase)ÚReactorAlreadyRunning)ÚruntimeÚthreads_initNc                   ó8   a € ] tR t^$t o RtRtRR ltR tRtV t	R# )Ú	GIReactorz•
GObject-introspection event loop reactor.

@ivar _gapplication: A C{Gio.Application} instance that was registered
    with C{registerGApplication}.
Nc                óP   € \         P                  P                  V \        R 4       R # ©N)r   ÚGlibReactorBaseÚ__init__r   )ÚselfÚuseGtks   &&Ú</usr/lib/python3/dist-packages/twisted/internet/gireactor.pyr   ÚGIReactor.__init__/   s   € Ü×!Ñ!×*Ñ*¨4´°tÖ<ó    c                óö   a€ V P                   e   \        R4      hV P                  '       d   \        R4      h\	        SR4      '       g   \        R4      hSV n         V3R lpW n        SP                  V n        R# )aK  
Register a C{Gio.Application} or C{Gtk.Application}, whose main loop
will be used instead of the default one.

We will C{hold} the application so it doesn't exit on its own. In
versions of C{python-gi} 3.2 and later, we exit the event loop using
the C{app.quit} method which overrides any holds. Older versions are
not supported.
Nz2Can't register more than one application instance.z5Can't register application after reactor was started.ÚquitzPApplication registration is not supported in versions of PyGObject prior to 3.2.c                  óJ   <€ S P                  4        S P                  R 4       R # r   )ÚholdÚrun)Úapps   €r   r   Ú+GIReactor.registerGApplication.<locals>.runI   s   ø€ Ø�H‰HŒJØ�G‰G�DŽMr   )Ú_gapplicationÚRuntimeErrorÚ_startedr   ÚhasattrÚ_runr   Ú_crash)r   r   r   s   &f r   ÚregisterGApplicationÚGIReactor.registerGApplication2   sx   ø€ ð ×ÑÒ)ÜÐSÓTÐTØ�=�=ˆ=Ü'ØGóð ô �s˜F×#Ò#Üð7óð ð !ˆÔõ	ð Œ	à—h‘hˆŽr   )r   r   r   ©F)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r    Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r	   r	   $   s    ø‡ € ñð €Mô=÷ð r   r	   c                   óR   a a€ ] tR t^Rt oRtRV 3R lltR tV3R lR ltRtVt	V ;t
# )ÚPortableGIReactorz4
Portable GObject Introspection event loop reactor.
c                ó4   <€ \         SV `  \        R VR7       R # )N©r   )Úsuperr   r   )r   r   Ú	__class__s   &&€r   r   ÚPortableGIReactor.__init__W   s   ø€ Ü‰Ñœ˜t¨FÐÖ3r   c                ó   € \        R4      h)zo
Register a C{Gio.Application} or C{Gtk.Application}, whose main loop
will be used instead of the default one.
z3GApplication is not currently supported on Windows.)ÚNotImplementedError)r   r   s   &&r   r    Ú&PortableGIReactor.registerGApplicationZ   s   € ô
 "Ð"WÓXÐXr   c                ó   <€ V ^8„  d   QhRR/# )é   ÚreturnN© )Úformatr*   s   "€r   Ú__annotate__ÚPortableGIReactor.__annotate__a   s   ø€ ÷ ñ ˜$ñ r   c                ó   € R# )z%
For compatibility only. Do nothing.
Nr8   )r   s   &r   ÚsimulateÚPortableGIReactor.simulatea   s   ‚ r   r8   r"   )r#   r$   r%   r&   r'   r   r    r=   r(   r)   Ú__classcell__)r0   r*   s   @@r   r,   r,   R   s$   ù‡ € ñ÷4òY÷÷ ð r   r,   c                óR   € V ^8„  d   QhR\         R\        \        \        3,          /# )r6   r   r7   )Úboolr   r	   r,   )r9   s   "r   r:   r:   g   s%   € ÷ ñ ”Dð ¤U¬9Ô6GÐ+GÕ%Hñ r   c                óš   € \         P                  P                  4       R8X  d   \        V R7      pM\	        V R7      p^ RIHp V! V4       V# )z³
Configure the twisted mainloop to be run inside the glib mainloop.

@param useGtk: A hint that the Gtk GUI will or will not be used.  Currently
    does not modify any behavior.
Úposixr.   )ÚinstallReactor)r   ÚplatformÚgetTyper	   r,   Útwisted.internet.mainrD   )r   ÚreactorrD   s   &  r   ÚinstallrI   g   s?   € ô ×Ñ×ÑÓ! WÔ,Ü 6Ô*‰ä#¨6Ô2ˆå4á�7ÔØ€Nr   rI   r"   )r'   Útypingr   Úgi.repositoryr   Útwisted.internetr   Útwisted.internet.errorr   Útwisted.pythonr   Úgetattrr   r   r	   r,   rI   Ú__all__r8   r   r   Ú<module>rQ      si   ðñõ( å å &Ý 8Ý "á
ˆ4� Ó&Ò2Ø×ÒÔô+�	×)Ñ)ô +ô\˜	×1Ñ1ô ÷*ð& ˆ+‚r   