summaryrefslogtreecommitdiff
path: root/gnuradio-runtime
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-runtime')
-rw-r--r--gnuradio-runtime/include/gnuradio/hier_block2.h18
-rw-r--r--gnuradio-runtime/lib/hier_block2.cc78
-rw-r--r--gnuradio-runtime/lib/hier_block2_detail.cc5
3 files changed, 47 insertions, 54 deletions
diff --git a/gnuradio-runtime/include/gnuradio/hier_block2.h b/gnuradio-runtime/include/gnuradio/hier_block2.h
index 3a74a37d6d..08a5389e96 100644
--- a/gnuradio-runtime/include/gnuradio/hier_block2.h
+++ b/gnuradio-runtime/include/gnuradio/hier_block2.h
@@ -56,7 +56,7 @@ namespace gr {
* \brief Private implementation details of gr::hier_block2
*/
hier_block2_detail *d_detail;
-
+
protected:
hier_block2(void) {} // allows pure virtual interface sub-classes
@@ -174,32 +174,32 @@ namespace gr {
/*!
* \brief Returns max buffer size (itemcount) on output port \p i.
*/
- size_t max_output_buffer(size_t i=0);
+ int max_output_buffer(size_t port=0);
/*!
* \brief Sets max buffer size (itemcount) on all output ports.
*/
- void set_max_output_buffer(size_t max_output_buffer);
+ void set_max_output_buffer(int max_output_buffer);
/*!
* \brief Sets max buffer size (itemcount) on output port \p port.
*/
- void set_max_output_buffer(int port, size_t max_output_buffer);
+ void set_max_output_buffer(size_t port, int max_output_buffer);
/*!
* \brief Returns min buffer size (itemcount) on output port \p i.
*/
- size_t min_output_buffer(size_t i=0);
+ int min_output_buffer(size_t port=0);
/*!
* \brief Sets min buffer size (itemcount) on all output ports.
*/
- void set_min_output_buffer(size_t min_output_buffer);
+ void set_min_output_buffer(int min_output_buffer);
/*!
* \brief Sets min buffer size (itemcount) on output port \p port.
*/
- void set_min_output_buffer(int port, size_t min_output_buffer);
+ void set_min_output_buffer(size_t port, int min_output_buffer);
// This is a public method for ease of code organization, but should be
@@ -265,7 +265,7 @@ namespace gr {
* call could be misleading.
*/
std::vector<int> processor_affinity();
-
+
/*!
* \brief Get if all block min buffers should be set.
*
@@ -273,7 +273,7 @@ namespace gr {
* should be set or just the block ports connected to the hier ports.
*/
bool all_min_output_buffer_p(void);
-
+
/*!
* \brief Get if all block max buffers should be set.
*
diff --git a/gnuradio-runtime/lib/hier_block2.cc b/gnuradio-runtime/lib/hier_block2.cc
index 4d2c460c12..eeb5669da5 100644
--- a/gnuradio-runtime/lib/hier_block2.cc
+++ b/gnuradio-runtime/lib/hier_block2.cc
@@ -182,97 +182,89 @@ namespace gr {
return dot_graph_fg(hierblock2->flatten());
}
- size_t
- hier_block2::max_output_buffer(size_t i)
+ int
+ hier_block2::max_output_buffer(size_t port)
{
- if(i >= d_detail->d_max_output_buffer.size())
- throw std::invalid_argument("hier_block2::max_output_buffer: port out of range.");
- return d_detail->d_max_output_buffer[i];
+ if(port >= d_detail->d_max_output_buffer.size())
+ throw std::invalid_argument("hier_block2::max_output_buffer(int): port out of range.");
+ return d_detail->d_max_output_buffer[port];
}
-
+
void
- hier_block2::set_max_output_buffer(size_t max_output_buffer)
+ hier_block2::set_max_output_buffer(int max_output_buffer)
{
if(output_signature()->max_streams()>0)
{
if(d_detail->d_max_output_buffer.size() == 0)
- throw std::length_error("hier_block2::max_output_buffer: out_sig greater than zero, buff_vect isn't");
- for(size_t idx = 0; idx < output_signature()->max_streams(); idx++){
+ throw std::length_error("hier_block2::set_max_output_buffer(int): out_sig greater than zero, buff_vect isn't");
+ for(int idx = 0; idx < output_signature()->max_streams(); idx++){
d_detail->d_max_output_buffer[idx] = max_output_buffer;
}
}
}
-
+
void
- hier_block2::set_max_output_buffer(int port, size_t max_output_buffer)
+ hier_block2::set_max_output_buffer(size_t port, int max_output_buffer)
{
- if((size_t)port >= d_detail->d_max_output_buffer.size())
- throw std::invalid_argument("hier_block2::max_output_buffer: port out of range.");
+ if(port >= d_detail->d_max_output_buffer.size())
+ throw std::invalid_argument("hier_block2::set_max_output_buffer(size_t,int): port out of range.");
else{
d_detail->d_max_output_buffer[port] = max_output_buffer;
}
}
- size_t
- hier_block2::min_output_buffer(size_t i)
+ int
+ hier_block2::min_output_buffer(size_t port)
{
- if(i >= d_detail->d_min_output_buffer.size())
- throw std::invalid_argument("hier_block2::min_output_buffer: port out of range.");
- return d_detail->d_min_output_buffer[i];
+ if(port >= d_detail->d_min_output_buffer.size())
+ throw std::invalid_argument("hier_block2::min_output_buffer(size_t): port out of range.");
+ return d_detail->d_min_output_buffer[port];
}
void
- hier_block2::set_min_output_buffer(size_t min_output_buffer)
+ hier_block2::set_min_output_buffer(int min_output_buffer)
{
if(output_signature()->max_streams()>0)
{
if(d_detail->d_min_output_buffer.size() == 0)
- throw std::length_error("hier_block2::min_output_buffer: out_sig greater than zero, buff_vect isn't");
- for(size_t idx = 0; idx < output_signature()->max_streams(); idx++){
+ throw std::length_error("hier_block2::set_min_output_buffer(int): out_sig greater than zero, buff_vect isn't");
+ for(int idx = 0; idx < output_signature()->max_streams(); idx++){
d_detail->d_min_output_buffer[idx] = min_output_buffer;
}
}
}
void
- hier_block2::set_min_output_buffer(int port, size_t min_output_buffer)
+ hier_block2::set_min_output_buffer(size_t port, int min_output_buffer)
{
- if((size_t)port >= d_detail->d_min_output_buffer.size())
- throw std::invalid_argument("hier_block2::min_output_buffer: port out of range.");
+ if(port >= d_detail->d_min_output_buffer.size())
+ throw std::invalid_argument("hier_block2::set_min_output_buffer(size_t,int): port out of range.");
else{
d_detail->d_min_output_buffer[port] = min_output_buffer;
}
}
-
+
bool
hier_block2::all_min_output_buffer_p(void)
{
- if(d_detail->d_min_output_buffer.size() > 0){
- bool all_equal = true;
- for(int idx = 1; (idx < d_detail->d_min_output_buffer.size()) && all_equal; idx++){
- if(d_detail->d_min_output_buffer[0] != d_detail->d_min_output_buffer[idx])
- all_equal = false;
- }
- return all_equal;
- }
- else{
+ if(!d_detail->d_min_output_buffer.size())
return false;
+ for(size_t idx = 1; idx < d_detail->d_min_output_buffer.size(); idx++){
+ if(d_detail->d_min_output_buffer[0] != d_detail->d_min_output_buffer[idx])
+ return false;
}
+ return true;
}
bool
hier_block2::all_max_output_buffer_p(void)
{
- if(d_detail->d_max_output_buffer.size() > 0){
- bool all_equal = true;
- for(int idx = 1; (idx < d_detail->d_max_output_buffer.size()) && all_equal; idx++){
- if(d_detail->d_max_output_buffer[0] != d_detail->d_max_output_buffer[idx])
- all_equal = false;
- }
- return all_equal;
- }
- else{
+ if(!d_detail->d_max_output_buffer.size())
return false;
+ for(size_t idx = 1; idx < d_detail->d_max_output_buffer.size(); idx++){
+ if(d_detail->d_max_output_buffer[0] != d_detail->d_max_output_buffer[idx])
+ return false;
}
+ return true;
}
} /* namespace gr */
diff --git a/gnuradio-runtime/lib/hier_block2_detail.cc b/gnuradio-runtime/lib/hier_block2_detail.cc
index a735de3fff..948c05d3a1 100644
--- a/gnuradio-runtime/lib/hier_block2_detail.cc
+++ b/gnuradio-runtime/lib/hier_block2_detail.cc
@@ -516,8 +516,9 @@ namespace gr {
// Only run setup_rpc if ControlPort config param is enabled.
bool ctrlport_on = prefs::singleton()->get_bool("ControlPort", "on", false);
-
- size_t min_buff(0), max_buff(0);
+
+ int min_buff = 0;
+ int max_buff = 0;
// Determine how the buffers should be set
bool set_all_min_buff = d_owner->all_min_output_buffer_p();
bool set_all_max_buff = d_owner->all_max_output_buffer_p();