[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r6355 - in gnuradio/branches/developers/jcorgan/t162/g
From: |
jcorgan |
Subject: |
[Commit-gnuradio] r6355 - in gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src: lib/runtime python/gnuradio/gr |
Date: |
Fri, 7 Sep 2007 15:01:06 -0600 (MDT) |
Author: jcorgan
Date: 2007-09-07 15:01:06 -0600 (Fri, 07 Sep 2007)
New Revision: 6355
Modified:
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2.h
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2.i
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.h
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/python/gnuradio/gr/hier_block2.py
Log:
Start of single block 'connect' method.
Modified:
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
===================================================================
---
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
2007-09-07 20:14:24 UTC (rev 6354)
+++
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
2007-09-07 21:01:06 UTC (rev 6355)
@@ -52,6 +52,12 @@
}
void
+gr_hier_block2::connect(gr_basic_block_sptr block)
+{
+ d_detail->connect(block);
+}
+
+void
gr_hier_block2::connect(gr_basic_block_sptr src, int src_port,
gr_basic_block_sptr dst, int dst_port)
{
Modified:
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2.h
===================================================================
---
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2.h
2007-09-07 20:14:24 UTC (rev 6354)
+++
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2.h
2007-09-07 21:01:06 UTC (rev 6355)
@@ -58,6 +58,8 @@
public:
virtual ~gr_hier_block2();
+ void connect(gr_basic_block_sptr src);
+
void connect(gr_basic_block_sptr src, int src_port,
gr_basic_block_sptr dst, int dst_port);
Modified:
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2.i
===================================================================
---
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2.i
2007-09-07 20:14:24 UTC (rev 6354)
+++
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2.i
2007-09-07 21:01:06 UTC (rev 6355)
@@ -43,7 +43,8 @@
public:
~gr_hier_block2 ();
- // Add a named block to the container
+ void connect(gr_basic_block_sptr block)
+ throw (std::invalid_argument);
void connect(gr_basic_block_sptr src, int src_port,
gr_basic_block_sptr dst, int dst_port)
throw (std::invalid_argument);
Modified:
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
===================================================================
---
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
2007-09-07 20:14:24 UTC (rev 6354)
+++
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
2007-09-07 21:01:06 UTC (rev 6355)
@@ -44,6 +44,27 @@
d_owner = 0; // Don't use delete, we didn't allocate
}
+void
+gr_hier_block2_detail::connect(gr_basic_block_sptr block)
+{
+ std::stringstream msg;
+
+ // Check if duplicate
+ if (std::find(d_blocks.begin(), d_blocks.end(), block) != d_blocks.end()) {
+ msg << "Block " << block << " already connected.";
+ throw std::invalid_argument(msg.str());
+ }
+
+ // Check if has inputs or outputs
+ if (block->input_signature()->max_streams() != 0 ||
+ block->output_signature()->max_streams() != 0) {
+ msg << "Block " << block << " must not have any input or output ports";
+ throw std::invalid_argument(msg.str());
+ }
+
+ d_blocks.push_back(block);
+}
+
void
gr_hier_block2_detail::connect(gr_basic_block_sptr src, int src_port,
gr_basic_block_sptr dst, int dst_port)
Modified:
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.h
===================================================================
---
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.h
2007-09-07 20:14:24 UTC (rev 6354)
+++
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.h
2007-09-07 21:01:06 UTC (rev 6355)
@@ -40,8 +40,10 @@
gr_flowgraph_sptr d_fg;
gr_endpoint_vector_t d_inputs;
gr_endpoint_vector_t d_outputs;
-
+ gr_basic_block_vector_t d_blocks;
+
// Private implementation methods
+ void connect(gr_basic_block_sptr block);
void connect(gr_basic_block_sptr src, int src_port,
gr_basic_block_sptr dst, int dst_port);
void disconnect(gr_basic_block_sptr, int src_port,
Modified:
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/python/gnuradio/gr/hier_block2.py
===================================================================
---
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/python/gnuradio/gr/hier_block2.py
2007-09-07 20:14:24 UTC (rev 6354)
+++
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/python/gnuradio/gr/hier_block2.py
2007-09-07 21:01:06 UTC (rev 6355)
@@ -40,10 +40,14 @@
'''connect requires two or more arguments that can be coerced to
endpoints.
If more than two arguments are provided, they are connected together
successively.
'''
- if len (points) < 2:
- raise ValueError, ("connect requires at least two endpoints; %d
provided." % (len (points),))
- for i in range (1, len (points)):
- self._connect(points[i-1], points[i])
+ if len (points) < 1:
+ raise ValueError, ("connect requires at least one endpoint; %d
provided." % (len (points),))
+ else:
+ if len(points) == 1:
+ self._hb.connect(points[0].basic_block())
+ else:
+ for i in range (1, len (points)):
+ self._connect(points[i-1], points[i])
def _connect(self, src, dst):
(src_block, src_port) = self._coerce_endpoint(src)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r6355 - in gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src: lib/runtime python/gnuradio/gr,
jcorgan <=