Esempio n. 1
0
 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
Esempio n. 2
0
 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