commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r5162 - in gnuradio/branches/developers/jcorgan/hb/gnu


From: jcorgan
Subject: [Commit-gnuradio] r5162 - in gnuradio/branches/developers/jcorgan/hb/gnuradio-core/src: lib/runtime python/gnuradio/gr
Date: Fri, 27 Apr 2007 16:11:51 -0600 (MDT)

Author: jcorgan
Date: 2007-04-27 16:11:50 -0600 (Fri, 27 Apr 2007)
New Revision: 5162

Modified:
   
gnuradio/branches/developers/jcorgan/hb/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
   
gnuradio/branches/developers/jcorgan/hb/gnuradio-core/src/python/gnuradio/gr/qa_hier_block2.py
Log:
Work in progress, passes QA.

Modified: 
gnuradio/branches/developers/jcorgan/hb/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
===================================================================
--- 
gnuradio/branches/developers/jcorgan/hb/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
      2007-04-27 21:02:53 UTC (rev 5161)
+++ 
gnuradio/branches/developers/jcorgan/hb/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
      2007-04-27 22:11:50 UTC (rev 5162)
@@ -51,21 +51,23 @@
   if (src.get() == dst.get())
     throw std::invalid_argument("src and destination blocks cannot be the 
same");
 
+  // Assignments to block inputs or outputs
   int max_port;
-  max_port = src->output_signature()->max_streams();
-  if ((max_port != -1 && (src_port >= max_port)) || src_port < 0)
-    throw std::invalid_argument("source port out of range");
+  if (src.get() == d_owner) {
+    max_port = src->input_signature()->max_streams();
+    if ((max_port != -1 && (src_port >= max_port)) || src_port < 0)
+      throw std::invalid_argument("source port out of range");
+    return assign_input(src_port, dst_port, dst);
+  }
 
-  max_port = dst->input_signature()->max_streams();
-  if ((max_port != -1 && (dst_port >= max_port)) || dst_port < 0)
-    throw std::invalid_argument("destination port out of range");
+  if (dst.get() == d_owner) {
+    max_port = dst->output_signature()->max_streams();
+    if ((max_port != -1 && (dst_port >= max_port)) || dst_port < 0)
+      throw std::invalid_argument("source port out of range");
+    return assign_output(dst_port, src_port, src);
+  }
 
-  if (src.get() == d_owner)
-    return assign_output(src_port, dst_port, dst);
-
-  if (dst.get() == d_owner)
-    return assign_input(dst_port, src_port, src);
-
+  // Internal connections
   d_fg->connect(src, src_port, dst, dst_port);
 
   // TODO: connects to NC
@@ -108,12 +110,12 @@
 gr_hier_block2_detail::resolve_port(int port, bool is_input)
 {
   if (is_input) {
-    if (port < 0 || port >= d_inputs.size())
+    if (port < 0 || port >= (signed)d_inputs.size())
       throw std::runtime_error("input port number out of range");
     return resolve_endpoint(d_inputs[port], true);
   }
   else {
-    if (port < 0 || port >= d_outputs.size())
+    if (port < 0 || port >= (signed)d_outputs.size())
       throw std::runtime_error("output port number out of range");
     return resolve_endpoint(d_outputs[port], false);
   }

Modified: 
gnuradio/branches/developers/jcorgan/hb/gnuradio-core/src/python/gnuradio/gr/qa_hier_block2.py
===================================================================
--- 
gnuradio/branches/developers/jcorgan/hb/gnuradio-core/src/python/gnuradio/gr/qa_hier_block2.py
      2007-04-27 21:02:53 UTC (rev 5161)
+++ 
gnuradio/branches/developers/jcorgan/hb/gnuradio-core/src/python/gnuradio/gr/qa_hier_block2.py
      2007-04-27 22:11:50 UTC (rev 5162)
@@ -83,16 +83,18 @@
                                gr.io_signature(1,1,gr.sizeof_int), 
                                gr.io_signature(1,1,gr.sizeof_int))
        nop1 = gr.nop(gr.sizeof_int)
+       nop2 = gr.nop(gr.sizeof_int)
        self.assertRaises(ValueError, 
-           lambda: hblock.connect(hblock, (nop1, -1)))
+           lambda: hblock.connect(nop1, (nop2, -1)))
 
     def test_007_connect_invalid_dst_port_exceeds(self):
        hblock = gr.hier_block2("test_block", 
                                gr.io_signature(1,1,gr.sizeof_int), 
                                gr.io_signature(1,1,gr.sizeof_int))
        nop1 = gr.null_sink(gr.sizeof_int)
+       nop2 = gr.null_sink(gr.sizeof_int)
        self.assertRaises(ValueError, 
-           lambda: hblock.connect(hblock, (nop1, 1)))
+           lambda: hblock.connect(nop1, (nop2, 1)))
 
     def test_008_connect_dst_port_in_use(self):
        hblock = gr.hier_block2("test_block", 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]