-
public void block (void* instance, ulong handler_id)
Blocks a handler of an instance so it will not be called during any signal emissions unless it is
unblocked again. Thus "blocking" a signal handler means to temporarily deactive it, a signal handler has to be unblocked exactly the
same amount of times it has been blocked before to become active again.
-
public void unblock (void* instance, ulong handler_id)
Undoes the effect of a previous block call. A
blocked handler is skipped during signal emissions and will not be invoked, unblocking it (for exactly the amount of times it has been
blocked before) reverts its "blocked" state, so the handler will be recognized by the signal system and is called upon future or
currently ongoing signal emissions (since the order in which handlers are called during signal emissions is deterministic, whether the
unblocked handler in question is called as part of a currently ongoing emission depends on how far that emission has proceeded yet).
-
public void disconnect (void* instance, ulong handler_id)
Disconnects a handler from an instance so it will not be called during any future or currently ongoing
emissions of the signal it has been connected to. The handler_id becomes invalid and may be reused.
-
public ulong find (void* instance, SignalMatchType mask, uint signal_id, Quark detail, Closure? closure, void* func, void* data)
Finds the first signal handler that matches certain selection criteria. The criteria mask is passed as
an OR-ed combination of SignalMatchType flags, and the criteria values are passed
as arguments. The match mask has to be non-0 for successful matches. If no handler was found, 0 is returned.
-
public bool is_connected (void* instance, ulong handler_id)
Returns whether handler_id is the id of a handler connected to instance.
-
public uint block_matched (void* instance, SignalMatchType mask, uint signal_id, Quark detail, Closure? closure, void* func, void* data)
Blocks all handlers on an instance that match a certain selection criteria. The criteria mask is passed
as an OR-ed combination of SignalMatchType flags, and the criteria values are
passed as arguments. Passing at least one of the CLOSURE,
FUNC or DATA
match flags is required for successful matches. If no handlers were found, 0 is returned, the number of blocked handlers
otherwise.
-
public uint unblock_matched (void* instance, SignalMatchType mask, uint signal_id, Quark detail, Closure? closure, void* func, void* data)
Unblocks all handlers on an instance that match a certain selection criteria. The criteria mask is
passed as an OR-ed combination of SignalMatchType flags, and the criteria values
are passed as arguments. Passing at least one of the CLOSURE,
FUNC or DATA
match flags is required for successful matches. If no handlers were found, 0 is returned, the number of unblocked handlers
otherwise. The match criteria should not apply to any handlers that are not currently blocked.
-
public uint disconnect_matched (void* instance, SignalMatchType mask, uint signal_id, Quark detail, Closure? closure, void* func, void* data)
Disconnects all handlers on an instance that match a certain selection criteria. The criteria mask is
passed as an OR-ed combination of SignalMatchType flags, and the criteria values
are passed as arguments. Passing at least one of the CLOSURE,
FUNC or DATA
match flags is required for successful matches. If no handlers were found, 0 is returned, the number of disconnected handlers
otherwise.
-
public uint block_by_func (void* instance, void* func, void* data)
-
public uint unblock_by_func (void* instance, void* func, void* data)
-
public uint disconnect_by_func (void* instance, void* func, void* data)