summaryrefslogtreecommitdiff
path: root/gr-zeromq/lib/sub_source_impl.cc
diff options
context:
space:
mode:
authorTim O'Shea <tim.oshea753@gmail.com>2014-10-27 16:25:16 -0400
committerTim O'Shea <tim.oshea753@gmail.com>2014-10-27 16:25:16 -0400
commit6a3efa633309fff2834321dfbadb343064b0ab50 (patch)
tree3685ba3fd87ea670df6e1dd35f3ccf30d04bbeab /gr-zeromq/lib/sub_source_impl.cc
parentffad094471e749351aa09cbd149d53a7a0e77a61 (diff)
zmq: default to not pass tags (compatible wire format)
Diffstat (limited to 'gr-zeromq/lib/sub_source_impl.cc')
-rw-r--r--gr-zeromq/lib/sub_source_impl.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/gr-zeromq/lib/sub_source_impl.cc b/gr-zeromq/lib/sub_source_impl.cc
index 4cc9c25def..6c9da1bbbe 100644
--- a/gr-zeromq/lib/sub_source_impl.cc
+++ b/gr-zeromq/lib/sub_source_impl.cc
@@ -31,17 +31,17 @@ namespace gr {
namespace zeromq {
sub_source::sptr
- sub_source::make(size_t itemsize, size_t vlen, char *address, int timeout)
+ sub_source::make(size_t itemsize, size_t vlen, char *address, int timeout, bool pass_tags)
{
return gnuradio::get_initial_sptr
(new sub_source_impl(itemsize, vlen, address, timeout));
}
- sub_source_impl::sub_source_impl(size_t itemsize, size_t vlen, char *address, int timeout)
+ sub_source_impl::sub_source_impl(size_t itemsize, size_t vlen, char *address, int timeout, bool pass_tags)
: gr::sync_block("sub_source",
gr::io_signature::make(0, 0, 0),
gr::io_signature::make(1, 1, itemsize * vlen)),
- d_itemsize(itemsize), d_vlen(vlen), d_timeout(timeout)
+ d_itemsize(itemsize), d_vlen(vlen), d_timeout(timeout), d_pass_tags(pass_tags)
{
int major, minor, patch;
zmq::version (&major, &minor, &patch);
@@ -84,6 +84,8 @@ namespace gr {
// Deserialize header data / tags
std::istringstream iss( std::string(static_cast<char*>(msg.data()), msg.size()));
+
+ if(d_pass_tags){
uint64_t rcv_offset;
size_t rcv_ntags;
iss.read( (char*)&rcv_offset, sizeof(uint64_t ) );
@@ -99,6 +101,7 @@ namespace gr {
add_item_tag(0, new_tag_offset, key, val, src);
iss.str(sb.str());
}
+ }
// Pass sample data along
std::vector<char> samp(iss.gcount());