def attach_receiver(self, link, connection): key = (connection.container_id, link.name) if key in self.targets: target = self.targets[key] for tag, local in target.resuming(): link.resume(tag, local) target.resume(link.remote_unsettled()) link.source = link.remote_source # XXX: should actually set this to reflect the real target and # possibly update the real target link.target = link.remote_target return True else: n = self.resolve(link.remote_target) if n is None: return False else: target = n.target() local_target = target.configure(link.remote_target) self.targets[key] = target if target.capacity(): link.flow(20) link.source = link.remote_source link.target = local_target return True
def attach_sender(self, link, connection): key = (connection.container_id, link.name) if key in self.sources: source = self.sources[key] for tag, local in source.resuming(): link.resume(tag, local) source.resume(link.remote_unsettled()) # XXX: should actually set this to reflect the real source and # possibly update the real source link.source = link.remote_source link.target = link.remote_target return True else: n = self.resolve(link.remote_source) if n is None: return False else: source = n.source() local_source = source.configure(link.remote_source) self.sources[key] = source link.source = local_source link.target = link.remote_target return True