[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r3989 - gnuradio/branches/developers/jcorgan/hier/gnur
From: |
jcorgan |
Subject: |
[Commit-gnuradio] r3989 - gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime |
Date: |
Wed, 15 Nov 2006 15:25:07 -0700 (MST) |
Author: jcorgan
Date: 2006-11-15 15:25:07 -0700 (Wed, 15 Nov 2006)
New Revision: 3989
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_block.cc
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.cc
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.h
Log:
Work in progress. Hierarchical validation appears to be working.
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_block.cc
===================================================================
---
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_block.cc
2006-11-15 22:01:28 UTC (rev 3988)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_block.cc
2006-11-15 22:25:07 UTC (rev 3989)
@@ -28,7 +28,6 @@
#include <gr_block_detail.h>
#include <stdexcept>
#include <iostream>
-#include <gr_hier_block2.h>
#define GR_BLOCK_DEBUG 1
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.cc
===================================================================
---
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.cc
2006-11-15 22:01:28 UTC (rev 3988)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.cc
2006-11-15 22:25:07 UTC (rev 3989)
@@ -173,5 +173,42 @@
void
gr_hier_block2_impl::get_child_topology(gr_basic_block_sptr child, int
&ninputs, int &noutputs)
{
+ std::string name = get_name_by_block(child);
+ if (name == "")
+ throw std::invalid_argument("unknown child passed to parent");
+
+ ninputs = calc_input_connections(name).size();
+ noutputs = calc_output_connections(name).size();
+
+ if (GR_HIER_BLOCK2_IMPL_DEBUG)
+ std::cout << name << " has " << ninputs << " inputs and "
+ << noutputs << " outputs assigned." << std::endl;
+}
+
+gr_connection_vector_t
+gr_hier_block2_impl::calc_input_connections(std::string &name)
+{
+ gr_connection_vector_t result;
+ for (gr_connection_viter_t p = d_connections.begin();
+ p != d_connections.end(); p++) {
+
+ if (p->dst().name() == name)
+ result.push_back(*p);
+ }
+ return result;
}
+
+gr_connection_vector_t
+gr_hier_block2_impl::calc_output_connections(std::string &name)
+{
+ gr_connection_vector_t result;
+ for (gr_connection_viter_t p = d_connections.begin();
+ p != d_connections.end(); p++) {
+
+ if (p->src().name() == name)
+ result.push_back(*p);
+ }
+
+ return result;
+}
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.h
===================================================================
---
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.h
2006-11-15 22:01:28 UTC (rev 3988)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.h
2006-11-15 22:25:07 UTC (rev 3989)
@@ -96,7 +96,9 @@
bool visit(gr_tree_visitor &visitor);
bool validate();
void get_child_topology(gr_basic_block_sptr child, int &ninputs, int
&noutputs);
-
+ gr_connection_vector_t calc_input_connections(std::string &name);
+ gr_connection_vector_t calc_output_connections(std::string &name);
+
public:
~gr_hier_block2_impl();
};
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r3989 - gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime,
jcorgan <=