From 25ec793e687821bd2ac5862fcf934c4c9c0f47b6 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Sun, 21 Oct 2012 07:29:40 -0700 Subject: moved commit and deprecated lock/unlock into hier block it can now be called from within a hier block once the design has been committed --- Apology | 2 +- include/gnuradio/gr_top_block.h | 4 ---- include/gnuradio/hier_block.hpp | 20 ++++++++++++++++++++ lib/gr_top_block.cpp | 10 ---------- lib/hier_block.cpp | 5 +++++ 5 files changed, 26 insertions(+), 15 deletions(-) diff --git a/Apology b/Apology index 132718e..7fabc00 160000 --- a/Apology +++ b/Apology @@ -1 +1 @@ -Subproject commit 132718e729bbb6e9d18a6f776eca4a3187978f08 +Subproject commit 7fabc009441ef1bb7396e71d927c02ce0e86276b diff --git a/include/gnuradio/gr_top_block.h b/include/gnuradio/gr_top_block.h index 16adb13..b50b35b 100644 --- a/include/gnuradio/gr_top_block.h +++ b/include/gnuradio/gr_top_block.h @@ -27,10 +27,6 @@ struct GRAS_API gr_top_block : gnuradio::TopBlock gr_top_block(const std::string &name); - void lock(void); - - void unlock(void); - void start(void); void start(const size_t max_items); diff --git a/include/gnuradio/hier_block.hpp b/include/gnuradio/hier_block.hpp index 8c337e3..c981b03 100644 --- a/include/gnuradio/hier_block.hpp +++ b/include/gnuradio/hier_block.hpp @@ -48,6 +48,26 @@ struct GRAS_API HierBlock : Element void disconnect_all(void); + /*! + * Commit changes to the overall flow graph. + * Call this after modifying connections. + */ + virtual void commit(void); + + /*! + * The lock() call is deprecated. + * Topology can be changed duing design execution. + * The underlying implementation is literally a NOP. + */ + inline void lock(void){} + + /*! + * The unlock() call is deprecated. + * Topology can be changed duing design execution. + * The underlying implementation is this->commit(). + */ + inline void unlock(void){this->commit();} + }; } //namespace gnuradio diff --git a/lib/gr_top_block.cpp b/lib/gr_top_block.cpp index 6c023b1..c51f9b3 100644 --- a/lib/gr_top_block.cpp +++ b/lib/gr_top_block.cpp @@ -34,16 +34,6 @@ gr_top_block_sptr gr_make_top_block(const std::string &name) return gr_top_block_sptr(new gr_top_block(name)); } -void gr_top_block::lock(void) -{ - //NOP -} - -void gr_top_block::unlock(void) -{ - this->commit(); -} - void gr_top_block::start(void) { gnuradio::TopBlock::start(); diff --git a/lib/hier_block.cpp b/lib/hier_block.cpp index ef29cc2..422ed77 100644 --- a/lib/hier_block.cpp +++ b/lib/hier_block.cpp @@ -76,3 +76,8 @@ void HierBlock::disconnect_all(void) { (*this)->topology->clear_all(); } + +void HierBlock::commit(void) +{ + (*this)->topology->commit(); +} -- cgit