summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
m---------PMC0
-rw-r--r--include/gras/element.i2
-rw-r--r--include/gras/io_signature.hpp17
-rw-r--r--include/gras/io_signature.i4
-rw-r--r--python/gras/GRAS_Block.i1
-rw-r--r--tests/io_sig_test.py8
6 files changed, 20 insertions, 12 deletions
diff --git a/PMC b/PMC
-Subproject 9370c57fb44b5388757dcf8ae1ffa6c0885b1e6
+Subproject ba5d60f84cd333965050c6db3e9bf4850d22041
diff --git a/include/gras/element.i b/include/gras/element.i
index ed21367..8dc360b 100644
--- a/include/gras/element.i
+++ b/include/gras/element.i
@@ -17,7 +17,7 @@
////////////////////////////////////////////////////////////////////////
%include <std_string.i>
%include <gras/gras.hpp>
-%include <gras/io_signature.i>
+%import <gras/io_signature.i>
%include <gras/element.hpp>
////////////////////////////////////////////////////////////////////////
diff --git a/include/gras/io_signature.hpp b/include/gras/io_signature.hpp
index a637c2c..002f79a 100644
--- a/include/gras/io_signature.hpp
+++ b/include/gras/io_signature.hpp
@@ -5,7 +5,6 @@
#include <vector>
#include <stdexcept>
-#include <cstdlib>
namespace gras
{
@@ -16,7 +15,7 @@ namespace gras
* Properties are a maximum and minimum number of ports,
* and an item size in bytes for each port.
*/
-struct IOSignature : std::vector<size_t>
+struct IOSignature : std::vector<unsigned>
{
static const int IO_INFINITE = ~0;
@@ -28,7 +27,7 @@ struct IOSignature : std::vector<size_t>
}
//! Create a signature with a single item size
- IOSignature(const size_t size)
+ IOSignature(const unsigned size)
{
this->push_back(size);
this->set_min_streams(IO_INFINITE);
@@ -47,7 +46,7 @@ struct IOSignature : std::vector<size_t>
}
//! Create a signature from a vector of IO widths
- IOSignature(const std::vector<size_t> &sig)
+ IOSignature(const std::vector<unsigned> &sig)
{
this->assign(sig.begin(), sig.end());
this->set_min_streams(IO_INFINITE);
@@ -72,7 +71,7 @@ struct IOSignature : std::vector<size_t>
return this;
};
- const size_t &at(const size_t index) const
+ const unsigned &at(const unsigned index) const
{
if (this->empty())
{
@@ -80,12 +79,12 @@ struct IOSignature : std::vector<size_t>
}
if (this->size() > index)
{
- return std::vector<size_t>::at(index);
+ return std::vector<unsigned>::at(index);
}
return this->back();
}
- const size_t &operator[](const size_t index) const
+ const unsigned &operator[](const unsigned index) const
{
return this->at(index);
}
@@ -110,12 +109,12 @@ struct IOSignature : std::vector<size_t>
return _max_streams;
}
- int sizeof_stream_item(const size_t index) const
+ int sizeof_stream_item(const unsigned index) const
{
return this->at(index);
}
- const std::vector<size_t> &sizeof_stream_items(void) const
+ const std::vector<unsigned> &sizeof_stream_items(void) const
{
return *this;
}
diff --git a/include/gras/io_signature.i b/include/gras/io_signature.i
index b67a5ed..be9a3fd 100644
--- a/include/gras/io_signature.i
+++ b/include/gras/io_signature.i
@@ -12,13 +12,13 @@
%ignore gras::IOSignature::operator[]; //ignore warnings about %extend
%include <std_vector.i>
-%template (std_vector_gras_io_signature_size_t) std::vector<size_t>;
+%template (std_vector_gras_io_signature_unsigned) std::vector<unsigned>;
%include <gras/io_signature.hpp>
%extend gras::IOSignature
{
- const size_t &__getitem__(const size_t index)
+ const unsigned &__getitem__(const unsigned index)
{
return ($self)->at(index);
}
diff --git a/python/gras/GRAS_Block.i b/python/gras/GRAS_Block.i
index cf23b2a..0becfd0 100644
--- a/python/gras/GRAS_Block.i
+++ b/python/gras/GRAS_Block.i
@@ -78,6 +78,7 @@ struct PyGILPhondler
#include <iostream>
%}
+%include <gras/io_signature.i>
%include <gras/block.i>
////////////////////////////////////////////////////////////////////////
diff --git a/tests/io_sig_test.py b/tests/io_sig_test.py
index 876e53f..3cd90bf 100644
--- a/tests/io_sig_test.py
+++ b/tests/io_sig_test.py
@@ -9,5 +9,13 @@ class IOSigTest(unittest.TestCase):
io = gras.IOSignature()
self.assertEqual(len(io), 0)
+ def test_io_sig_extend(self):
+ io = gras.IOSignature([5, 6, 7])
+ self.assertEqual(len(io), 3)
+ self.assertEqual(io[0], 5)
+ self.assertEqual(io[1], 6)
+ self.assertEqual(io[2], 7)
+ self.assertEqual(io[3], 7) #auto extend
+
if __name__ == '__main__':
unittest.main()