diff options
author | erikb <erikb@574bc980-5f2d-0410-acbc-c8f9f0eb14e0> | 2007-10-27 19:15:04 (GMT) |
---|---|---|
committer | erikb <erikb@574bc980-5f2d-0410-acbc-c8f9f0eb14e0> | 2007-10-27 19:15:04 (GMT) |
commit | 247f1a1083e1d72fb9a2e3bb1802d2dd708a8bf8 (patch) | |
tree | 396631ba8d4e7dde87887749665b01139d3e4eb7 /recordtube.py | |
parent | 74413c2230fb9a991bcb0593fa26f10e33acb00b (diff) |
mesh exceptions more robust
git-svn-id: http://mediamods.com/public-svn/camera-activity/Record.activity@756 574bc980-5f2d-0410-acbc-c8f9f0eb14e0
Diffstat (limited to 'recordtube.py')
-rw-r--r-- | recordtube.py | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/recordtube.py b/recordtube.py index 701c6e0..0bb1cf6 100644 --- a/recordtube.py +++ b/recordtube.py @@ -17,20 +17,22 @@ class RecordTube(ExportedGObject): 'recd-request': (gobject.SIGNAL_RUN_FIRST, None, [object,object]), 'new-recd': + (gobject.SIGNAL_RUN_FIRST, None, [object,object]), + 'recd-unavailable': (gobject.SIGNAL_RUN_FIRST, None, [object,object]) } - def __init__(self, tube, get_buddy, myHashKey, logger): + def __init__(self, tube, myHashKey, logger): super(RecordTube, self).__init__(tube, PATH) self.tube = tube - self._get_buddy = get_buddy # Converts handle to Buddy object self.myHashKey = myHashKey self._logger = logger self.idNotify = self.tube.add_signal_receiver(self._newRecdTubeCb, 'notifyBudsOfNewRecd', IFACE, path=PATH, sender_keyword='sender') self.idRequest = self.tube.add_signal_receiver(self._reqRecdTubeCb, 'requestRecdBits', IFACE, path=PATH, sender_keyword='sender') self.idBroadcast = self.tube.add_signal_receiver(self._getRecdTubeCb, 'broadcastRecdBits', IFACE, path=PATH, sender_keyword='sender', byte_arrays=True) + self.idUnavailable = self.tube.add_signal_receiver(self._unavailableRecdTubeCb, 'unavailableRecd', IFACE, path=PATH, sender_keyword='sender') @signal(dbus_interface=IFACE, signature='ss') #dual s for 2x strings @@ -97,8 +99,28 @@ class RecordTube(ExportedGObject): return if (fromWho == self.myHashKey): self._logger.debug('_getRecdTubeCb: i dont want bits from meself, thx anyway. schizophrenic?') + return if (sentTo != self.myHashKey): self._logger.debug('_getRecdTubeCb: ive overhead someone sending bits, but not to me!') return - self.emit( "recd-bits-arrived", md5, part, numparts, bytes, fromWho )
\ No newline at end of file + self.emit( "recd-bits-arrived", md5, part, numparts, bytes, fromWho ) + + + @signal(dbus_interface=IFACE, signature='ss') #dual s for 2x strings + def unavailableRecd(self, md5sumOfIt, whoDoesntHaveIt, whoAskedForIt): + self._logger.debug('unavailableRecd: id love to share this photo, but i am without a copy meself chum') + + + def _unavailableRecdTubeCb( self, md5sumOfIt, whoDoesntHaveIt, whoAskedForIt): + if sender == self.tube.get_unique_name(): + self._logger.debug("_unavailableRecdTubeCb: sender is my bus name, so ignore my own signal") + return + if (whoDoesntHaveIt == self.myHashKey): + self._logger.debug('_unavailableRecdTubeCb: yes, i know i dont have it, i just told you/me/us.') + return + if (whoAskedForIt != self.myHashKey): + self._logger.debug('_unavailableRecdTubeCb: ive overheard someone doesnt have a photo, but i didnt ask for that one anyways') + return + + self.emit("recd-unavailable", md5sumOfIt, whoDoesntHaveIt)
\ No newline at end of file |