summaryrefslogtreecommitdiff
path: root/include/gras
diff options
context:
space:
mode:
authorJosh Blum2013-02-23 01:52:30 -0800
committerJosh Blum2013-02-23 01:52:30 -0800
commit49a1e13eb24fa9613585cf8c2b8bbe2bbfa994f4 (patch)
treebcefd30e090c3663a57a88cef2326b7c59a758e3 /include/gras
parentb59f49f3ab58d377b9fb8a7a7d9ed5b459208d5f (diff)
downloadsandhi-49a1e13eb24fa9613585cf8c2b8bbe2bbfa994f4.tar.gz
sandhi-49a1e13eb24fa9613585cf8c2b8bbe2bbfa994f4.tar.bz2
sandhi-49a1e13eb24fa9613585cf8c2b8bbe2bbfa994f4.zip
gras: use new set/get item size api
Diffstat (limited to 'include/gras')
-rw-r--r--include/gras/CMakeLists.txt2
-rw-r--r--include/gras/block.hpp16
-rw-r--r--include/gras/element.hpp9
-rw-r--r--include/gras/element.i1
-rw-r--r--include/gras/io_signature.hpp129
-rw-r--r--include/gras/io_signature.i27
6 files changed, 16 insertions, 168 deletions
diff --git a/include/gras/CMakeLists.txt b/include/gras/CMakeLists.txt
index f0b0d3a..15651c4 100644
--- a/include/gras/CMakeLists.txt
+++ b/include/gras/CMakeLists.txt
@@ -10,8 +10,6 @@ install(FILES
gras.hpp
hier_block.hpp
hier_block.i
- io_signature.hpp
- io_signature.i
sbuffer.hpp
sbuffer.i
tags.hpp
diff --git a/include/gras/block.hpp b/include/gras/block.hpp
index 8baecfd..f00a6f7 100644
--- a/include/gras/block.hpp
+++ b/include/gras/block.hpp
@@ -109,6 +109,22 @@ struct GRAS_API Block : Element
Block(const std::string &name);
/*******************************************************************
+ * Item sizes for ports
+ ******************************************************************/
+
+ //! Get the input item size for this port in bytes
+ size_t get_input_size(const size_t which_input) const;
+
+ //! Set the input item size for this port in bytes
+ void set_input_size(const size_t which_input, const size_t bytes);
+
+ //! Get the output item size for this port in bytes
+ size_t get_output_size(const size_t which_output) const;
+
+ //! Set the output item size for this port in bytes
+ void set_output_size(const size_t which_output, const size_t bytes);
+
+ /*******************************************************************
* Deal with input and output port configuration
******************************************************************/
diff --git a/include/gras/element.hpp b/include/gras/element.hpp
index 423053e..e6da881 100644
--- a/include/gras/element.hpp
+++ b/include/gras/element.hpp
@@ -4,7 +4,6 @@
#define INCLUDED_GRAS_ELEMENT_HPP
#include <gras/gras.hpp>
-#include <gras/io_signature.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
@@ -33,14 +32,6 @@ struct GRAS_API Element : ElementBase, boost::enable_shared_from_this<Element>
//! get a canonical name for this element
std::string to_string(void) const;
- void set_output_signature(const gras::IOSignature &sig);
-
- void set_input_signature(const gras::IOSignature &sig);
-
- const gras::IOSignature &input_signature(void) const;
-
- const gras::IOSignature &output_signature(void) const;
-
/*******************************************************************
* Compatibility for dealing with shared ptrs of Elements
******************************************************************/
diff --git a/include/gras/element.i b/include/gras/element.i
index f826ca8..1408eac 100644
--- a/include/gras/element.i
+++ b/include/gras/element.i
@@ -29,7 +29,6 @@
////////////////////////////////////////////////////////////////////////
%include <std_string.i>
%include <gras/gras.hpp>
-%import <gras/io_signature.i>
%include <gras/element.hpp>
////////////////////////////////////////////////////////////////////////
diff --git a/include/gras/io_signature.hpp b/include/gras/io_signature.hpp
deleted file mode 100644
index 1d102e4..0000000
--- a/include/gras/io_signature.hpp
+++ /dev/null
@@ -1,129 +0,0 @@
-// Copyright (C) by Josh Blum. See LICENSE.txt for licensing information.
-
-#ifndef INCLUDED_GRAS_IO_SIGNATURE_HPP
-#define INCLUDED_GRAS_IO_SIGNATURE_HPP
-
-#include <gras/gras.hpp>
-#include <vector>
-#include <stdexcept>
-
-namespace gras
-{
-
-/*!
- * An IO signature describes the input or output specifications
- * for the streaming input or output ports of a block.
- * Properties are a maximum and minimum number of ports,
- * and an item size in bytes for each port.
- */
-struct IOSignature : std::vector<unsigned>
-{
- static const int IO_INFINITE = ~0;
-
- //! Create an empty signature
- IOSignature(void)
- {
- this->set_min_streams(IO_INFINITE);
- this->set_max_streams(IO_INFINITE);
- }
-
- //! Create a signature with a single item size
- IOSignature(const unsigned size)
- {
- this->push_back(size);
- this->set_min_streams(IO_INFINITE);
- this->set_max_streams(IO_INFINITE);
- }
-
- //! Create a signature with the specified min and max streams
- IOSignature(const int min_streams, const int max_streams)
- {
- if (min_streams > max_streams and max_streams != IO_INFINITE)
- {
- throw std::invalid_argument("io signature fail: min_streams > max_streams");
- }
- this->set_min_streams(min_streams);
- this->set_max_streams(max_streams);
- }
-
- //! Create a signature from a vector of IO widths
- IOSignature(const std::vector<unsigned> &sig)
- {
- this->assign(sig.begin(), sig.end());
- this->set_min_streams(IO_INFINITE);
- this->set_max_streams(IO_INFINITE);
- }
-
- //! Construct from pointer for backwards compatible shared_ptr usage.
- explicit IOSignature(const IOSignature *sig)
- {
- *this = *sig;
- }
-
- //! Overloaded arrow operator for backwards compatible shared_ptr usage.
- IOSignature* operator->(void)
- {
- return this;
- };
-
- //! Overloaded arrow operator for backwards compatible shared_ptr usage.
- const IOSignature* operator->(void) const
- {
- return this;
- };
-
- const unsigned &at(const unsigned index) const
- {
- if (this->empty())
- {
- throw std::invalid_argument("io signature fail: indexing empty vector");
- }
- if (this->size() > index)
- {
- return std::vector<unsigned>::at(index);
- }
- return this->back();
- }
-
- const unsigned &operator[](const unsigned index) const
- {
- return this->at(index);
- }
-
- void set_min_streams(const int val)
- {
- _min_streams = val;
- }
-
- void set_max_streams(const int val)
- {
- _max_streams = val;
- }
-
- int min_streams(void) const
- {
- return _min_streams;
- }
-
- int max_streams(void) const
- {
- return _max_streams;
- }
-
- int sizeof_stream_item(const unsigned index) const
- {
- return this->at(index);
- }
-
- const std::vector<unsigned> &sizeof_stream_items(void) const
- {
- return *this;
- }
-
- int _min_streams;
- int _max_streams;
-};
-
-} //namespace gras
-
-#endif /*INCLUDED_GRAS_IO_SIGNATURE_HPP*/
diff --git a/include/gras/io_signature.i b/include/gras/io_signature.i
deleted file mode 100644
index be9a3fd..0000000
--- a/include/gras/io_signature.i
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) by Josh Blum. See LICENSE.txt for licensing information.
-
-#ifndef INCLUDED_GRAS_IO_SIGNATURE_I
-#define INCLUDED_GRAS_IO_SIGNATURE_I
-
-%{
-#include <gras/io_signature.hpp>
-%}
-
-%ignore gras::IOSignature::operator->();
-%ignore gras::IOSignature::operator->() const;
-%ignore gras::IOSignature::operator[]; //ignore warnings about %extend
-
-%include <std_vector.i>
-%template (std_vector_gras_io_signature_unsigned) std::vector<unsigned>;
-
-%include <gras/io_signature.hpp>
-
-%extend gras::IOSignature
-{
- const unsigned &__getitem__(const unsigned index)
- {
- return ($self)->at(index);
- }
-}
-
-#endif /*INCLUDED_GRAS_IO_SIGNATURE_I*/