[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r3972 - gnuradio/branches/developers/jcorgan/hier/gnur
From: |
jcorgan |
Subject: |
[Commit-gnuradio] r3972 - gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime |
Date: |
Sun, 12 Nov 2006 10:15:05 -0700 (MST) |
Author: jcorgan
Date: 2006-11-12 10:15:05 -0700 (Sun, 12 Nov 2006)
New Revision: 3972
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_basic_block.cc
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_basic_block.h
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.cc
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.h
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.
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_basic_block.cc
===================================================================
---
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_basic_block.cc
2006-11-12 05:14:01 UTC (rev 3971)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_basic_block.cc
2006-11-12 17:15:05 UTC (rev 3972)
@@ -40,6 +40,7 @@
gr_io_signature_sptr input_signature,
gr_io_signature_sptr output_signature)
: d_name(name),
+ d_parent(0),
d_input_signature(input_signature),
d_output_signature(output_signature),
d_unique_id(s_next_id++)
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_basic_block.h
===================================================================
---
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_basic_block.h
2006-11-12 05:14:01 UTC (rev 3971)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_basic_block.h
2006-11-12 17:15:05 UTC (rev 3972)
@@ -50,6 +50,7 @@
{
protected:
std::string d_name;
+ gr_basic_block *d_parent; // Temp until shared pointer method
works
gr_io_signature_sptr d_input_signature;
gr_io_signature_sptr d_output_signature;
long d_unique_id;
@@ -77,6 +78,9 @@
gr_io_signature_sptr output_signature() const { return d_output_signature;
}
gr_basic_block_sptr basic_block(); // Needed for Python type coercion
+ void set_parent(gr_basic_block *parent) { d_parent = parent; }
+ gr_basic_block *parent() const { return d_parent; }
+
/*! overridden in gr_hier_block2 to implement tree traversal
* otherwise invoke callback with shared pointer to this object
*/
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-12 05:14:01 UTC (rev 3971)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_block.cc
2006-11-12 17:15:05 UTC (rev 3972)
@@ -117,7 +117,7 @@
gr_block::validate()
{
if (GR_BLOCK_DEBUG)
- std::cout << "gr_block::validate()" << std::endl;
+ std::cout << "gr_block::validate(): parent is " << d_parent <<
std::endl;
// Call my parent, get my assigned inputs and outputs, then call check
topology,
// which may be overridden by descendent classes
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
===================================================================
---
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
2006-11-12 05:14:01 UTC (rev 3971)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.cc
2006-11-12 17:15:05 UTC (rev 3972)
@@ -29,6 +29,8 @@
#include <gr_io_signature.h>
#include <iostream>
+#define GR_HIER_BLOCK2_DEBUG 1
+
gr_hier_block2_sptr gr_make_hier_block2(const std::string &name,
gr_io_signature_sptr input_signature,
gr_io_signature_sptr output_signature)
@@ -53,6 +55,7 @@
gr_hier_block2::define_component(const std::string &name, gr_basic_block_sptr
block)
{
d_impl->define_component(name, block);
+ block->set_parent(this);
}
void
@@ -101,5 +104,19 @@
bool
gr_hier_block2::validate()
{
+ if (GR_HIER_BLOCK2_DEBUG)
+ std::cout << "gr_hier_block2::validate(): parent is " << d_parent <<
std::endl;
+
return d_impl->validate();
}
+
+bool
+gr_hier_block2::visit(gr_tree_visitor &visitor)
+{
+ if (GR_HIER_BLOCK2_DEBUG)
+ std::cout << "gr_hier_block2::visit" << std::endl;
+ if (!visitor(shared_from_this()))
+ return false;
+
+ return d_impl->visit(visitor);
+}
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.h
===================================================================
---
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.h
2006-11-12 05:14:01 UTC (rev 3971)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2.h
2006-11-12 17:15:05 UTC (rev 3972)
@@ -61,6 +61,9 @@
void connect(const std::string &src_name, int src_port,
const std::string &dst_name, int dst_port);
+ // Overrides gr_basic_block, invokes visitor call back on self and all
children
+ virtual bool visit(gr_tree_visitor &visitor);
+
// Overrides gr_basic_block, checks validity of connection/component
databases
virtual bool validate();
};
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-12 05:14:01 UTC (rev 3971)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.cc
2006-11-12 17:15:05 UTC (rev 3972)
@@ -111,9 +111,6 @@
bool
gr_hier_block2_impl::validate()
{
- if (GR_HIER_BLOCK2_IMPL_DEBUG)
- std::cout << "gr_hier_block2_impl::validate()" << std::endl;
-
/* General strategy for validating a hierarchical tree
The runtime will call 'visit' with a visitor function that calls
validate()
@@ -129,3 +126,10 @@
5. Each actually connected (sub)component has between min and max
number of outputs connected
*/
}
+
+bool
+gr_hier_block2_impl::visit(gr_tree_visitor &visitor)
+{
+ // Iterate only through connected children and callback visitor on each
+ return true;
+}
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-12 05:14:01 UTC (rev 3971)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_hier_block2_impl.h
2006-11-12 17:15:05 UTC (rev 3972)
@@ -86,6 +86,7 @@
void check_dst_not_used(const std::string name, int port);
void check_type_match(gr_io_signature_sptr src_sig, int src_port,
gr_io_signature_sptr dst_sig, int dst_port);
+ bool visit(gr_tree_visitor &visitor);
bool validate();
public:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r3972 - gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime,
jcorgan <=