#!/usr/bin/env python import Pyro.core from Pyro.EventService.Clients import Publisher from sndcs_client.gtk.EventSubscriber import EventSubscriber from time import sleep from sndcs.Config import config class Pong(object): def __init__(self): self.x = 0 self.namespace = config.get("pyro", "namespace", "sndcs") self.callbacks = { self.namespace + "_pong": [self.displayData] } self.event_subscriber = EventSubscriber(self.callbacks, self.namespace) self.event_subscriber.start() self.publisher = Publisher() def displayData(self,event): self.x += 1 print print "Client IP: ",event.msg["ip_address"] print "Terminal Id: ",event.msg["terminal_id"] print "Version: ",event.msg["version"] def publish(self): self.publisher.publish(self.namespace + "_ping", {} ) pong = Pong() pong.publish() print "Waiting 10 seconds for replies..." sleep(10) print print "Total Hosts: ",pong.x