Tengo una clase python que encapsula el browsing de servicios
zeroconf/avahi; funciona bastante bien: basta crearla y emitira signals
para cada servicio encontrado/desaparecido; ademas mantiene un listado
interno de los servicios encontrados.
Ahora quiero que esta clase se comporte como una secuencia, de manera de
poder iterar o saber el # de servicios disponibles segun el browser.
Entonces, lo natural pense en multiheredar la clase, pero tengo el
siguiente error:
class AvahiBrowser(gobject.GObject, list):
TypeError: Error when calling the metaclass bases
multiple bases have instance lay-out conflict
Estuve buscando, pero no encontre algo facil de saltarme este problema
(Metaclases y no se que, muy complejo y no me tinca).
Alguien tiene alguna sugerencia o alternativa elegante? Basicamente
quiero recibir notificaciones de cuando aparece/desaparece un servicio Y
usarlo como lista, osea:
ab = AvahiBrowser()
ab.browse()
ab.connect('found', metodo)
print "%d servicios encontrados:" % len(ab)
for service in ab:
print "\t", service
Gracias!
PS: adjunto el codigo si desean ver, para que funcione el demo
intercambiar las lineas 83,84.
--
Aldrin Martoq <amartoq dcc uchile cl>
http://aldrinvideopodcast.podshow.com/
Attachment:
problema-multiherencia.tar.gz
Description: application/compressed-tar
Attachment:
signature.asc
Description: This is a digitally signed message part