File: //lib/python3/dist-packages/twisted/internet/__pycache__/gireactor.cpython-310.pyc
o
�b � @ s� d Z ddlZddlmZ ddlmZ ddlmZ ddl m
Z
dZej�
� eedd�dur1e�� G d d
� d
ej�ZG dd� dej�Zddd�ZdgZdS )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.
� N)�GLib)� _glibbase)�ReactorAlreadyRunning)�runtimeT�threads_initc @ s^ e Zd ZdZejjejjB ejjB Z ejj
ZejjZ
ee B Ze
e B ZdZddd�Zdd� ZdS ) � GIReactorz�
GObject-introspection event loop reactor.
@ivar _gapplication: A C{Gio.Application} instance that was registered
with C{registerGApplication}.
NFc C �0 d }|du rddl m} tjj| t||d� d S �NTr )�Gtk��useGtk)�
gi.repositoryr
r �GlibReactorBase�__init__r ��selfr �_gtk� r �</usr/lib/python3/dist-packages/twisted/internet/gireactor.pyr E � zGIReactor.__init__c sV | j dur td��| jrtd��t� d�std��� | _ � fdd�}|| _� j| _dS )a�
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 s � � � � �d � d S )N)�hold�runr ��appr r r c s z+GIReactor.registerGApplication.<locals>.run)�
_gapplication�RuntimeError�_startedr �hasattr�_runr �_crash)r r r r r r �registerGApplicationL s
�
�zGIReactor.registerGApplication�F)�__name__�
__module__�__qualname__�__doc__r �IOCondition�HUP�ERR�NVAL�_POLL_DISCONNECTED�IN�_POLL_IN�OUT� _POLL_OUT�INFLAGS�OUTFLAGSr r r! r r r r r . s �
r c @ s"