[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r3870 - gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime,
jcorgan <=