23 #ifndef INCLUDED_GR_BUFFER_H
24 #define INCLUDED_GR_BUFFER_H
28 #include <boost/weak_ptr.hpp>
61 int space_available ();
74 void *write_pointer ();
79 void update_write_pointer (
int nitems);
81 void set_done (
bool done);
82 bool done ()
const {
return d_done; }
89 size_t nreaders()
const {
return d_readers.size(); }
103 void add_item_tag(
const gr_tag_t &tag);
117 void remove_item_tag(
const gr_tag_t &tag,
long id);
127 std::deque<gr_tag_t>::iterator
get_tags_end() {
return d_item_tags.end(); }
142 size_t d_sizeof_item;
143 std::vector<gr_buffer_reader *> d_readers;
144 boost::weak_ptr<gr_block> d_link;
151 unsigned int d_write_index;
154 std::deque<gr_tag_t> d_item_tags;
158 index_add (
unsigned a,
unsigned b)
165 assert (s < d_bufsize);
170 index_sub (
unsigned a,
unsigned b)
177 assert ((
unsigned) s < d_bufsize);
181 virtual bool allocate_buffer (
int nitems,
size_t sizeof_item);
233 int items_available ()
const;
252 const void *read_pointer ();
257 void update_read_pointer (
int nitems);
259 void set_done (
bool done) { d_buffer->set_done (done); }
260 bool done ()
const {
return d_buffer->done (); }
289 void get_tags_in_range(std::vector<gr_tag_t> &v,
304 unsigned int d_read_index;
306 boost::weak_ptr<gr_block> d_link;