Asyncio advanced topics
Signals without data
D-Bus allows signals to not carry any data. Such signals have the
type signature of "". (empty string)
To emit such signals the emit must
be explicitly called with None.
Example of an empty signal:
from asyncio import new_event_loop
from sdbus import DbusInterfaceCommonAsync, dbus_signal_async
class ExampleInterface(
DbusInterfaceCommonAsync,
interface_name="org.example.signal"
):
@dbus_signal_async("")
def name_invalidated(self) -> None:
raise NotImplementedError
test_object = ExampleInterface()
async def emit_empty_signal() -> None:
test_object.export_to_dbus("/")
test_object.name_invalidated.emit(None)
loop = new_event_loop()
loop.run_until_complete(emit_empty_signal())