diff options
author | Josh Blum | 2013-02-23 01:52:30 -0800 |
---|---|---|
committer | Josh Blum | 2013-02-23 01:52:30 -0800 |
commit | 49a1e13eb24fa9613585cf8c2b8bbe2bbfa994f4 (patch) | |
tree | bcefd30e090c3663a57a88cef2326b7c59a758e3 /lib | |
parent | b59f49f3ab58d377b9fb8a7a7d9ed5b459208d5f (diff) | |
download | sandhi-49a1e13eb24fa9613585cf8c2b8bbe2bbfa994f4.tar.gz sandhi-49a1e13eb24fa9613585cf8c2b8bbe2bbfa994f4.tar.bz2 sandhi-49a1e13eb24fa9613585cf8c2b8bbe2bbfa994f4.zip |
gras: use new set/get item size api
Diffstat (limited to 'lib')
-rw-r--r-- | lib/block.cpp | 22 | ||||
-rw-r--r-- | lib/element.cpp | 25 | ||||
-rw-r--r-- | lib/element_impl.hpp | 2 | ||||
-rw-r--r-- | lib/topology_handler.cpp | 19 |
4 files changed, 25 insertions, 43 deletions
diff --git a/lib/block.cpp b/lib/block.cpp index 128a9b8..330e1a6 100644 --- a/lib/block.cpp +++ b/lib/block.cpp @@ -38,6 +38,8 @@ Block::Block(const std::string &name): (*this)->block->block_state = BlockActor::BLOCK_STATE_INIT; //call block methods to init stuff + this->set_input_size(0, 1); + this->set_output_size(0, 1); this->set_input_config(0, InputPortConfig()); this->set_output_config(0, OutputPortConfig()); this->set_interruptible_work(false); @@ -80,6 +82,26 @@ typename V::value_type vector_get(const V &v, const size_t index) return v[index]; } +size_t Block::get_input_size(const size_t which_input) const +{ + return vector_get((*this)->block->input_items_sizes, which_input); +} + +void Block::set_input_size(const size_t which_input, const size_t bytes) +{ + vector_set((*this)->block->input_items_sizes, bytes, which_input); +} + +size_t Block::get_output_size(const size_t which_output) const +{ + return vector_get((*this)->block->output_items_sizes, which_output); +} + +void Block::set_output_size(const size_t which_output, const size_t bytes) +{ + vector_set((*this)->block->output_items_sizes, bytes, which_output); +} + InputPortConfig Block::get_input_config(const size_t which_input) const { return vector_get((*this)->block->input_configs, which_input); diff --git a/lib/element.cpp b/lib/element.cpp index a10e298..71e4e69 100644 --- a/lib/element.cpp +++ b/lib/element.cpp @@ -21,11 +21,6 @@ Element::Element(const std::string &name) (*this)->unique_id = ++unique_id_pool; if (GENESIS) std::cerr << "New element: " << to_string() << std::endl; - - //default io signature to something - IOSignature sig; sig.push_back(1); - this->set_input_signature(sig); - this->set_output_signature(sig); } ElementImpl::~ElementImpl(void) @@ -49,23 +44,3 @@ std::string Element::to_string(void) const { return str(boost::format("%s(%d)") % this->name() % this->unique_id()); } - -void Element::set_output_signature(const IOSignature &sig) -{ - (*this)->output_signature = sig; -} - -void Element::set_input_signature(const IOSignature &sig) -{ - (*this)->input_signature = sig; -} - -const IOSignature &Element::input_signature(void) const -{ - return (*this)->input_signature; -} - -const IOSignature &Element::output_signature(void) const -{ - return (*this)->output_signature; -} diff --git a/lib/element_impl.hpp b/lib/element_impl.hpp index 5c2d998..9e3c9b3 100644 --- a/lib/element_impl.hpp +++ b/lib/element_impl.hpp @@ -26,8 +26,6 @@ struct ElementImpl //common element properties std::string name; long unique_id; - IOSignature input_signature; - IOSignature output_signature; //top block stuff SharedThreadGroup thread_group; diff --git a/lib/topology_handler.cpp b/lib/topology_handler.cpp index f813b57..af4dead 100644 --- a/lib/topology_handler.cpp +++ b/lib/topology_handler.cpp @@ -4,19 +4,6 @@ using namespace gras; -template <typename V, typename Sig> -void fill_item_sizes_from_sig(V &v, const Sig &s, const size_t size) -{ - //default item size of 1 in case we cant set - v.resize(size, 1); - - //empty signature? maybe it was a message port - if (s.empty()) return; - - //fill v by copying signature (with back extend mode) - for (size_t i = 0; i < v.size(); i++) v[i] = s[i]; -} - template <typename V, typename T> void resize_fill_grow(V &v, const size_t new_len, const T &fill) { @@ -43,9 +30,9 @@ void BlockActor::handle_topology( //call notify_topology on block before committing settings this->block_ptr->notify_topology(num_inputs, num_outputs); - //fill the item sizes from the IO signatures - fill_item_sizes_from_sig(this->input_items_sizes, block_ptr->input_signature(), num_inputs); - fill_item_sizes_from_sig(this->output_items_sizes, block_ptr->output_signature(), num_outputs); + //fill the item sizes per port + resize_fill_back(this->input_items_sizes, num_inputs); + resize_fill_back(this->output_items_sizes, num_outputs); //resize and fill port properties resize_fill_back(this->input_configs, num_inputs); |