Exemple #1
0
    def action_componentclass(self, componentclass, namespace):
        for src, sink in componentclass.portconnections:
            full_src = NamespaceAddress.concat(namespace, src)
            full_sink = NamespaceAddress.concat(namespace, sink)

            # print 'Adding Port:',full_src
            # print 'Adding Port:',full_sink
            self.portconnections.append((full_src, full_sink))
Exemple #2
0
    def action_componentclass(self, componentclass, namespace):
        for src, sink in componentclass.portconnections:
            full_src = NamespaceAddress.concat(namespace, src)
            full_sink = NamespaceAddress.concat(namespace, sink)

            # print 'Adding Port:',full_src
            # print 'Adding Port:',full_sink
            self.portconnections.append((full_src, full_sink))
Exemple #3
0
    def visit_componentclass(self, componentclass,
                             **kwargs):  # @UnusedVariable
        prefix = componentclass.get_node_addr().get_str_prefix()
        if prefix == '_':
            prefix = ''
        prefix_excludes = ['t']
        kwargs = {'prefix': prefix, 'prefix_excludes': prefix_excludes}

        port_connections = []
        for src, sink in componentclass.portconnections:
            # To calculate the new address of the ports, we take of the 'local'
            # port address, i.e. the parent address, then add the prefixed
            # string:
            src_new = NamespaceAddress.concat(
                src.get_parent_addr(),
                NamespaceAddress.concat(
                    componentclass.get_node_addr(),
                    src.get_parent_addr()).get_str_prefix() +
                self.prefix_variable(src.get_local_name()))
            sink_new = NamespaceAddress.concat(
                sink.get_parent_addr(),
                NamespaceAddress.concat(
                    componentclass.get_node_addr(),
                    sink.get_parent_addr()).get_str_prefix() +
                self.prefix_variable(sink.get_local_name()))
            # self.prefix_variable(sink.get_local_name(), **kwargs) )

            # print 'Mapping Ports:', src, '->', src_new, '(%s)' %
            #                  src.get_local_name(), prefix
            # print 'Mapping Ports:', sink, '->', sink_new
            # src_new = NamespaceAddress.concat(
            #                 src.get_parent_addr(), src.getstr() )
            # sink_new = NamespaceAddress.concat(
            #                 sink.get_parent_addr(), sink.getstr() )
            port_connections.append((src_new, sink_new))
        return componentclass.__class__(
            name=componentclass.name,
            parameters=[
                p.accept_visitor(self, **kwargs)
                for p in componentclass.parameters
            ],
            analog_ports=[
                p.accept_visitor(self, **kwargs)
                for p in componentclass.analog_ports
            ],
            event_ports=[
                p.accept_visitor(self, **kwargs)
                for p in componentclass.event_ports
            ],
            dynamicsblock=(componentclass.dynamicsblock.accept_visitor(
                self, **kwargs) if componentclass.dynamicsblock else None),
            subnodes=dict([(k, v.accept_visitor(self, **kwargs))
                           for (k, v) in componentclass.subnodes.iteritems()]),
            portconnections=port_connections)
Exemple #4
0
    def visit_componentclass(self, componentclass, **kwargs):  # @UnusedVariable
        prefix = componentclass.get_node_addr().get_str_prefix()
        if prefix == '_':
            prefix = ''
        prefix_excludes = ['t']
        kwargs = {'prefix': prefix, 'prefix_excludes': prefix_excludes}

        port_connections = []
        for src, sink in componentclass.portconnections:
            # To calculate the new address of the ports, we take of the 'local'
            # port address, i.e. the parent address, then add the prefixed
            # string:
            src_new = NamespaceAddress.concat(
                src.get_parent_addr(),
                NamespaceAddress.concat(
                    componentclass.get_node_addr(),
                    src.get_parent_addr()).get_str_prefix() +
                self.prefix_variable(src.get_local_name()))
            sink_new = NamespaceAddress.concat(
                sink.get_parent_addr(), NamespaceAddress.concat(
                    componentclass.get_node_addr(),
                    sink.get_parent_addr()).get_str_prefix() +
                self.prefix_variable(sink.get_local_name()))
            # self.prefix_variable(sink.get_local_name(), **kwargs) )

            # print 'Mapping Ports:', src, '->', src_new, '(%s)' %
#                  src.get_local_name(), prefix
            # print 'Mapping Ports:', sink, '->', sink_new
            # src_new = NamespaceAddress.concat(
#                 src.get_parent_addr(), src.getstr() )
            # sink_new = NamespaceAddress.concat(
#                 sink.get_parent_addr(), sink.getstr() )
            port_connections.append((src_new, sink_new))
        return componentclass.__class__(
            name=componentclass.name,
            parameters=[p.accept_visitor(self, **kwargs)
                        for p in componentclass.parameters],
            analog_ports=[p.accept_visitor(self, **kwargs)
                          for p in componentclass.analog_ports],
            event_ports=[p.accept_visitor(self, **kwargs)
                         for p in componentclass.event_ports],
            dynamicsblock=(componentclass.dynamicsblock.accept_visitor(self, **kwargs)
                      if componentclass.dynamicsblock else None),
            subnodes=dict([(k, v.accept_visitor(self, **kwargs))
                           for (k, v) in componentclass.subnodes.iteritems()]),
            portconnections=port_connections)
Exemple #5
0
 def _action_port(self, port, namespace):
     port_address = NamespaceAddress.concat(namespace, port.name)
     if port_address in self.ports:
         raise NineMLRuntimeError('Duplicated Name for port found: %s' %
                                  port_address)
     self.ports[port_address] = port
Exemple #6
0
 def _action_port(self, port, namespace):
     port_address = NamespaceAddress.concat(namespace, port.name)
     if port_address in self.ports:
         raise NineMLRuntimeError("Duplicated Name for port found: %s" % port_address)
     self.ports[port_address] = port