diff options
m--------- | PMC | 0 | ||||
-rw-r--r-- | include/gras/element.i | 2 | ||||
-rw-r--r-- | include/gras/io_signature.hpp | 17 | ||||
-rw-r--r-- | include/gras/io_signature.i | 4 | ||||
-rw-r--r-- | python/gras/GRAS_Block.i | 1 | ||||
-rw-r--r-- | tests/io_sig_test.py | 8 |
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() |