blatann.waitables.event_waitable module
- class blatann.waitables.event_waitable.EventWaitable(event)
Bases:
Waitable[Tuple[TSender,TEvent]]Waitable implementation which waits on an
Event.- wait(timeout=None, exception_on_timeout=True)
Waits for the asynchronous operation to complete
Warning
If this call times out, it cannot be (successfully) called again as it will clean up all event handlers for the waitable. This is done to remove lingering references to the waitable object through event subscriptions
- async as_async(timeout=None, exception_on_timeout=True, loop=None)
Waits for the asynchronous operation to complete that can be ``await``ed in async methods.
Warning
This method is experimental!
- Parameters:
timeout (
Optional[float]) – How long to wait, orNoneto wait indefinitelyexception_on_timeout – Flag to either throw an exception on timeout, or instead return
Noneobject(s)loop (
Optional[AbstractEventLoop]) – Optional asyncio event loop to use instead of the default one returned byasyncio.get_event_loop()
- Return type:
- Returns:
The result of the asynchronous operation
- Raises:
TimeoutError
- then(callback)
Registers a function callback that will be called when the asynchronous operation completes
Note
Only a single callback is supported– subsequent calls to this method will overwrite previous callbacks
- class blatann.waitables.event_waitable.IdBasedEventWaitable(event, event_id)
Bases:
EventWaitableExtension of
EventWaitablefor high-churn events which require IDs to ensure the correct operation is waited upon, such as characteristic read, write and notify operations