diff options
author | Tim O'Shea <tim.oshea753@gmail.com> | 2014-05-14 19:44:34 -0400 |
---|---|---|
committer | Tim O'Shea <tim.oshea753@gmail.com> | 2014-05-14 19:46:44 -0400 |
commit | 496c74a460bb7fe472f5ee4b8861b65a0f488331 (patch) | |
tree | 4da497328840a900f63f3710c05ff7ec22d31bb2 /gnuradio-runtime/lib | |
parent | 432e3b75300a400e2e99dbe7e9aea58b6b2855b1 (diff) |
pmt: adding pmt.uniform_vector_itemsize(pmt_t vector), returns the size per item in bytes within a uniform vector for any kind of uniform vector
Diffstat (limited to 'gnuradio-runtime/lib')
-rw-r--r-- | gnuradio-runtime/lib/pmt/pmt.cc | 10 | ||||
-rw-r--r-- | gnuradio-runtime/lib/pmt/pmt_int.h | 1 | ||||
-rw-r--r-- | gnuradio-runtime/lib/pmt/unv_template.h.t | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/gnuradio-runtime/lib/pmt/pmt.cc b/gnuradio-runtime/lib/pmt/pmt.cc index 7760c02815..8315100ab3 100644 --- a/gnuradio-runtime/lib/pmt/pmt.cc +++ b/gnuradio-runtime/lib/pmt/pmt.cc @@ -760,6 +760,14 @@ is_uniform_vector(pmt_t x) return x->is_uniform_vector(); } +size_t +uniform_vector_itemsize(pmt_t vector) +{ + if (!vector->is_uniform_vector()) + throw wrong_type("pmt_uniform_vector_itemsize", vector); + return _uniform_vector(vector)->itemsize(); +} + const void * uniform_vector_elements(pmt_t vector, size_t &len) { @@ -776,6 +784,8 @@ uniform_vector_writable_elements(pmt_t vector, size_t &len) return _uniform_vector(vector)->uniform_writable_elements(len); } + + //////////////////////////////////////////////////////////////////////////// // Dictionaries //////////////////////////////////////////////////////////////////////////// diff --git a/gnuradio-runtime/lib/pmt/pmt_int.h b/gnuradio-runtime/lib/pmt/pmt_int.h index aceb7b74d9..ca90c5a475 100644 --- a/gnuradio-runtime/lib/pmt/pmt_int.h +++ b/gnuradio-runtime/lib/pmt/pmt_int.h @@ -238,6 +238,7 @@ public: virtual const void *uniform_elements(size_t &len) = 0; virtual void *uniform_writable_elements(size_t &len) = 0; virtual size_t length() const = 0; + virtual size_t itemsize() const = 0; }; #include "pmt_unv_int.h" diff --git a/gnuradio-runtime/lib/pmt/unv_template.h.t b/gnuradio-runtime/lib/pmt/unv_template.h.t index 83ba0be0f4..93ca684463 100644 --- a/gnuradio-runtime/lib/pmt/unv_template.h.t +++ b/gnuradio-runtime/lib/pmt/unv_template.h.t @@ -14,6 +14,7 @@ public: bool is_@TAG@vector() const { return true; } size_t length() const { return d_v.size(); } + size_t itemsize() const { return sizeof(@TYPE@); } @TYPE@ ref(size_t k) const; void set(size_t k, @TYPE@ x); const @TYPE@ *elements(size_t &len); |