Imported Upstream version 3.2.2
[debian/gnuradio] / gnuradio-core / src / lib / runtime / gr_block.cc
index 8b705a3523ad55f9906ffd899df2f0c44e4f9ad5..b8b1bd9c73ac9db1c5449f8e6792039d11337e21 100644 (file)
 #include <gr_block.h>
 #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;
-}
+#include <iostream>
 
 gr_block::gr_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),
+  : 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
@@ -64,17 +51,11 @@ gr_block::forecast (int noutput_items, gr_vector_int &ninput_items_required)
 {
   unsigned ninputs = ninput_items_required.size ();
   for (unsigned i = 0; i < ninputs; i++)
-    ninput_items_required[i] = noutput_items;
+    ninput_items_required[i] = noutput_items + history() - 1;
 }
 
 // default implementation
 
-bool
-gr_block::check_topology (int ninputs, int noutputs)
-{
-  return true;
-}
-
 bool
 gr_block::start()
 {
@@ -129,3 +110,11 @@ gr_block::fixed_rate_noutput_to_ninput(int noutput)
 {
   throw std::runtime_error("Unimplemented");
 }
+
+std::ostream&
+operator << (std::ostream& os, const gr_block *m)
+{
+  os << "<gr_block " << m->name() << " (" << m->unique_id() << ")>";
+  return os;
+}
+