summaryrefslogtreecommitdiff
path: root/gnuradio-core
diff options
context:
space:
mode:
authorTom Rondeau2012-10-02 13:01:54 -0400
committerTom Rondeau2012-10-02 13:12:11 -0400
commit0ecb4d407b888b8631afa5a7c0b8c4f45e6c16c2 (patch)
treee3fb8937c4d30581f0a1da165cbadff09ebcccba /gnuradio-core
parentfaa90c6d14561f17877296879db32fd374a4a6a8 (diff)
downloadgnuradio-0ecb4d407b888b8631afa5a7c0b8c4f45e6c16c2.tar.gz
gnuradio-0ecb4d407b888b8631afa5a7c0b8c4f45e6c16c2.tar.bz2
gnuradio-0ecb4d407b888b8631afa5a7c0b8c4f45e6c16c2.zip
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')
-rw-r--r--gnuradio-core/src/lib/runtime/gr_basic_block.h16
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 4d16014dd..37a09cd41 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.