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);
112 void remove_item_tag(
const gr_tag_t &tag);
122 std::deque<gr_tag_t>::iterator
get_tags_end() {
return d_item_tags.end(); }
137 size_t d_sizeof_item;
138 std::vector<gr_buffer_reader *> d_readers;
139 boost::weak_ptr<gr_block> d_link;
146 unsigned int d_write_index;
149 std::deque<gr_tag_t> d_item_tags;
153 index_add (
unsigned a,
unsigned b)
160 assert (s < d_bufsize);
165 index_sub (
unsigned a,
unsigned b)
172 assert ((
unsigned) s < d_bufsize);
176 virtual bool allocate_buffer (
int nitems,
size_t sizeof_item);
228 int items_available ()
const;
247 const void *read_pointer ();
252 void update_read_pointer (
int nitems);
254 void set_done (
bool done) { d_buffer->set_done (done); }
255 bool done ()
const {
return d_buffer->done (); }
283 void get_tags_in_range(std::vector<gr_tag_t> &v,
297 unsigned int d_read_index;
299 boost::weak_ptr<gr_block> d_link;