summaryrefslogtreecommitdiff
path: root/grc/python
diff options
context:
space:
mode:
authorJosh Blum2009-08-14 23:23:53 -0700
committerJosh Blum2009-08-14 23:23:53 -0700
commitde213686dfa9608bcf59e2c14a4e326049e9779e (patch)
tree69cd4e5858d7bb246b8335792764bfd89b1d1f55 /grc/python
parent0a73facce3ce4eba23676df5f22f222df319ed87 (diff)
downloadgnuradio-de213686dfa9608bcf59e2c14a4e326049e9779e.tar.gz
gnuradio-de213686dfa9608bcf59e2c14a4e326049e9779e.tar.bz2
gnuradio-de213686dfa9608bcf59e2c14a4e326049e9779e.zip
params, sources, and sinks now stored internally as lists. The keys for said objects are now only stored in one place (in the object).
Diffstat (limited to 'grc/python')
-rw-r--r--grc/python/Block.py20
-rw-r--r--grc/python/Port.py6
2 files changed, 11 insertions, 15 deletions
diff --git a/grc/python/Block.py b/grc/python/Block.py
index 6693f6f86..e2c812d5a 100644
--- a/grc/python/Block.py
+++ b/grc/python/Block.py
@@ -66,18 +66,18 @@ class Block(_Block):
except AssertionError: self.add_error_message('Check "%s" failed.'%check)
except: self.add_error_message('Check "%s" did not evaluate.'%check)
#adjust nports
- for ports, Port in (
- (self._sources, self.get_parent().get_parent().Source),
- (self._sinks, self.get_parent().get_parent().Sink),
+ for get_ports, get_port, Port in (
+ (self.get_sources, self.get_source, self.get_parent().get_parent().Source),
+ (self.get_sinks, self.get_sink, self.get_parent().get_parent().Sink),
):
#TODO #FIXME we want to filter out msg ports and run the regular code below this line
- if any([port.get_type() == 'msg' for port in ports.values()]): continue
+ if any([port.get_type() == 'msg' for port in get_ports()]): continue
#how many ports?
- num_ports = len(ports)
+ num_ports = len(get_ports())
#do nothing for 0 ports
if not num_ports: continue
#get the nports setting
- port0 = ports[str(0)]
+ port0 = get_port(str(0))
nports = port0.get_nports()
#do nothing for no nports
if not nports: continue
@@ -87,11 +87,12 @@ class Block(_Block):
if nports < num_ports:
#remove the connections
for key in map(str, range(nports, num_ports)):
- port = ports[key]
+ port = get_port(key)
for connection in port.get_connections():
self.get_parent().remove_element(connection)
#remove the ports
- for key in map(str, range(nports, num_ports)): ports.pop(key)
+ for key in map(str, range(nports, num_ports)):
+ get_ports().remove(get_port(key))
continue
#add more ports
if nports > num_ports:
@@ -99,7 +100,8 @@ class Block(_Block):
n = port0._n
n['key'] = key
port = Port(self, n)
- ports[key] = port
+ #FIXME should use insert w/index not append
+ get_ports().append(port)
continue
def port_controller_modify(self, direction):
diff --git a/grc/python/Port.py b/grc/python/Port.py
index 14adc0618..0b6d20bbe 100644
--- a/grc/python/Port.py
+++ b/grc/python/Port.py
@@ -111,9 +111,6 @@ class Source(Port):
block._source_count = block._source_count + 1
Port.__init__(self, block, n)
- def __del__(self):
- self.get_parent()._source_count = self.get_parent()._source_count - 1
-
class Sink(Port):
def __init__(self, block, n):
@@ -124,8 +121,5 @@ class Sink(Port):
block._sink_count = block._sink_count + 1
Port.__init__(self, block, n)
- def __del__(self):
- self.get_parent()._sink_count = self.get_parent()._sink_count - 1
-
#TODO check that nports and vlen is undefined when type is message
#TODO only allow up to one port of type msg