summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib/general
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-core/src/lib/general')
-rw-r--r--gnuradio-core/src/lib/general/gr_head.cc6
-rw-r--r--gnuradio-core/src/lib/general/gr_head.h11
-rw-r--r--gnuradio-core/src/lib/general/gr_head.i14
3 files changed, 19 insertions, 12 deletions
diff --git a/gnuradio-core/src/lib/general/gr_head.cc b/gnuradio-core/src/lib/general/gr_head.cc
index 94a00cc68..01035ffcd 100644
--- a/gnuradio-core/src/lib/general/gr_head.cc
+++ b/gnuradio-core/src/lib/general/gr_head.cc
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2004 Free Software Foundation, Inc.
+ * Copyright 2004,2009 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -35,10 +35,10 @@ gr_head::gr_head (size_t sizeof_stream_item, int nitems)
{
}
-gr_block_sptr
+gr_head_sptr
gr_make_head (size_t sizeof_stream_item, int nitems)
{
- return gr_block_sptr (new gr_head (sizeof_stream_item, nitems));
+ return gnuradio::get_initial_sptr(new gr_head (sizeof_stream_item, nitems));
}
int
diff --git a/gnuradio-core/src/lib/general/gr_head.h b/gnuradio-core/src/lib/general/gr_head.h
index cd97d6399..430d5f8b9 100644
--- a/gnuradio-core/src/lib/general/gr_head.h
+++ b/gnuradio-core/src/lib/general/gr_head.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2004 Free Software Foundation, Inc.
+ * Copyright 2004,2009 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -26,6 +26,9 @@
#include <gr_sync_block.h>
#include <stddef.h> // size_t
+class gr_head;
+typedef boost::shared_ptr<gr_head> gr_head_sptr;
+
/*!
* \brief copies the first N items to the output then signals done
* \ingroup slicedice_blk
@@ -35,7 +38,7 @@
class gr_head : public gr_sync_block
{
- friend gr_block_sptr gr_make_head (size_t sizeof_stream_item, int nitems);
+ friend gr_head_sptr gr_make_head (size_t sizeof_stream_item, int nitems);
gr_head (size_t sizeof_stream_item, int nitems);
int d_nitems;
@@ -45,9 +48,11 @@ class gr_head : public gr_sync_block
int work (int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
+
+ void reset() { d_ncopied_items = 0; }
};
-gr_block_sptr
+gr_head_sptr
gr_make_head (size_t sizeof_stream_item, int nitems);
diff --git a/gnuradio-core/src/lib/general/gr_head.i b/gnuradio-core/src/lib/general/gr_head.i
index 324bb08ec..2a88b885f 100644
--- a/gnuradio-core/src/lib/general/gr_head.i
+++ b/gnuradio-core/src/lib/general/gr_head.i
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2004 Free Software Foundation, Inc.
+ * Copyright 2004,2009 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -20,11 +20,13 @@
* Boston, MA 02110-1301, USA.
*/
-%ignore gr_head;
+GR_SWIG_BLOCK_MAGIC(gr,head);
+
+gr_head_sptr gr_make_head(size_t sizeof_stream_item, int nitems);
+
class gr_head : public gr_block {
- friend gr_block_sptr gr_make_head (size_t sizeof_stream_item, int nitems);
- gr_head (size_t sizeof_stream_item, int nitems);
+ gr_head();
+public:
+ void reset();
};
-%rename(head) gr_make_head;
-gr_block_sptr gr_make_head (size_t sizeof_stream_item, int nitems);