commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r3870 - gnuradio/branches/developers/jcorgan/hier/gnur


From: jcorgan
Subject: [Commit-gnuradio] r3870 - gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime
Date: Thu, 26 Oct 2006 19:47:44 -0600 (MDT)

Author: jcorgan
Date: 2006-10-26 19:47:44 -0600 (Thu, 26 Oct 2006)
New Revision: 3870

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_basic_block.i
   
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.h
   
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_block.i
Log:
Work in progress.  Finished migrating portions of gr_block 
into gr_basic_block.  Passes 'make check' for whole tree.


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-10-27 00:30:19 UTC (rev 3869)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_basic_block.cc
   2006-10-27 01:47:44 UTC (rev 3870)
@@ -27,15 +27,26 @@
 #include <gr_basic_block.h>
 #include <stdexcept>
 
+static long s_next_id = 0;
+static long s_ncurrently_allocated = 0;
+
+long gr_basic_block_ncurrently_allocated()
+{
+    return s_ncurrently_allocated;
+}
+
 gr_basic_block::gr_basic_block(const std::string name,
                                gr_io_signature_sptr input_signature,
                                gr_io_signature_sptr output_signature) 
   : d_name(name),
     d_input_signature(input_signature),
-    d_output_signature(output_signature)
+    d_output_signature(output_signature),
+    d_unique_id(s_next_id++)
 {
+    s_ncurrently_allocated++;
 }
   
 gr_basic_block::~gr_basic_block()
 {
+    s_ncurrently_allocated--;
 }

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-10-27 00:30:19 UTC (rev 3869)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_basic_block.h
    2006-10-27 01:47:44 UTC (rev 3870)
@@ -26,23 +26,48 @@
 #include <gr_runtime.h>
 #include <string>
 
+/*!
+ * \brief The abstract base class for all signal processing blocks.
+ * \ingroup block
+ *
+ * Basic blocks are the bare abstraction of an entity that has a name
+ * and a set of inputs and outputs.  These are never instantiated
+ * directly; rather, this is the abstract parent class of both gr_hier_block,
+ * which is a recursive container, and gr_block, which implements actual
+ * signal processing functions.
+ */
+
 class gr_basic_block
 {
 private:
     std::string                 d_name;
     gr_io_signature_sptr d_input_signature;
     gr_io_signature_sptr d_output_signature;
+    long                d_unique_id;
         
 protected:
     gr_basic_block(const std::string name,
                    gr_io_signature_sptr input_signature,
                    gr_io_signature_sptr output_signature);
 
+    //! may only be called during constructor
+    void set_input_signature(gr_io_signature_sptr iosig) {
+        d_input_signature = iosig;
+    }
+
+    //! may only be called during constructor
+    void set_output_signature(gr_io_signature_sptr iosig) {
+        d_output_signature = iosig;
+    }
+
 public:
     virtual ~gr_basic_block();
+    long unique_id() const { return d_unique_id; }
     std::string name() const { return d_name; }
     gr_io_signature_sptr input_signature() const  { return d_input_signature; }
     gr_io_signature_sptr output_signature() const { return d_output_signature; 
}
 };
 
+long gr_basic_block_ncurrently_allocated();
+
 #endif /* INCLUDED_GR_BASIC_BLOCK_H */

Modified: 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_basic_block.i
===================================================================
--- 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_basic_block.i
    2006-10-27 00:30:19 UTC (rev 3869)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_basic_block.i
    2006-10-27 01:47:44 UTC (rev 3870)
@@ -37,10 +37,14 @@
 public:
     virtual ~gr_basic_block();
     std::string name() const;
-    gr_io_signature_sptr input_signature () const;
-    gr_io_signature_sptr output_signature () const;
+    gr_io_signature_sptr input_signature() const;
+    gr_io_signature_sptr output_signature() const;
+    long unique_id() const;
 };
 
