def _port_event(self, port_name, event): def get_port_obj(port_name): for p_obj in self._obj.get_ports(): prof = p_obj.get_port_profile() if prof.name == port_name: return p_obj raise ValueError(port_name) with self._mutex: if self._ports: if event == self.PORT_ADD: # New port p_obj = get_port_obj(port_name) self._ports.append(ports.parse_port(p_obj, self)) elif event == self.PORT_REMOVE: # Port removed p = self.get_port_by_name(port_name) self._ports.remove(p) elif event == self.PORT_CONNECT: # A port has a new connection p = self.get_port_by_name(port_name) p.reparse_connections() elif event == self.PORT_DISCONNECT: # A port has had a connection removed p = self.get_port_by_name(port_name) p.reparse_connections() # Call callbacks outside the mutex self._call_cb("port_event", (port_name, event))
def ports(self): '''The list of all ports belonging to this component.''' with self._mutex: if not self._ports: self._ports = [ports.parse_port(port, self) \ for port in self._obj.get_ports()] return self._ports
def ports(self): '''The list of all ports belonging to this component.''' with self._mutex: if not self._ports: self._ports = [parse_port(port, self) \ for port in self._obj.get_ports()] return self._ports
def _port_event(self, port_name, event): def get_port_obj(port_name): for p_obj in self._obj.get_ports(): prof = p_obj.get_port_profile() if prof.name == port_name: return p_obj raise ValueError(port_name) with self._mutex: if self._ports: if event == self.PORT_ADD: # New port p_obj = get_port_obj(port_name) self._ports.append(ports.parse_port(p_obj, self)) elif event == self.PORT_REMOVE: # Port removed p = self.get_port_by_name(port_name) self._ports.remove(p) elif event == self.PORT_CONNECT: # A port has a new connection p = self.get_port_by_name(port_name) p.reparse_connections() elif event == self.PORT_DISCONNECT: # A port has had a connection removed p = self.get_port_by_name(port_name) p.reparse_connections() # Call callbacks outside the mutex self._call_cb('port_event', (port_name, event))