summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJosh Blum2013-02-23 01:52:30 -0800
committerJosh Blum2013-02-23 01:52:30 -0800
commit49a1e13eb24fa9613585cf8c2b8bbe2bbfa994f4 (patch)
treebcefd30e090c3663a57a88cef2326b7c59a758e3 /lib
parentb59f49f3ab58d377b9fb8a7a7d9ed5b459208d5f (diff)
downloadsandhi-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.cpp22
-rw-r--r--lib/element.cpp25
-rw-r--r--lib/element_impl.hpp2
-rw-r--r--lib/topology_handler.cpp19
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);