commit-gnuradio
[Top][All Lists]
Advanced

[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:





reply via email to

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