summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Blum2012-11-24 17:52:49 -0800
committerJosh Blum2012-11-24 17:52:49 -0800
commit27a12c2a32338a3b830fdccbdb9e9fde2ffb4aa2 (patch)
treecc58fc453cc470bd264bfb44328d1c9852962ad5
parent6cdf13e84d491c287eb8f713d41f7c2c67a5f395 (diff)
parent08d5b3833e7ad932a21e6b37ee7e97480dca9818 (diff)
downloadsandhi-27a12c2a32338a3b830fdccbdb9e9fde2ffb4aa2.tar.gz
sandhi-27a12c2a32338a3b830fdccbdb9e9fde2ffb4aa2.tar.bz2
sandhi-27a12c2a32338a3b830fdccbdb9e9fde2ffb4aa2.zip
Merge branch 'io_sig_size_t'
m---------PMC0
-rw-r--r--include/gras/element.i2
-rw-r--r--include/gras/io_signature.hpp17
-rw-r--r--include/gras/io_signature.i7
-rw-r--r--python/gras/GRAS_Block.i1
-rw-r--r--tests/CMakeLists.txt1
-rw-r--r--tests/io_sig_test.py21
7 files changed, 35 insertions, 14 deletions
diff --git a/PMC b/PMC
-Subproject 8b8837e65078a627ebc7fc53b5b1345fd803584
+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 563dc2b..be9a3fd 100644
--- a/include/gras/io_signature.i
+++ b/include/gras/io_signature.i
@@ -9,17 +9,16 @@
%ignore gras::IOSignature::operator->();
%ignore gras::IOSignature::operator->() const;
+%ignore gras::IOSignature::operator[]; //ignore warnings about %extend
%include <std_vector.i>
-%template () std::vector<size_t>;
-
-%ignore gras::IOSignature::operator[]; //ignore warnings about %extend
+%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/CMakeLists.txt b/tests/CMakeLists.txt
index 275bbda..26012db 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -12,3 +12,4 @@ GR_ADD_TEST(block_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/block_te
GR_ADD_TEST(hier_block_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/hier_block_test.py)
GR_ADD_TEST(thread_pool_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/thread_pool_test.py)
GR_ADD_TEST(sbuffer_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/sbuffer_test.py)
+GR_ADD_TEST(io_sig_test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/io_sig_test.py)
diff --git a/tests/io_sig_test.py b/tests/io_sig_test.py
new file mode 100644
index 0000000..3cd90bf
--- /dev/null
+++ b/tests/io_sig_test.py
@@ -0,0 +1,21 @@
+# Copyright (C) by Josh Blum. See LICENSE.txt for licensing information.
+
+import unittest
+import gras
+
+class IOSigTest(unittest.TestCase):
+
+ def test_io_sig(self):
+ 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()