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 | |
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.
-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. |