diff options
author | Tom Rondeau <trondeau@vt.edu> | 2012-10-02 13:01:54 -0400 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2012-10-02 13:12:11 -0400 |
commit | 0ecb4d407b888b8631afa5a7c0b8c4f45e6c16c2 (patch) | |
tree | e3fb8937c4d30581f0a1da165cbadff09ebcccba /gnuradio-core/src | |
parent | faa90c6d14561f17877296879db32fd374a4a6a8 (diff) |
core: bit of rework on setting/getting max_output_buffer.
When setting, specify port first, than buffer size. This is consistent with other calls (like consume and produce).
When getting, throw an error if port is out of range.
Diffstat (limited to 'gnuradio-core/src')
-rw-r--r-- | gnuradio-core/src/lib/runtime/gr_basic_block.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/gnuradio-core/src/lib/runtime/gr_basic_block.h b/gnuradio-core/src/lib/runtime/gr_basic_block.h index 4d16014ddd..37a09cd41d 100644 --- a/gnuradio-core/src/lib/runtime/gr_basic_block.h +++ b/gnuradio-core/src/lib/runtime/gr_basic_block.h @@ -108,20 +108,28 @@ public: gr_io_signature_sptr input_signature() const { return d_input_signature; } gr_io_signature_sptr output_signature() const { return d_output_signature; } gr_basic_block_sptr to_basic_block(); // Needed for Python type coercion - long max_output_buffer(size_t i){ return d_max_output_buffer.size()>i?d_max_output_buffer[i]:d_max_output_buffer[0]; } + long max_output_buffer(size_t i) { + if(d_max_output_buffer.size() <= i) + throw std::invalid_argument("gr_basic_block::max_output_buffer: port out of range."); + return d_max_output_buffer[i]; + } void set_max_output_buffer(long max_output_buffer){ for(int i=0; i<output_signature()->max_streams(); i++){ set_max_output_buffer(max_output_buffer, i); } } - void set_max_output_buffer(long max_output_buffer, int port){ d_max_output_buffer[port] = max_output_buffer; } - long min_output_buffer(size_t i){ return d_min_output_buffer.size()>i?d_min_output_buffer[i]:d_min_output_buffer[0]; } + void set_max_output_buffer(int port, long max_output_buffer){ d_max_output_buffer[port] = max_output_buffer; } + long min_output_buffer(size_t i) { + if(d_min_output_buffer.size() <= i) + throw std::invalid_argument("gr_basic_block::min_output_buffer: port out of range."); + return d_min_output_buffer[i]; + } void set_min_output_buffer(long min_output_buffer){ for(int i=0; i<output_signature()->max_streams(); i++){ set_min_output_buffer(min_output_buffer, i); } } - void set_min_output_buffer(long min_output_buffer, int port){ d_min_output_buffer[port] = min_output_buffer; } + void set_min_output_buffer(int port, long min_output_buffer){ d_min_output_buffer[port] = min_output_buffer; } /*! * \brief Confirm that ninputs and noutputs is an acceptable combination. |