Descobrindo novos serviços D-Bus em Python

Enquanto “brincava” mais um pouco (nunca é demais) com Python e DBus num projeto (a ser descrito em breve…), uma biblioteca monitorava certos serviços que poderiam estar rodando ou não. Para monitorar os que já estavam rodando, tudo bem, já os que não estavam rodando eu tinha que esperar eles inicializarem para adicionar os callbacks necessários (nova conexão, etc…), uma vez que ele reclamava “Could not get owner of name …” sempre que tentasse conectar um callback a um serviço sem rodar.

Então, precisei adicionar um callback para o sinal “NameOwnerChanged” do objeto “org.freedesktop.DBus’ usando Bus.add_signal_receiver(). Sempre que um nome no barramento (bus) mudasse de dono, minha função era chamada com 3 argumentos: Nome que mudou de dono, antigo dono e novo dono (Os dois últimos são strings vazias caso não existam).


self._bus.add_signal_receiver(self.NameOwnerChanged,
    'NameOwnerChanged',
    'org.freedesktop.DBus',
    'org.freedesktop.DBus',
    '/org/freedesktop/DBus')

Fonte: D-Bus Tutorial


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s