+%rename(block_ncurrently_allocated) gr_basic_block_ncurrently_allocated;
+long gr_basic_block_ncurrently_allocated();
+
 %pythoncode %{
 gr_basic_block_sptr.__repr__ = lambda self: "<gr_basic_block %s (%d)>" % 
(self.name(), self.unique_id ())
 gr_basic_block_sptr.block = lambda self: self

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-10-27 00:30:19 UTC (rev 3869)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_block.cc
 2006-10-27 01:47:44 UTC (rev 3870)
@@ -28,31 +28,19 @@
 #include <gr_block_detail.h>
 #include <stdexcept>
 
-static long s_next_id = 0;
-static long s_ncurrently_allocated = 0;
-
-long
-gr_block_ncurrently_allocated ()
-{
-  return s_ncurrently_allocated;
-}
-
 gr_block::gr_block (const std::string &name,
                    gr_io_signature_sptr input_signature,
                    gr_io_signature_sptr output_signature)
   : gr_basic_block(name, input_signature, output_signature),
     d_output_multiple (1),
     d_relative_rate (1.0),
-    d_unique_id (s_next_id++),
     d_history(1),
     d_fixed_rate(false)
 {
-  s_ncurrently_allocated++;
 }
   
 gr_block::~gr_block ()
 {
-  s_ncurrently_allocated--;
 }
 
 // stub implementation:  1:1

Modified: 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_block.h
===================================================================
--- 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_block.h
  2006-10-27 00:30:19 UTC (rev 3869)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_block.h
  2006-10-27 01:47:44 UTC (rev 3870)
@@ -26,9 +26,14 @@
 #include <gr_basic_block.h>
 
 /*!
- * \brief The abstract base class for all signal processing blocks.
+ * \brief The abstract base class for all 'terminal' processing blocks.
  * \ingroup block
  *
+ * A signal processing flow is constructed by creating a tree of 
+ * hierarchical blocks, which at any level may also contain terminal nodes
+ * that actually implement signal processing functions. This is the base
+ * class for all such leaf nodes.
+ 
  * Blocks have a set of input streams and output streams.  The
  * input_signature and output_signature define the number of input
  * streams and output streams respectively, and the type of the data
@@ -53,7 +58,6 @@
  public:
   
   virtual ~gr_block ();
-  long unique_id () const { return d_unique_id; }
 
   /*!
    * Assume block computes y_i = f(x_i, x_i-1, x_i-2, x_i-3...)
@@ -205,7 +209,6 @@
   int                  d_output_multiple;
   double               d_relative_rate;        // approx output_rate / 
input_rate
   gr_block_detail_sptr d_detail;               // implementation details
-  long                 d_unique_id;            // convenient for debugging
   unsigned             d_history;
   bool                 d_fixed_rate;
 
@@ -216,16 +219,6 @@
            gr_io_signature_sptr input_signature,
            gr_io_signature_sptr output_signature);
 
-  //! may only be called during constructor
-  void set_input_signature (gr_io_signature_sptr iosig){
-    d_input_signature = iosig;
-  }
-
-  //! may only be called during constructor
-  void set_output_signature (gr_io_signature_sptr iosig){
-    d_output_signature = iosig;
-  }
-
   void set_fixed_rate(bool fixed_rate){ d_fixed_rate = fixed_rate; }
 
   // These are really only for internal use, but leaving them public avoids
@@ -236,6 +229,4 @@
   void set_detail (gr_block_detail_sptr detail) { d_detail = detail; }
 };
 
-long gr_block_ncurrently_allocated ();
-
 #endif /* INCLUDED_GR_BLOCK_H */

Modified: 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_block.i
===================================================================
--- 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_block.i
  2006-10-27 00:30:19 UTC (rev 3869)
+++ 
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_block.i
  2006-10-27 01:47:44 UTC (rev 3870)
@@ -39,7 +39,6 @@
   
   virtual ~gr_block ();
   
-  long unique_id () const;
   unsigned history () const;
 
   int  output_multiple () const;
@@ -54,9 +53,6 @@
   void set_detail (gr_block_detail_sptr detail) { d_detail = detail; }
 };
 
-%rename(block_ncurrently_allocated) gr_block_ncurrently_allocated;
-long gr_block_ncurrently_allocated ();
-
 %pythoncode %{
 gr_block_sptr.__repr__ = lambda self: "<gr_block %s (%d)>" % (self.name(), 
self.unique_id ())
 gr_block_sptr.block = lambda self: self





reply via email to

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