예제 #1
0
    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))
예제 #2
0
 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
예제 #3
0
 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
예제 #4
0
    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))