U
vi/ @ sd d dl mZmZmZmZ d dlmZm Z d dlmZm Z m
Z
ddlmZ edZ
G dd deZd S )
)AnyOptionalTypeVarcast)abctyping)CompositeDisposable
DisposableSingleAssignmentDisposable )PeriodicScheduler_TStatec s e Zd ZdZedd fddZdejeje e
e eej
ddd Zdeje e
e ej
d
ddZdejeje e
e ej
d
ddZdejeje e
e ej
d
ddZdejeje e
e ej
dddZ ZS )GtkSchedulerzA scheduler that schedules work via the GLib main loop
used in GTK+ applications.
See https://wiki.gnome.org/Projects/PyGObject
N)glibreturnc s t || _dS )a Create a new GtkScheduler.
Args:
glib: The GLib module to use; typically, you would get this by
>>> import gi
>>> gi.require_version('Gtk', '3.0')
>>> from gi.repository import GLib
N)super__init___glib)selfr __class__ Z/opt/alt/python38/lib/python3.8/site-packages/reactivex/scheduler/mainloop/gtkscheduler.pyr s
zGtkScheduler.__init__F)timeactionstateperiodicr c sp t dt|d }t dttd fdd}j||d d dfdd }tt |S )
Nr g @@F)_r c sB rdS r"t tjt njt tjt d_S )NFr )r r ScheduledPeriodicActionr
Z
invoke_actionScheduledActionZ
disposable)r r r Zsadr r stoppedr r
timer_handler1 s z1GtkScheduler._gtk_schedule..timer_handler)r c s d d S )NTr r )r" r r disposeA s z+GtkScheduler._gtk_schedule..dispose)
maxintZ
to_secondsr
r boolr Ztimeout_addr r )r r r r r msecsr# r$ r r! r
_gtk_schedule# s zGtkScheduler._gtk_schedule)r r r c C s | d||S )a! Schedules an action to be executed.
Args:
action: Action to be executed.
state: [Optional] state to be given to the action function.
Returns:
The disposable object used to cancel the scheduled action
(best effort).
g r) )r r r r r r scheduleG s
zGtkScheduler.schedule)duetimer r r c C s | j |||dS )au Schedules an action to be executed after duetime.
Args:
duetime: Relative time after which to execute the action.
action: Action to be executed.
state: [Optional] state to be given to the action function.
Returns:
The disposable object used to cancel the scheduled action
(best effort).
r r* r r, r r r r r schedule_relativeV s zGtkScheduler.schedule_relativec C s | |}| j|| j ||dS )ao Schedules an action to be executed at duetime.
Args:
duetime: Absolute time at which to execute the action.
action: Action to be executed.
state: [Optional] state to be given to the action function.
Returns:
The disposable object used to cancel the scheduled action
(best effort).
r )to_datetimer) nowr- r r r schedule_absolutei s
zGtkScheduler.schedule_absolute)periodr r r c C s | j |||ddS )a Schedules a periodic piece of work to be executed in the loop.
Args:
period: Period in seconds for running the work repeatedly.
action: Action to be executed.
state: [Optional] state to be given to the action function.
Returns:
The disposable object used to cancel the scheduled action
(best effort).
T)r r r* )r r2 r r r r r schedule_periodic~ s zGtkScheduler.schedule_periodic)NF)N)N)N)N)__name__
__module____qualname____doc__r r r ZAbsoluteOrRelativeTimeZScheduledSingleOrPeriodicActionr
r r' r ZDisposableBaser) r r+ ZRelativeTimer. ZAbsoluteTimer1 r r3
__classcell__r r r r r sL % r N)r r r r r Z reactivexr Zreactivex.disposabler r r
Zperiodicschedulerr r
r r r r r s