diff options
author | Marcus Müller <mmueller@gnuradio.org> | 2019-08-07 21:45:12 +0200 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2019-08-09 23:04:28 +0200 |
commit | f7bbf2c1d8d780294f3e016aff239ca35eb6516e (patch) | |
tree | e09ab6112e02b2215b2d59ac24d3d6ea2edac745 /gnuradio-runtime/lib/pmt | |
parent | 78431dc6941e3acc67c858277dfe4a0ed583643c (diff) |
Tree: clang-format without the include sorting
Diffstat (limited to 'gnuradio-runtime/lib/pmt')
-rw-r--r-- | gnuradio-runtime/lib/pmt/pmt.cc | 1612 | ||||
-rw-r--r-- | gnuradio-runtime/lib/pmt/pmt_int.h | 157 | ||||
-rw-r--r-- | gnuradio-runtime/lib/pmt/pmt_io.cc | 206 | ||||
-rw-r--r-- | gnuradio-runtime/lib/pmt/pmt_pool.cc | 118 | ||||
-rw-r--r-- | gnuradio-runtime/lib/pmt/pmt_serialize.cc | 1301 | ||||
-rw-r--r-- | gnuradio-runtime/lib/pmt/pmt_unv.cc | 1797 | ||||
-rw-r--r-- | gnuradio-runtime/lib/pmt/pmt_unv_int.h | 362 | ||||
-rw-r--r-- | gnuradio-runtime/lib/pmt/qa_pmt_prims.cc | 914 | ||||
-rw-r--r-- | gnuradio-runtime/lib/pmt/qa_pmt_unv.cc | 782 |
9 files changed, 3348 insertions, 3901 deletions
diff --git a/gnuradio-runtime/lib/pmt/pmt.cc b/gnuradio-runtime/lib/pmt/pmt.cc index e0f50b5b0b..4adb763e5f 100644 --- a/gnuradio-runtime/lib/pmt/pmt.cc +++ b/gnuradio-runtime/lib/pmt/pmt.cc @@ -36,30 +36,30 @@ namespace pmt { pmt_base::~pmt_base() { - // nop -- out of line virtual destructor + // nop -- out of line virtual destructor } //////////////////////////////////////////////////////////////////////////// // Exceptions //////////////////////////////////////////////////////////////////////////// -exception::exception(const std::string &msg, pmt_t obj) - : logic_error(msg + ": " + write_string(obj)) +exception::exception(const std::string& msg, pmt_t obj) + : logic_error(msg + ": " + write_string(obj)) { } -wrong_type::wrong_type(const std::string &msg, pmt_t obj) - : exception(msg + ": wrong_type ", obj) +wrong_type::wrong_type(const std::string& msg, pmt_t obj) + : exception(msg + ": wrong_type ", obj) { } -out_of_range::out_of_range(const std::string &msg, pmt_t obj) - : exception(msg + ": out of range ", obj) +out_of_range::out_of_range(const std::string& msg, pmt_t obj) + : exception(msg + ": out of range ", obj) { } -notimplemented::notimplemented(const std::string &msg, pmt_t obj) - : exception(msg + ": notimplemented ", obj) +notimplemented::notimplemented(const std::string& msg, pmt_t obj) + : exception(msg + ": notimplemented ", obj) { } @@ -67,65 +67,28 @@ notimplemented::notimplemented(const std::string &msg, pmt_t obj) // Dynamic Casts //////////////////////////////////////////////////////////////////////////// -static pmt_symbol * -_symbol(pmt_t x) -{ - return dynamic_cast<pmt_symbol*>(x.get()); -} +static pmt_symbol* _symbol(pmt_t x) { return dynamic_cast<pmt_symbol*>(x.get()); } -static pmt_integer * -_integer(pmt_t x) -{ - return dynamic_cast<pmt_integer*>(x.get()); -} +static pmt_integer* _integer(pmt_t x) { return dynamic_cast<pmt_integer*>(x.get()); } -static pmt_uint64 * -_uint64(pmt_t x) -{ - return dynamic_cast<pmt_uint64*>(x.get()); -} +static pmt_uint64* _uint64(pmt_t x) { return dynamic_cast<pmt_uint64*>(x.get()); } -static pmt_real * -_real(pmt_t x) -{ - return dynamic_cast<pmt_real*>(x.get()); -} +static pmt_real* _real(pmt_t x) { return dynamic_cast<pmt_real*>(x.get()); } -static pmt_complex * -_complex(pmt_t x) -{ - return dynamic_cast<pmt_complex*>(x.get()); -} +static pmt_complex* _complex(pmt_t x) { return dynamic_cast<pmt_complex*>(x.get()); } -static pmt_pair * -_pair(pmt_t x) -{ - return dynamic_cast<pmt_pair*>(x.get()); -} +static pmt_pair* _pair(pmt_t x) { return dynamic_cast<pmt_pair*>(x.get()); } -static pmt_vector * -_vector(pmt_t x) -{ - return dynamic_cast<pmt_vector*>(x.get()); -} +static pmt_vector* _vector(pmt_t x) { return dynamic_cast<pmt_vector*>(x.get()); } -static pmt_tuple * -_tuple(pmt_t x) -{ - return dynamic_cast<pmt_tuple*>(x.get()); -} +static pmt_tuple* _tuple(pmt_t x) { return dynamic_cast<pmt_tuple*>(x.get()); } -static pmt_uniform_vector * -_uniform_vector(pmt_t x) +static pmt_uniform_vector* _uniform_vector(pmt_t x) { - return dynamic_cast<pmt_uniform_vector*>(x.get()); + return dynamic_cast<pmt_uniform_vector*>(x.get()); } -static pmt_any * -_any(pmt_t x) -{ - return dynamic_cast<pmt_any*>(x.get()); -} +static pmt_any* _any(pmt_t x) { return dynamic_cast<pmt_any*>(x.get()); } //////////////////////////////////////////////////////////////////////////// // Globals @@ -133,167 +96,132 @@ _any(pmt_t x) pmt_t get_PMT_NIL() { - static pmt_t _NIL = pmt_t(new pmt_null()); - return _NIL; + static pmt_t _NIL = pmt_t(new pmt_null()); + return _NIL; } pmt_t get_PMT_T() { - static const pmt_t _T = pmt_t(new pmt_bool()); - return _T; + static const pmt_t _T = pmt_t(new pmt_bool()); + return _T; } pmt_t get_PMT_F() { - static const pmt_t _F = pmt_t(new pmt_bool()); - return _F; + static const pmt_t _F = pmt_t(new pmt_bool()); + return _F; } pmt_t get_PMT_EOF() { - static const pmt_t _EOF = cons(get_PMT_NIL(), get_PMT_NIL()); - return _EOF; + static const pmt_t _EOF = cons(get_PMT_NIL(), get_PMT_NIL()); + return _EOF; } //////////////////////////////////////////////////////////////////////////// // Booleans //////////////////////////////////////////////////////////////////////////// -pmt_bool::pmt_bool(){} +pmt_bool::pmt_bool() {} -bool -is_true(pmt_t obj) -{ - return obj != PMT_F; -} +bool is_true(pmt_t obj) { return obj != PMT_F; } -bool -is_false(pmt_t obj) -{ - return obj == PMT_F; -} +bool is_false(pmt_t obj) { return obj == PMT_F; } -bool -is_bool(pmt_t obj) -{ - return obj->is_bool(); -} +bool is_bool(pmt_t obj) { return obj->is_bool(); } -pmt_t -from_bool(bool val) -{ - return val ? PMT_T : PMT_F; -} +pmt_t from_bool(bool val) { return val ? PMT_T : PMT_F; } -bool -to_bool(pmt_t val) +bool to_bool(pmt_t val) { - if (val == PMT_T) - return true; - if (val == PMT_F) - return false; - throw wrong_type("pmt_to_bool", val); + if (val == PMT_T) + return true; + if (val == PMT_F) + return false; + throw wrong_type("pmt_to_bool", val); } //////////////////////////////////////////////////////////////////////////// // Symbols //////////////////////////////////////////////////////////////////////////// -static const unsigned int -get_symbol_hash_table_size() +static const unsigned int get_symbol_hash_table_size() { - static const unsigned int SYMBOL_HASH_TABLE_SIZE = 701; - return SYMBOL_HASH_TABLE_SIZE; + static const unsigned int SYMBOL_HASH_TABLE_SIZE = 701; + return SYMBOL_HASH_TABLE_SIZE; } -static std::vector<pmt_t>* -get_symbol_hash_table() +static std::vector<pmt_t>* get_symbol_hash_table() { - static std::vector<pmt_t> s_symbol_hash_table(get_symbol_hash_table_size()); - return &s_symbol_hash_table; + static std::vector<pmt_t> s_symbol_hash_table(get_symbol_hash_table_size()); + return &s_symbol_hash_table; } -pmt_symbol::pmt_symbol(const std::string &name) : d_name(name){} +pmt_symbol::pmt_symbol(const std::string& name) : d_name(name) {} -static unsigned int -hash_string(const std::string &s) +static unsigned int hash_string(const std::string& s) { - unsigned int h = 0; - unsigned int g = 0; + unsigned int h = 0; + unsigned int g = 0; - for (std::string::const_iterator p = s.begin(); p != s.end(); ++p){ - h = (h << 4) + (*p & 0xff); - g = h & 0xf0000000; - if (g){ - h = h ^ (g >> 24); - h = h ^ g; + for (std::string::const_iterator p = s.begin(); p != s.end(); ++p) { + h = (h << 4) + (*p & 0xff); + g = h & 0xf0000000; + if (g) { + h = h ^ (g >> 24); + h = h ^ g; + } } - } - return h; + return h; } -bool -is_symbol(const pmt_t& obj) -{ - return obj->is_symbol(); -} +bool is_symbol(const pmt_t& obj) { return obj->is_symbol(); } -pmt_t -string_to_symbol(const std::string &name) +pmt_t string_to_symbol(const std::string& name) { - unsigned hash = hash_string(name) % get_symbol_hash_table_size(); + unsigned hash = hash_string(name) % get_symbol_hash_table_size(); - // Does a symbol with this name already exist? - for (pmt_t sym = (*get_symbol_hash_table())[hash]; sym; sym = _symbol(sym)->next()){ - if (name == _symbol(sym)->name()) - return sym; // Yes. Return it - } + // Does a symbol with this name already exist? + for (pmt_t sym = (*get_symbol_hash_table())[hash]; sym; sym = _symbol(sym)->next()) { + if (name == _symbol(sym)->name()) + return sym; // Yes. Return it + } - // Lock the table on insert for thread safety: - static boost::mutex thread_safety; - boost::mutex::scoped_lock lock(thread_safety); - // Re-do the search in case another thread inserted this symbol into the table - // before we got the lock - for (pmt_t sym = (*get_symbol_hash_table())[hash]; sym; sym = _symbol(sym)->next()){ - if (name == _symbol(sym)->name()) - return sym; // Yes. Return it - } + // Lock the table on insert for thread safety: + static boost::mutex thread_safety; + boost::mutex::scoped_lock lock(thread_safety); + // Re-do the search in case another thread inserted this symbol into the table + // before we got the lock + for (pmt_t sym = (*get_symbol_hash_table())[hash]; sym; sym = _symbol(sym)->next()) { + if (name == _symbol(sym)->name()) + return sym; // Yes. Return it + } - // Nope. Make a new one. - pmt_t sym = pmt_t(new pmt_symbol(name)); - _symbol(sym)->set_next((*get_symbol_hash_table())[hash]); - (*get_symbol_hash_table())[hash] = sym; - return sym; + // Nope. Make a new one. + pmt_t sym = pmt_t(new pmt_symbol(name)); + _symbol(sym)->set_next((*get_symbol_hash_table())[hash]); + (*get_symbol_hash_table())[hash] = sym; + return sym; } // alias... -pmt_t -intern(const std::string &name) -{ - return string_to_symbol(name); -} +pmt_t intern(const std::string& name) { return string_to_symbol(name); } -const std::string -symbol_to_string(const pmt_t& sym) +const std::string symbol_to_string(const pmt_t& sym) { - if (!sym->is_symbol()) - throw wrong_type("pmt_symbol_to_string", sym); + if (!sym->is_symbol()) + throw wrong_type("pmt_symbol_to_string", sym); - return _symbol(sym)->name(); + return _symbol(sym)->name(); } - //////////////////////////////////////////////////////////////////////////// // Number //////////////////////////////////////////////////////////////////////////// -bool -is_number(pmt_t x) -{ - return x->is_number(); -} +bool is_number(pmt_t x) { return x->is_number(); } //////////////////////////////////////////////////////////////////////////// // Integer @@ -301,27 +229,18 @@ is_number(pmt_t x) pmt_integer::pmt_integer(long value) : d_value(value) {} -bool -is_integer(pmt_t x) -{ - return x->is_integer(); -} +bool is_integer(pmt_t x) { return x->is_integer(); } -pmt_t -from_long(long x) -{ - return pmt_t(new pmt_integer(x)); -} +pmt_t from_long(long x) { return pmt_t(new pmt_integer(x)); } -long -to_long(pmt_t x) +long to_long(pmt_t x) { - pmt_integer* i = dynamic_cast<pmt_integer*>(x.get()); - if ( i ) - return i->value(); + pmt_integer* i = dynamic_cast<pmt_integer*>(x.get()); + if (i) + return i->value(); - throw wrong_type("pmt_to_long", x); + throw wrong_type("pmt_to_long", x); } //////////////////////////////////////////////////////////////////////////// @@ -330,32 +249,22 @@ to_long(pmt_t x) pmt_uint64::pmt_uint64(uint64_t value) : d_value(value) {} -bool -is_uint64(pmt_t x) -{ - return x->is_uint64(); -} +bool is_uint64(pmt_t x) { return x->is_uint64(); } -pmt_t -from_uint64(uint64_t x) -{ - return pmt_t(new pmt_uint64(x)); -} +pmt_t from_uint64(uint64_t x) { return pmt_t(new pmt_uint64(x)); } -uint64_t -to_uint64(pmt_t x) +uint64_t to_uint64(pmt_t x) { - if(x->is_uint64()) - return _uint64(x)->value(); - if(x->is_integer()) - { - long tmp = _integer(x)->value(); - if(tmp >= 0) - return (uint64_t) tmp; + if (x->is_uint64()) + return _uint64(x)->value(); + if (x->is_integer()) { + long tmp = _integer(x)->value(); + if (tmp >= 0) + return (uint64_t)tmp; } - throw wrong_type("pmt_to_uint64", x); + throw wrong_type("pmt_to_uint64", x); } //////////////////////////////////////////////////////////////////////////// @@ -364,40 +273,23 @@ to_uint64(pmt_t x) pmt_real::pmt_real(double value) : d_value(value) {} -bool -is_real(pmt_t x) -{ - return x->is_real(); -} +bool is_real(pmt_t x) { return x->is_real(); } -pmt_t -from_double(double x) -{ - return pmt_t(new pmt_real(x)); -} +pmt_t from_double(double x) { return pmt_t(new pmt_real(x)); } -pmt_t -from_float(float x) -{ - return pmt_t(new pmt_real(x)); -} +pmt_t from_float(float x) { return pmt_t(new pmt_real(x)); } -double -to_double(pmt_t x) +double to_double(pmt_t x) { - if (x->is_real()) - return _real(x)->value(); - if (x->is_integer()) - return _integer(x)->value(); + if (x->is_real()) + return _real(x)->value(); + if (x->is_integer()) + return _integer(x)->value(); - throw wrong_type("pmt_to_double", x); + throw wrong_type("pmt_to_double", x); } -float -to_float(pmt_t x) -{ - return float(to_double(x)); -} +float to_float(pmt_t x) { return float(to_double(x)); } //////////////////////////////////////////////////////////////////////////// // Complex @@ -405,46 +297,29 @@ to_float(pmt_t x) pmt_complex::pmt_complex(std::complex<double> value) : d_value(value) {} -bool -is_complex(pmt_t x) -{ - return x->is_complex(); -} +bool is_complex(pmt_t x) { return x->is_complex(); } -pmt_t -make_rectangular(double re, double im) -{ - return from_complex(re, im); -} +pmt_t make_rectangular(double re, double im) { return from_complex(re, im); } -pmt_t -from_complex(double re, double im) -{ - return pmt_from_complex(re, im); -} +pmt_t from_complex(double re, double im) { return pmt_from_complex(re, im); } pmt_t pmt_from_complex(double re, double im) { - return pmt_t(new pmt_complex(std::complex<double>(re, im))); + return pmt_t(new pmt_complex(std::complex<double>(re, im))); } -pmt_t -from_complex(const std::complex<double> &z) -{ - return pmt_t(new pmt_complex(z)); -} +pmt_t from_complex(const std::complex<double>& z) { return pmt_t(new pmt_complex(z)); } -std::complex<double> -to_complex(pmt_t x) +std::complex<double> to_complex(pmt_t x) { - if (x->is_complex()) - return _complex(x)->value(); - if (x->is_real()) - return _real(x)->value(); - if (x->is_integer()) - return _integer(x)->value(); + if (x->is_complex()) + return _complex(x)->value(); + if (x->is_real()) + return _real(x)->value(); + if (x->is_integer()) + return _integer(x)->value(); - throw wrong_type("pmt_to_complex", x); + throw wrong_type("pmt_to_complex", x); } //////////////////////////////////////////////////////////////////////////// @@ -454,363 +329,335 @@ to_complex(pmt_t x) pmt_null::pmt_null() {} pmt_pair::pmt_pair(const pmt_t& car, const pmt_t& cdr) : d_car(car), d_cdr(cdr) {} -bool -is_null(const pmt_t& x) -{ - return x == PMT_NIL; -} +bool is_null(const pmt_t& x) { return x == PMT_NIL; } -bool -is_pair(const pmt_t& obj) -{ - return obj->is_pair(); -} +bool is_pair(const pmt_t& obj) { return obj->is_pair(); } -pmt_t -cons(const pmt_t& x, const pmt_t& y) -{ - return pmt_t(new pmt_pair(x, y)); -} +pmt_t cons(const pmt_t& x, const pmt_t& y) { return pmt_t(new pmt_pair(x, y)); } -pmt_t -car(const pmt_t& pair) +pmt_t car(const pmt_t& pair) { - pmt_pair* p = dynamic_cast<pmt_pair*>(pair.get()); - if ( p ) - return p->car(); + pmt_pair* p = dynamic_cast<pmt_pair*>(pair.get()); + if (p) + return p->car(); - throw wrong_type("pmt_car", pair); + throw wrong_type("pmt_car", pair); } -pmt_t -cdr(const pmt_t& pair) +pmt_t cdr(const pmt_t& pair) { - pmt_pair* p = dynamic_cast<pmt_pair*>(pair.get()); - if ( p ) - return p->cdr(); + pmt_pair* p = dynamic_cast<pmt_pair*>(pair.get()); + if (p) + return p->cdr(); - throw wrong_type("pmt_cdr", pair); + throw wrong_type("pmt_cdr", pair); } -void -set_car(pmt_t pair, pmt_t obj) +void set_car(pmt_t pair, pmt_t obj) { - if (pair->is_pair()) - _pair(pair)->set_car(obj); - else - throw wrong_type("pmt_set_car", pair); + if (pair->is_pair()) + _pair(pair)->set_car(obj); + else + throw wrong_type("pmt_set_car", pair); } -void -set_cdr(pmt_t pair, pmt_t obj) +void set_cdr(pmt_t pair, pmt_t obj) { - if (pair->is_pair()) - _pair(pair)->set_cdr(obj); - else - throw wrong_type("pmt_set_cdr", pair); + if (pair->is_pair()) + _pair(pair)->set_cdr(obj); + else + throw wrong_type("pmt_set_cdr", pair); } //////////////////////////////////////////////////////////////////////////// // Vectors //////////////////////////////////////////////////////////////////////////// -pmt_vector::pmt_vector(size_t len, pmt_t fill) - : d_v(len) +pmt_vector::pmt_vector(size_t len, pmt_t fill) : d_v(len) { - for (size_t i = 0; i < len; i++) - d_v[i] = fill; + for (size_t i = 0; i < len; i++) + d_v[i] = fill; } -pmt_t -pmt_vector::ref(size_t k) const +pmt_t pmt_vector::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_vector_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_vector_ref", from_long(k)); + return d_v[k]; } -void -pmt_vector::set(size_t k, pmt_t obj) +void pmt_vector::set(size_t k, pmt_t obj) { - if (k >= length()) - throw out_of_range("pmt_vector_set", from_long(k)); - d_v[k] = obj; + if (k >= length()) + throw out_of_range("pmt_vector_set", from_long(k)); + d_v[k] = obj; } -void -pmt_vector::fill(pmt_t obj) +void pmt_vector::fill(pmt_t obj) { - for (size_t i = 0; i < length(); i++) - d_v[i] = obj; + for (size_t i = 0; i < length(); i++) + d_v[i] = obj; } -bool -is_vector(pmt_t obj) -{ - return obj->is_vector(); -} +bool is_vector(pmt_t obj) { return obj->is_vector(); } -pmt_t -make_vector(size_t k, pmt_t fill) -{ - return pmt_t(new pmt_vector(k, fill)); -} +pmt_t make_vector(size_t k, pmt_t fill) { return pmt_t(new pmt_vector(k, fill)); } -pmt_t -vector_ref(pmt_t vector, size_t k) +pmt_t vector_ref(pmt_t vector, size_t k) { - if (!vector->is_vector()) - throw wrong_type("pmt_vector_ref", vector); - return _vector(vector)->ref(k); + if (!vector->is_vector()) + throw wrong_type("pmt_vector_ref", vector); + return _vector(vector)->ref(k); } -void -vector_set(pmt_t vector, size_t k, pmt_t obj) +void vector_set(pmt_t vector, size_t k, pmt_t obj) { - if (!vector->is_vector()) - throw wrong_type("pmt_vector_set", vector); - _vector(vector)->set(k, obj); + if (!vector->is_vector()) + throw wrong_type("pmt_vector_set", vector); + _vector(vector)->set(k, obj); } -void -vector_fill(pmt_t vector, pmt_t obj) +void vector_fill(pmt_t vector, pmt_t obj) { - if (!vector->is_vector()) - throw wrong_type("pmt_vector_set", vector); - _vector(vector)->fill(obj); + if (!vector->is_vector()) + throw wrong_type("pmt_vector_set", vector); + _vector(vector)->fill(obj); } //////////////////////////////////////////////////////////////////////////// // Tuples //////////////////////////////////////////////////////////////////////////// -pmt_tuple::pmt_tuple(size_t len) - : d_v(len) -{ -} +pmt_tuple::pmt_tuple(size_t len) : d_v(len) {} -pmt_t -pmt_tuple::ref(size_t k) const +pmt_t pmt_tuple::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_tuple_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_tuple_ref", from_long(k)); + return d_v[k]; } -bool -is_tuple(pmt_t obj) -{ - return obj->is_tuple(); -} +bool is_tuple(pmt_t obj) { return obj->is_tuple(); } -pmt_t -tuple_ref(const pmt_t &tuple, size_t k) +pmt_t tuple_ref(const pmt_t& tuple, size_t k) { - if (!tuple->is_tuple()) - throw wrong_type("pmt_tuple_ref", tuple); - return _tuple(tuple)->ref(k); + if (!tuple->is_tuple()) + throw wrong_type("pmt_tuple_ref", tuple); + return _tuple(tuple)->ref(k); } // for (i=0; i < 10; i++) // make_constructor() -pmt_t -make_tuple() -{ - return pmt_t(new pmt_tuple(0)); -} - -pmt_t -make_tuple(const pmt_t &e0) -{ - pmt_tuple *t = new pmt_tuple(1); - t->_set(0, e0); - return pmt_t(t); -} - -pmt_t -make_tuple(const pmt_t &e0, const pmt_t &e1) -{ - pmt_tuple *t = new pmt_tuple(2); - t->_set(0, e0); - t->_set(1, e1); - return pmt_t(t); -} - -pmt_t -make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2) -{ - pmt_tuple *t = new pmt_tuple(3); - t->_set(0, e0); - t->_set(1, e1); - t->_set(2, e2); - return pmt_t(t); -} - -pmt_t -make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3) -{ - pmt_tuple *t = new pmt_tuple(4); - t->_set(0, e0); - t->_set(1, e1); - t->_set(2, e2); - t->_set(3, e3); - return pmt_t(t); -} - -pmt_t -make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4) -{ - pmt_tuple *t = new pmt_tuple(5); - t->_set(0, e0); - t->_set(1, e1); - t->_set(2, e2); - t->_set(3, e3); - t->_set(4, e4); - return pmt_t(t); -} - -pmt_t -make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5) -{ - pmt_tuple *t = new pmt_tuple(6); - t->_set(0, e0); - t->_set(1, e1); - t->_set(2, e2); - t->_set(3, e3); - t->_set(4, e4); - t->_set(5, e5); - return pmt_t(t); -} - -pmt_t -make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6) -{ - pmt_tuple *t = new pmt_tuple(7); - t->_set(0, e0); - t->_set(1, e1); - t->_set(2, e2); - t->_set(3, e3); - t->_set(4, e4); - t->_set(5, e5); - t->_set(6, e6); - return pmt_t(t); -} - -pmt_t -make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7) -{ - pmt_tuple *t = new pmt_tuple(8); - t->_set(0, e0); - t->_set(1, e1); - t->_set(2, e2); - t->_set(3, e3); - t->_set(4, e4); - t->_set(5, e5); - t->_set(6, e6); - t->_set(7, e7); - return pmt_t(t); -} +pmt_t make_tuple() { return pmt_t(new pmt_tuple(0)); } + +pmt_t make_tuple(const pmt_t& e0) +{ + pmt_tuple* t = new pmt_tuple(1); + t->_set(0, e0); + return pmt_t(t); +} + +pmt_t make_tuple(const pmt_t& e0, const pmt_t& e1) +{ + pmt_tuple* t = new pmt_tuple(2); + t->_set(0, e0); + t->_set(1, e1); + return pmt_t(t); +} + +pmt_t make_tuple(const pmt_t& e0, const pmt_t& e1, const pmt_t& e2) +{ + pmt_tuple* t = new pmt_tuple(3); + t->_set(0, e0); + t->_set(1, e1); + t->_set(2, e2); + return pmt_t(t); +} + +pmt_t make_tuple(const pmt_t& e0, const pmt_t& e1, const pmt_t& e2, const pmt_t& e3) +{ + pmt_tuple* t = new pmt_tuple(4); + t->_set(0, e0); + t->_set(1, e1); + t->_set(2, e2); + t->_set(3, e3); + return pmt_t(t); +} + +pmt_t make_tuple( + const pmt_t& e0, const pmt_t& e1, const pmt_t& e2, const pmt_t& e3, const pmt_t& e4) +{ + pmt_tuple* t = new pmt_tuple(5); + t->_set(0, e0); + t->_set(1, e1); + t->_set(2, e2); + t->_set(3, e3); + t->_set(4, e4); + return pmt_t(t); +} + +pmt_t make_tuple(const pmt_t& e0, + const pmt_t& e1, + const pmt_t& e2, + const pmt_t& e3, + const pmt_t& e4, + const pmt_t& e5) +{ + pmt_tuple* t = new pmt_tuple(6); + t->_set(0, e0); + t->_set(1, e1); + t->_set(2, e2); + t->_set(3, e3); + t->_set(4, e4); + t->_set(5, e5); + return pmt_t(t); +} + +pmt_t make_tuple(const pmt_t& e0, + const pmt_t& e1, + const pmt_t& e2, + const pmt_t& e3, + const pmt_t& e4, + const pmt_t& e5, + const pmt_t& e6) +{ + pmt_tuple* t = new pmt_tuple(7); + t->_set(0, e0); + t->_set(1, e1); + t->_set(2, e2); + t->_set(3, e3); + t->_set(4, e4); + t->_set(5, e5); + t->_set(6, e6); + return pmt_t(t); +} + +pmt_t make_tuple(const pmt_t& e0, + const pmt_t& e1, + const pmt_t& e2, + const pmt_t& e3, + const pmt_t& e4, + const pmt_t& e5, + const pmt_t& e6, + const pmt_t& e7) +{ + pmt_tuple* t = new pmt_tuple(8); + t->_set(0, e0); + t->_set(1, e1); + t->_set(2, e2); + t->_set(3, e3); + t->_set(4, e4); + t->_set(5, e5); + t->_set(6, e6); + t->_set(7, e7); + return pmt_t(t); +} + +pmt_t make_tuple(const pmt_t& e0, + const pmt_t& e1, + const pmt_t& e2, + const pmt_t& e3, + const pmt_t& e4, + const pmt_t& e5, + const pmt_t& e6, + const pmt_t& e7, + const pmt_t& e8) +{ + pmt_tuple* t = new pmt_tuple(9); + t->_set(0, e0); + t->_set(1, e1); + t->_set(2, e2); + t->_set(3, e3); + t->_set(4, e4); + t->_set(5, e5); + t->_set(6, e6); + t->_set(7, e7); + t->_set(8, e8); + return pmt_t(t); +} + +pmt_t make_tuple(const pmt_t& e0, + const pmt_t& e1, + const pmt_t& e2, + const pmt_t& e3, + const pmt_t& e4, + const pmt_t& e5, + const pmt_t& e6, + const pmt_t& e7, + const pmt_t& e8, + const pmt_t& e9) +{ + pmt_tuple* t = new pmt_tuple(10); + t->_set(0, e0); + t->_set(1, e1); + t->_set(2, e2); + t->_set(3, e3); + t->_set(4, e4); + t->_set(5, e5); + t->_set(6, e6); + t->_set(7, e7); + t->_set(8, e8); + t->_set(9, e9); + return pmt_t(t); +} + +pmt_t to_tuple(const pmt_t& x) +{ + if (x->is_tuple()) // already one + return x; + + size_t len = length(x); + pmt_tuple* t = new pmt_tuple(len); + pmt_t r = pmt_t(t); + + if (x->is_vector()) { + for (size_t i = 0; i < len; i++) + t->_set(i, _vector(x)->ref(i)); + return r; + } -pmt_t -make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8) -{ - pmt_tuple *t = new pmt_tuple(9); - t->_set(0, e0); - t->_set(1, e1); - t->_set(2, e2); - t->_set(3, e3); - t->_set(4, e4); - t->_set(5, e5); - t->_set(6, e6); - t->_set(7, e7); - t->_set(8, e8); - return pmt_t(t); -} - -pmt_t -make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8, const pmt_t &e9) -{ - pmt_tuple *t = new pmt_tuple(10); - t->_set(0, e0); - t->_set(1, e1); - t->_set(2, e2); - t->_set(3, e3); - t->_set(4, e4); - t->_set(5, e5); - t->_set(6, e6); - t->_set(7, e7); - t->_set(8, e8); - t->_set(9, e9); - return pmt_t(t); -} - -pmt_t -to_tuple(const pmt_t &x) -{ - if (x->is_tuple()) // already one - return x; - - size_t len = length(x); - pmt_tuple *t = new pmt_tuple(len); - pmt_t r = pmt_t(t); - - if (x->is_vector()){ - for (size_t i = 0; i < len; i++) - t->_set(i, _vector(x)->ref(i)); - return r; - } - - if (x->is_pair()){ - pmt_t y = x; - for (size_t i = 0; i < len; i++){ - t->_set(i, car(y)); - y = cdr(y); + if (x->is_pair()) { + pmt_t y = x; + for (size_t i = 0; i < len; i++) { + t->_set(i, car(y)); + y = cdr(y); + } + return r; } - return r; - } - throw wrong_type("pmt_to_tuple", x); + throw wrong_type("pmt_to_tuple", x); } - //////////////////////////////////////////////////////////////////////////// // Uniform Numeric Vectors //////////////////////////////////////////////////////////////////////////// -bool -is_uniform_vector(pmt_t x) -{ - return x->is_uniform_vector(); -} +bool is_uniform_vector(pmt_t x) { return x->is_uniform_vector(); } -size_t -uniform_vector_itemsize(pmt_t vector) +size_t uniform_vector_itemsize(pmt_t vector) { - if (!vector->is_uniform_vector()) - throw wrong_type("pmt_uniform_vector_itemsize", vector); - return _uniform_vector(vector)->itemsize(); + if (!vector->is_uniform_vector()) + throw wrong_type("pmt_uniform_vector_itemsize", vector); + return _uniform_vector(vector)->itemsize(); } -const void * -uniform_vector_elements(pmt_t vector, size_t &len) +const void* uniform_vector_elements(pmt_t vector, size_t& len) { - if (!vector->is_uniform_vector()) - throw wrong_type("pmt_uniform_vector_elements", vector); - return _uniform_vector(vector)->uniform_elements(len); + if (!vector->is_uniform_vector()) + throw wrong_type("pmt_uniform_vector_elements", vector); + return _uniform_vector(vector)->uniform_elements(len); } -void * -uniform_vector_writable_elements(pmt_t vector, size_t &len) +void* uniform_vector_writable_elements(pmt_t vector, size_t& len) { - if (!vector->is_uniform_vector()) - throw wrong_type("pmt_uniform_vector_writable_elements", vector); - return _uniform_vector(vector)->uniform_writable_elements(len); + if (!vector->is_uniform_vector()) + throw wrong_type("pmt_uniform_vector_writable_elements", vector); + return _uniform_vector(vector)->uniform_writable_elements(len); } - //////////////////////////////////////////////////////////////////////////// // Dictionaries //////////////////////////////////////////////////////////////////////////// @@ -823,163 +670,130 @@ uniform_vector_writable_elements(pmt_t vector, size_t &len) * Chris Okasaki, 1998, section 3.3. */ -bool -is_dict(const pmt_t &obj) -{ - return is_null(obj) || is_pair(obj); -} +bool is_dict(const pmt_t& obj) { return is_null(obj) || is_pair(obj); } -pmt_t -make_dict() -{ - return PMT_NIL; -} +pmt_t make_dict() { return PMT_NIL; } -pmt_t -dict_add(const pmt_t &dict, const pmt_t &key, const pmt_t &value) +pmt_t dict_add(const pmt_t& dict, const pmt_t& key, const pmt_t& value) { - if (is_null(dict)) - return acons(key, value, PMT_NIL); + if (is_null(dict)) + return acons(key, value, PMT_NIL); - if (dict_has_key(dict, key)) - return acons(key, value, dict_delete(dict, key)); + if (dict_has_key(dict, key)) + return acons(key, value, dict_delete(dict, key)); - return acons(key, value, dict); + return acons(key, value, dict); } -pmt_t -dict_update(const pmt_t &dict1, const pmt_t &dict2) +pmt_t dict_update(const pmt_t& dict1, const pmt_t& dict2) { - pmt_t d(dict1); - pmt_t k(dict_keys(dict2)); - while(is_pair(k)){ - d = dict_add(d, car(k), dict_ref(dict2, car(k), PMT_NIL)); - k = cdr(k); + pmt_t d(dict1); + pmt_t k(dict_keys(dict2)); + while (is_pair(k)) { + d = dict_add(d, car(k), dict_ref(dict2, car(k), PMT_NIL)); + k = cdr(k); } - return d; + return d; } -pmt_t -dict_delete(const pmt_t &dict, const pmt_t &key) +pmt_t dict_delete(const pmt_t& dict, const pmt_t& key) { - if (is_null(dict)) - return dict; + if (is_null(dict)) + return dict; - if (eqv(caar(dict), key)) - return cdr(dict); + if (eqv(caar(dict), key)) + return cdr(dict); - return cons(car(dict), dict_delete(cdr(dict), key)); + return cons(car(dict), dict_delete(cdr(dict), key)); } -pmt_t -dict_ref(const pmt_t &dict, const pmt_t &key, const pmt_t ¬_found) +pmt_t dict_ref(const pmt_t& dict, const pmt_t& key, const pmt_t& not_found) { - pmt_t p = assv(key, dict); // look for (key . value) pair - if (is_pair(p)) - return cdr(p); - else - return not_found; + pmt_t p = assv(key, dict); // look for (key . value) pair + if (is_pair(p)) + return cdr(p); + else + return not_found; } -bool -dict_has_key(const pmt_t &dict, const pmt_t &key) +bool dict_has_key(const pmt_t& dict, const pmt_t& key) { - return is_pair(assv(key, dict)); + return is_pair(assv(key, dict)); } -pmt_t -dict_items(pmt_t dict) +pmt_t dict_items(pmt_t dict) { - if (!is_dict(dict)) - throw wrong_type("pmt_dict_values", dict); + if (!is_dict(dict)) + throw wrong_type("pmt_dict_values", dict); - return dict; // equivalent to dict in the a-list case + return dict; // equivalent to dict in the a-list case } -pmt_t -dict_keys(pmt_t dict) +pmt_t dict_keys(pmt_t dict) { - if (!is_dict(dict)) - throw wrong_type("pmt_dict_keys", dict); + if (!is_dict(dict)) + throw wrong_type("pmt_dict_keys", dict); - return map(car, dict); + return map(car, dict); } -pmt_t -dict_values(pmt_t dict) +pmt_t dict_values(pmt_t dict) { - if (!is_dict(dict)) - throw wrong_type("pmt_dict_keys", dict); + if (!is_dict(dict)) + throw wrong_type("pmt_dict_keys", dict); - return map(cdr, dict); + return map(cdr, dict); } //////////////////////////////////////////////////////////////////////////// // Any //////////////////////////////////////////////////////////////////////////// -pmt_any::pmt_any(const boost::any &any) : d_any(any) {} +pmt_any::pmt_any(const boost::any& any) : d_any(any) {} -bool -is_any(pmt_t obj) -{ - return obj->is_any(); -} +bool is_any(pmt_t obj) { return obj->is_any(); } -pmt_t -make_any(const boost::any &any) -{ - return pmt_t(new pmt_any(any)); -} +pmt_t make_any(const boost::any& any) { return pmt_t(new pmt_any(any)); } -boost::any -any_ref(pmt_t obj) +boost::any any_ref(pmt_t obj) { - if (!obj->is_any()) - throw wrong_type("pmt_any_ref", obj); - return _any(obj)->ref(); + if (!obj->is_any()) + throw wrong_type("pmt_any_ref", obj); + return _any(obj)->ref(); } -void -any_set(pmt_t obj, const boost::any &any) +void any_set(pmt_t obj, const boost::any& any) { - if (!obj->is_any()) - throw wrong_type("pmt_any_set", obj); - _any(obj)->set(any); + if (!obj->is_any()) + throw wrong_type("pmt_any_set", obj); + _any(obj)->set(any); } //////////////////////////////////////////////////////////////////////////// // msg_accepter -- built from "any" //////////////////////////////////////////////////////////////////////////// -bool -is_msg_accepter(const pmt_t &obj) +bool is_msg_accepter(const pmt_t& obj) { - if (!is_any(obj)) - return false; + if (!is_any(obj)) + return false; - boost::any r = any_ref(obj); - return boost::any_cast<gr::messages::msg_accepter_sptr>(&r) != 0; + boost::any r = any_ref(obj); + return boost::any_cast<gr::messages::msg_accepter_sptr>(&r) != 0; } //! make a msg_accepter -pmt_t -make_msg_accepter(gr::messages::msg_accepter_sptr ma) -{ - return make_any(ma); -} +pmt_t make_msg_accepter(gr::messages::msg_accepter_sptr ma) { return make_any(ma); } //! Return underlying msg_accepter -gr::messages::msg_accepter_sptr -msg_accepter_ref(const pmt_t &obj) +gr::messages::msg_accepter_sptr msg_accepter_ref(const pmt_t& obj) { - try { - return boost::any_cast<gr::messages::msg_accepter_sptr>(any_ref(obj)); - } - catch (boost::bad_any_cast &e){ - throw wrong_type("pmt_msg_accepter_ref", obj); - } + try { + return boost::any_cast<gr::messages::msg_accepter_sptr>(any_ref(obj)); + } catch (boost::bad_any_cast& e) { + throw wrong_type("pmt_msg_accepter_ref", obj); + } } @@ -987,31 +801,24 @@ msg_accepter_ref(const pmt_t &obj) // Binary Large Object -- currently a u8vector //////////////////////////////////////////////////////////////////////////// -bool -is_blob(pmt_t x) -{ - return is_u8vector(x); -} +bool is_blob(pmt_t x) { return is_u8vector(x); } -pmt_t -make_blob(const void *buf, size_t len_in_bytes) +pmt_t make_blob(const void* buf, size_t len_in_bytes) { - return init_u8vector(len_in_bytes, (const uint8_t *) buf); + return init_u8vector(len_in_bytes, (const uint8_t*)buf); } -const void * -blob_data(pmt_t blob) +const void* blob_data(pmt_t blob) { - size_t len; - return uniform_vector_elements(blob, len); + size_t len; + return uniform_vector_elements(blob, len); } -size_t -blob_length(pmt_t blob) +size_t blob_length(pmt_t blob) { - size_t len; - uniform_vector_elements(blob, len); - return len; + size_t len; + uniform_vector_elements(blob, len); + return len; } @@ -1019,413 +826,356 @@ blob_length(pmt_t blob) // General Functions //////////////////////////////////////////////////////////////////////////// -bool -eq(const pmt_t& x, const pmt_t& y) -{ - return x == y; -} +bool eq(const pmt_t& x, const pmt_t& y) { return x == y; } -bool -eqv(const pmt_t& x, const pmt_t& y) +bool eqv(const pmt_t& x, const pmt_t& y) { - if (x == y) - return true; + if (x == y) + return true; - if (x->is_integer() && y->is_integer()) - return _integer(x)->value() == _integer(y)->value(); + if (x->is_integer() && y->is_integer()) + return _integer(x)->value() == _integer(y)->value(); - if (x->is_uint64() && y->is_uint64()) - return _uint64(x)->value() == _uint64(y)->value(); + if (x->is_uint64() && y->is_uint64()) + return _uint64(x)->value() == _uint64(y)->value(); - if (x->is_real() && y->is_real()) - return _real(x)->value() == _real(y)->value(); + if (x->is_real() && y->is_real()) + return _real(x)->value() == _real(y)->value(); - if (x->is_complex() && y->is_complex()) - return _complex(x)->value() == _complex(y)->value(); + if (x->is_complex() && y->is_complex()) + return _complex(x)->value() == _complex(y)->value(); - return false; + return false; } -bool -equal(const pmt_t& x, const pmt_t& y) +bool equal(const pmt_t& x, const pmt_t& y) { - if (eqv(x, y)) - return true; + if (eqv(x, y)) + return true; - if (x->is_pair() && y->is_pair()) - return equal(car(x), car(y)) && equal(cdr(x), cdr(y)); + if (x->is_pair() && y->is_pair()) + return equal(car(x), car(y)) && equal(cdr(x), cdr(y)); - if (x->is_vector() && y->is_vector()){ - pmt_vector *xv = _vector(x); - pmt_vector *yv = _vector(y); - if (xv->length() != yv->length()) - return false; + if (x->is_vector() && y->is_vector()) { + pmt_vector* xv = _vector(x); + pmt_vector* yv = _vector(y); + if (xv->length() != yv->length()) + return false; - for (unsigned i = 0; i < xv->length(); i++) - if (!equal(xv->_ref(i), yv->_ref(i))) - return false; + for (unsigned i = 0; i < xv->length(); i++) + if (!equal(xv->_ref(i), yv->_ref(i))) + return false; - return true; - } + return true; + } - if (x->is_tuple() && y->is_tuple()){ - pmt_tuple *xv = _tuple(x); - pmt_tuple *yv = _tuple(y); - if (xv->length() != yv->length()) - return false; + if (x->is_tuple() && y->is_tuple()) { + pmt_tuple* xv = _tuple(x); + pmt_tuple* yv = _tuple(y); + if (xv->length() != yv->length()) + return false; - for (unsigned i = 0; i < xv->length(); i++) - if (!equal(xv->_ref(i), yv->_ref(i))) - return false; + for (unsigned i = 0; i < xv->length(); i++) + if (!equal(xv->_ref(i), yv->_ref(i))) + return false; - return true; - } + return true; + } - if (x->is_uniform_vector() && y->is_uniform_vector()){ - pmt_uniform_vector *xv = _uniform_vector(x); - pmt_uniform_vector *yv = _uniform_vector(y); - if (xv->length() != yv->length()) - return false; + if (x->is_uniform_vector() && y->is_uniform_vector()) { + pmt_uniform_vector* xv = _uniform_vector(x); + pmt_uniform_vector* yv = _uniform_vector(y); + if (xv->length() != yv->length()) + return false; - size_t len_x, len_y; - const void *x_m = xv->uniform_elements(len_x); - const void *y_m = yv->uniform_elements(len_y); - if (memcmp(x_m, y_m, len_x) == 0) - return true; + size_t len_x, len_y; + const void* x_m = xv->uniform_elements(len_x); + const void* y_m = yv->uniform_elements(len_y); + if (memcmp(x_m, y_m, len_x) == 0) + return true; - return false; - } + return false; + } - // FIXME add other cases here... + // FIXME add other cases here... - return false; + return false; } -size_t -length(const pmt_t& x) +size_t length(const pmt_t& x) { - if (x->is_vector()) - return _vector(x)->length(); + if (x->is_vector()) + return _vector(x)->length(); - if (x->is_uniform_vector()) - return _uniform_vector(x)->length(); + if (x->is_uniform_vector()) + return _uniform_vector(x)->length(); - if (x->is_tuple()) - return _tuple(x)->length(); + if (x->is_tuple()) + return _tuple(x)->length(); - if (x->is_null()) - return 0; + if (x->is_null()) + return 0; - if (x->is_pair()) { - size_t length=1; - pmt_t it = cdr(x); - while (is_pair(it)){ - length++; - it = cdr(it); - } - if (is_null(it)) - return length; + if (x->is_pair()) { + size_t length = 1; + pmt_t it = cdr(x); + while (is_pair(it)) { + length++; + it = cdr(it); + } + if (is_null(it)) + return length; - // not a proper list - throw wrong_type("pmt_length", x); - } + // not a proper list + throw wrong_type("pmt_length", x); + } - // FIXME dictionary length (number of entries) + // FIXME dictionary length (number of entries) - throw wrong_type("pmt_length", x); + throw wrong_type("pmt_length", x); } -pmt_t -assq(pmt_t obj, pmt_t alist) +pmt_t assq(pmt_t obj, pmt_t alist) { - while (is_pair(alist)){ - pmt_t p = car(alist); - if (!is_pair(p)) // malformed alist - return PMT_F; + while (is_pair(alist)) { + pmt_t p = car(alist); + if (!is_pair(p)) // malformed alist + return PMT_F; - if (eq(obj, car(p))) - return p; + if (eq(obj, car(p))) + return p; - alist = cdr(alist); - } - return PMT_F; + alist = cdr(alist); + } + return PMT_F; } -pmt_t -assv(pmt_t obj, pmt_t alist) +pmt_t assv(pmt_t obj, pmt_t alist) { - while (is_pair(alist)){ - pmt_t p = car(alist); - if (!is_pair(p)) // malformed alist - return PMT_F; + while (is_pair(alist)) { + pmt_t p = car(alist); + if (!is_pair(p)) // malformed alist + return PMT_F; - if (eqv(obj, car(p))) - return p; + if (eqv(obj, car(p))) + return p; - alist = cdr(alist); - } - return PMT_F; + alist = cdr(alist); + } + return PMT_F; } -pmt_t -assoc(pmt_t obj, pmt_t alist) +pmt_t assoc(pmt_t obj, pmt_t alist) { - while (is_pair(alist)){ - pmt_t p = car(alist); - if (!is_pair(p)) // malformed alist - return PMT_F; + while (is_pair(alist)) { + pmt_t p = car(alist); + if (!is_pair(p)) // malformed alist + return PMT_F; - if (equal(obj, car(p))) - return p; + if (equal(obj, car(p))) + return p; - alist = cdr(alist); - } - return PMT_F; + alist = cdr(alist); + } + return PMT_F; } -pmt_t -map(pmt_t proc(const pmt_t&), pmt_t list) +pmt_t map(pmt_t proc(const pmt_t&), pmt_t list) { - pmt_t r = PMT_NIL; + pmt_t r = PMT_NIL; - while(is_pair(list)){ - r = cons(proc(car(list)), r); - list = cdr(list); - } + while (is_pair(list)) { + r = cons(proc(car(list)), r); + list = cdr(list); + } - return reverse_x(r); + return reverse_x(r); } -pmt_t -reverse(pmt_t listx) +pmt_t reverse(pmt_t listx) { - pmt_t list = listx; - pmt_t r = PMT_NIL; + pmt_t list = listx; + pmt_t r = PMT_NIL; - while(is_pair(list)){ - r = cons(car(list), r); - list = cdr(list); - } - if (is_null(list)) - return r; - else - throw wrong_type("pmt_reverse", listx); + while (is_pair(list)) { + r = cons(car(list), r); + list = cdr(list); + } + if (is_null(list)) + return r; + else + throw wrong_type("pmt_reverse", listx); } -pmt_t -reverse_x(pmt_t list) +pmt_t reverse_x(pmt_t list) { - // FIXME do it destructively - return reverse(list); + // FIXME do it destructively + return reverse(list); } -pmt_t -nth(size_t n, pmt_t list) +pmt_t nth(size_t n, pmt_t list) { - pmt_t t = nthcdr(n, list); - if (is_pair(t)) - return car(t); - else - return PMT_NIL; + pmt_t t = nthcdr(n, list); + if (is_pair(t)) + return car(t); + else + return PMT_NIL; } -pmt_t -nthcdr(size_t n, pmt_t list) +pmt_t nthcdr(size_t n, pmt_t list) { - if (!(is_pair(list) || is_null(list))) - throw wrong_type("pmt_nthcdr", list); + if (!(is_pair(list) || is_null(list))) + throw wrong_type("pmt_nthcdr", list); - while (n > 0){ - if (is_pair(list)){ - list = cdr(list); - n--; - continue; + while (n > 0) { + if (is_pair(list)) { + list = cdr(list); + n--; + continue; + } + if (is_null(list)) + return PMT_NIL; + else + throw wrong_type("pmt_nthcdr: not a LIST", list); } - if (is_null(list)) - return PMT_NIL; - else - throw wrong_type("pmt_nthcdr: not a LIST", list); - } - return list; + return list; } -pmt_t -memq(pmt_t obj, pmt_t list) +pmt_t memq(pmt_t obj, pmt_t list) { - while (is_pair(list)){ - if (eq(obj, car(list))) - return list; - list = cdr(list); - } - return PMT_F; + while (is_pair(list)) { + if (eq(obj, car(list))) + return list; + list = cdr(list); + } + return PMT_F; } -pmt_t -memv(pmt_t obj, pmt_t list) +pmt_t memv(pmt_t obj, pmt_t list) { - while (is_pair(list)){ - if (eqv(obj, car(list))) - return list; - list = cdr(list); - } - return PMT_F; + while (is_pair(list)) { + if (eqv(obj, car(list))) + return list; + list = cdr(list); + } + return PMT_F; } -pmt_t -member(pmt_t obj, pmt_t list) +pmt_t member(pmt_t obj, pmt_t list) { - while (is_pair(list)){ - if (equal(obj, car(list))) - return list; - list = cdr(list); - } - return PMT_F; + while (is_pair(list)) { + if (equal(obj, car(list))) + return list; + list = cdr(list); + } + return PMT_F; } -bool -subsetp(pmt_t list1, pmt_t list2) +bool subsetp(pmt_t list1, pmt_t list2) { - while (is_pair(list1)){ - pmt_t p = car(list1); - if (is_false(memv(p, list2))) - return false; - list1 = cdr(list1); - } - return true; + while (is_pair(list1)) { + pmt_t p = car(list1); + if (is_false(memv(p, list2))) + return false; + list1 = cdr(list1); + } + return true; } -pmt_t -list1(const pmt_t& x1) -{ - return cons(x1, PMT_NIL); -} +pmt_t list1(const pmt_t& x1) { return cons(x1, PMT_NIL); } -pmt_t -list2(const pmt_t& x1, const pmt_t& x2) -{ - return cons(x1, cons(x2, PMT_NIL)); -} +pmt_t list2(const pmt_t& x1, const pmt_t& x2) { return cons(x1, cons(x2, PMT_NIL)); } -pmt_t -list3(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3) +pmt_t list3(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3) { - return cons(x1, cons(x2, cons(x3, PMT_NIL))); + return cons(x1, cons(x2, cons(x3, PMT_NIL))); } -pmt_t -list4(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4) +pmt_t list4(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4) { - return cons(x1, cons(x2, cons(x3, cons(x4, PMT_NIL)))); + return cons(x1, cons(x2, cons(x3, cons(x4, PMT_NIL)))); } -pmt_t -list5(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5) +pmt_t list5( + const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5) { - return cons(x1, cons(x2, cons(x3, cons(x4, cons(x5, PMT_NIL))))); + return cons(x1, cons(x2, cons(x3, cons(x4, cons(x5, PMT_NIL))))); } -pmt_t -list6(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5, const pmt_t& x6) +pmt_t list6(const pmt_t& x1, + const pmt_t& x2, + const pmt_t& x3, + const pmt_t& x4, + const pmt_t& x5, + const pmt_t& x6) { - return cons(x1, cons(x2, cons(x3, cons(x4, cons(x5, cons(x6, PMT_NIL)))))); + return cons(x1, cons(x2, cons(x3, cons(x4, cons(x5, cons(x6, PMT_NIL)))))); } -pmt_t -list_add(pmt_t list, const pmt_t& item) +pmt_t list_add(pmt_t list, const pmt_t& item) { - return reverse(cons(item, reverse(list))); + return reverse(cons(item, reverse(list))); } -pmt_t -list_rm(pmt_t list, const pmt_t& item) +pmt_t list_rm(pmt_t list, const pmt_t& item) { - if(is_pair(list)){ - pmt_t left = car(list); - pmt_t right = cdr(list); - if(!equal(left, item)){ - return cons(left, list_rm(right, item)); + if (is_pair(list)) { + pmt_t left = car(list); + pmt_t right = cdr(list); + if (!equal(left, item)) { + return cons(left, list_rm(right, item)); } else { - return list_rm(right, item); + return list_rm(right, item); } } else { - return list; + return list; } } -bool -list_has(pmt_t list, const pmt_t& item) +bool list_has(pmt_t list, const pmt_t& item) { - if(is_pair(list)){ - pmt_t left = car(list); - pmt_t right = cdr(list); - if(equal(left,item)) - return true; - return list_has(right, item); - } else { - if(is_null(list)) - return false; - throw std::runtime_error("list contains invalid format!"); - } + if (is_pair(list)) { + pmt_t left = car(list); + pmt_t right = cdr(list); + if (equal(left, item)) + return true; + return list_has(right, item); + } else { + if (is_null(list)) + return false; + throw std::runtime_error("list contains invalid format!"); + } } -pmt_t -caar(pmt_t pair) -{ - return (car(car(pair))); -} +pmt_t caar(pmt_t pair) { return (car(car(pair))); } -pmt_t -cadr(pmt_t pair) -{ - return car(cdr(pair)); -} +pmt_t cadr(pmt_t pair) { return car(cdr(pair)); } -pmt_t -cdar(pmt_t pair) -{ - return cdr(car(pair)); -} +pmt_t cdar(pmt_t pair) { return cdr(car(pair)); } -pmt_t -cddr(pmt_t pair) -{ - return cdr(cdr(pair)); -} +pmt_t cddr(pmt_t pair) { return cdr(cdr(pair)); } -pmt_t -caddr(pmt_t pair) -{ - return car(cdr(cdr(pair))); -} +pmt_t caddr(pmt_t pair) { return car(cdr(cdr(pair))); } -pmt_t -cadddr(pmt_t pair) -{ - return car(cdr(cdr(cdr(pair)))); -} +pmt_t cadddr(pmt_t pair) { return car(cdr(cdr(cdr(pair)))); } -bool -is_eof_object(pmt_t obj) -{ - return eq(obj, PMT_EOF); -} +bool is_eof_object(pmt_t obj) { return eq(obj, PMT_EOF); } -void -dump_sizeof() +void dump_sizeof() { - printf("sizeof(pmt_t) = %3zd\n", sizeof(pmt_t)); - printf("sizeof(pmt_base) = %3zd\n", sizeof(pmt_base)); - printf("sizeof(pmt_bool) = %3zd\n", sizeof(pmt_bool)); - printf("sizeof(pmt_symbol) = %3zd\n", sizeof(pmt_symbol)); - printf("sizeof(pmt_integer) = %3zd\n", sizeof(pmt_integer)); - printf("sizeof(pmt_uint64) = %3zd\n", sizeof(pmt_uint64)); - printf("sizeof(pmt_real) = %3zd\n", sizeof(pmt_real)); - printf("sizeof(pmt_complex) = %3zd\n", sizeof(pmt_complex)); - printf("sizeof(pmt_null) = %3zd\n", sizeof(pmt_null)); - printf("sizeof(pmt_pair) = %3zd\n", sizeof(pmt_pair)); - printf("sizeof(pmt_vector) = %3zd\n", sizeof(pmt_vector)); - printf("sizeof(pmt_uniform_vector) = %3zd\n", sizeof(pmt_uniform_vector)); + printf("sizeof(pmt_t) = %3zd\n", sizeof(pmt_t)); + printf("sizeof(pmt_base) = %3zd\n", sizeof(pmt_base)); + printf("sizeof(pmt_bool) = %3zd\n", sizeof(pmt_bool)); + printf("sizeof(pmt_symbol) = %3zd\n", sizeof(pmt_symbol)); + printf("sizeof(pmt_integer) = %3zd\n", sizeof(pmt_integer)); + printf("sizeof(pmt_uint64) = %3zd\n", sizeof(pmt_uint64)); + printf("sizeof(pmt_real) = %3zd\n", sizeof(pmt_real)); + printf("sizeof(pmt_complex) = %3zd\n", sizeof(pmt_complex)); + printf("sizeof(pmt_null) = %3zd\n", sizeof(pmt_null)); + printf("sizeof(pmt_pair) = %3zd\n", sizeof(pmt_pair)); + printf("sizeof(pmt_vector) = %3zd\n", sizeof(pmt_vector)); + printf("sizeof(pmt_uniform_vector) = %3zd\n", sizeof(pmt_uniform_vector)); } } /* namespace pmt */ diff --git a/gnuradio-runtime/lib/pmt/pmt_int.h b/gnuradio-runtime/lib/pmt/pmt_int.h index 5f02518a62..ea3dd5e2c9 100644 --- a/gnuradio-runtime/lib/pmt/pmt_int.h +++ b/gnuradio-runtime/lib/pmt/pmt_int.h @@ -39,163 +39,166 @@ namespace pmt { class pmt_bool : public pmt_base { public: - pmt_bool(); - //~pmt_bool(){} + pmt_bool(); + //~pmt_bool(){} - bool is_bool() const { return true; } + bool is_bool() const { return true; } }; class pmt_symbol : public pmt_base { - std::string d_name; - pmt_t d_next; + std::string d_name; + pmt_t d_next; public: - pmt_symbol(const std::string &name); - //~pmt_symbol(){} + pmt_symbol(const std::string& name); + //~pmt_symbol(){} - bool is_symbol() const { return true; } - const std::string name() { return d_name; } + bool is_symbol() const { return true; } + const std::string name() { return d_name; } - pmt_t next() { return d_next; } // symbol table link - void set_next(pmt_t next) { d_next = next; } + pmt_t next() { return d_next; } // symbol table link + void set_next(pmt_t next) { d_next = next; } }; class pmt_integer : public pmt_base { public: - long d_value; + long d_value; - pmt_integer(long value); - //~pmt_integer(){} + pmt_integer(long value); + //~pmt_integer(){} - bool is_number() const { return true; } - bool is_integer() const { return true; } - long value() const { return d_value; } + bool is_number() const { return true; } + bool is_integer() const { return true; } + long value() const { return d_value; } }; class pmt_uint64 : public pmt_base { public: - uint64_t d_value; + uint64_t d_value; - pmt_uint64(uint64_t value); - //~pmt_uint64(){} + pmt_uint64(uint64_t value); + //~pmt_uint64(){} - bool is_number() const { return true; } - bool is_uint64() const { return true; } - uint64_t value() const { return d_value; } + bool is_number() const { return true; } + bool is_uint64() const { return true; } + uint64_t value() const { return d_value; } }; class pmt_real : public pmt_base { public: - double d_value; + double d_value; - pmt_real(double value); - //~pmt_real(){} + pmt_real(double value); + //~pmt_real(){} - bool is_number() const { return true; } - bool is_real() const { return true; } - double value() const { return d_value; } + bool is_number() const { return true; } + bool is_real() const { return true; } + double value() const { return d_value; } }; class pmt_complex : public pmt_base { public: - std::complex<double> d_value; + std::complex<double> d_value; - pmt_complex(std::complex<double> value); - //~pmt_complex(){} + pmt_complex(std::complex<double> value); + //~pmt_complex(){} - bool is_number() const { return true; } - bool is_complex() const { return true; } - std::complex<double> value() const { return d_value; } + bool is_number() const { return true; } + bool is_complex() const { return true; } + std::complex<double> value() const { return d_value; } }; -class pmt_null : public pmt_base +class pmt_null : public pmt_base { public: - pmt_null(); - //~pmt_null(){} + pmt_null(); + //~pmt_null(){} - bool is_null() const { return true; } + bool is_null() const { return true; } }; class pmt_pair : public pmt_base { public: - pmt_t d_car; - pmt_t d_cdr; + pmt_t d_car; + pmt_t d_cdr; - pmt_pair(const pmt_t& car, const pmt_t& cdr); - //~pmt_pair(){}; + pmt_pair(const pmt_t& car, const pmt_t& cdr); + //~pmt_pair(){}; - bool is_pair() const { return true; } - pmt_t car() const { return d_car; } - pmt_t cdr() const { return d_cdr; } + bool is_pair() const { return true; } + pmt_t car() const { return d_car; } + pmt_t cdr() const { return d_cdr; } - void set_car(pmt_t car) { d_car = car; } - void set_cdr(pmt_t cdr) { d_cdr = cdr; } + void set_car(pmt_t car) { d_car = car; } + void set_cdr(pmt_t cdr) { d_cdr = cdr; } }; class pmt_vector : public pmt_base { - std::vector<pmt_t> d_v; + std::vector<pmt_t> d_v; public: - pmt_vector(size_t len, pmt_t fill); - //~pmt_vector(); + pmt_vector(size_t len, pmt_t fill); + //~pmt_vector(); - bool is_vector() const { return true; } - pmt_t ref(size_t k) const; - void set(size_t k, pmt_t obj); - void fill(pmt_t fill); - size_t length() const { return d_v.size(); } + bool is_vector() const { return true; } + pmt_t ref(size_t k) const; + void set(size_t k, pmt_t obj); + void fill(pmt_t fill); + size_t length() const { return d_v.size(); } - pmt_t _ref(size_t k) const { return d_v[k]; } + pmt_t _ref(size_t k) const { return d_v[k]; } }; class pmt_tuple : public pmt_base { - std::vector<pmt_t> d_v; + std::vector<pmt_t> d_v; public: - pmt_tuple(size_t len); - //~pmt_tuple(); + pmt_tuple(size_t len); + //~pmt_tuple(); - bool is_tuple() const { return true; } - pmt_t ref(size_t k) const; - size_t length() const { return d_v.size(); } + bool is_tuple() const { return true; } + pmt_t ref(size_t k) const; + size_t length() const { return d_v.size(); } - pmt_t _ref(size_t k) const { return d_v[k]; } - void _set(size_t k, pmt_t v) { d_v[k] = v; } + pmt_t _ref(size_t k) const { return d_v[k]; } + void _set(size_t k, pmt_t v) { d_v[k] = v; } }; class pmt_any : public pmt_base { - boost::any d_any; + boost::any d_any; public: - pmt_any(const boost::any &any); - //~pmt_any(); + pmt_any(const boost::any& any); + //~pmt_any(); - bool is_any() const { return true; } - const boost::any &ref() const { return d_any; } - void set(const boost::any &any) { d_any = any; } + bool is_any() const { return true; } + const boost::any& ref() const { return d_any; } + void set(const boost::any& any) { d_any = any; } }; class pmt_uniform_vector : public pmt_base { public: - bool is_uniform_vector() const { return true; } - virtual const void *uniform_elements(size_t &len) = 0; - virtual void *uniform_writable_elements(size_t &len) = 0; - virtual size_t length() const = 0; - virtual size_t itemsize() const = 0; - virtual const std::string string_ref(size_t k) const { return std::string("not implemented"); } + bool is_uniform_vector() const { return true; } + virtual const void* uniform_elements(size_t& len) = 0; + virtual void* uniform_writable_elements(size_t& len) = 0; + virtual size_t length() const = 0; + virtual size_t itemsize() const = 0; + virtual const std::string string_ref(size_t k) const + { + return std::string("not implemented"); + } }; } /* namespace pmt */ diff --git a/gnuradio-runtime/lib/pmt/pmt_io.cc b/gnuradio-runtime/lib/pmt/pmt_io.cc index e63bae4994..2c39a0872f 100644 --- a/gnuradio-runtime/lib/pmt/pmt_io.cc +++ b/gnuradio-runtime/lib/pmt/pmt_io.cc @@ -31,146 +31,122 @@ namespace pmt { -static void -write_list_tail(pmt_t obj, std::ostream &port) +static void write_list_tail(pmt_t obj, std::ostream& port) { - write(car(obj), port); // write the car - obj = cdr(obj); // step to cdr - - if (is_null(obj)) // () - port << ")"; - - else if (is_pair(obj)){ // normal list - port << " "; - write_list_tail(obj, port); - } - else { // dotted pair - port << " . "; - write(obj, port); - port << ")"; - } + write(car(obj), port); // write the car + obj = cdr(obj); // step to cdr + + if (is_null(obj)) // () + port << ")"; + + else if (is_pair(obj)) { // normal list + port << " "; + write_list_tail(obj, port); + } else { // dotted pair + port << " . "; + write(obj, port); + port << ")"; + } } -void -write(pmt_t obj, std::ostream &port) +void write(pmt_t obj, std::ostream& port) { - if (is_bool(obj)){ - if (is_true(obj)) - port << "#t"; - else - port << "#f"; - } - else if (is_symbol(obj)){ - port << symbol_to_string(obj); - } - else if (is_number(obj)){ - if (is_integer(obj)) - port << to_long(obj); - else if (is_uint64(obj)) - port << to_uint64(obj); - else if (is_real(obj)) - port << to_double(obj); - else if (is_complex(obj)){ - std::complex<double> c = to_complex(obj); - port << c.real() << '+' << c.imag() << 'i'; - } - else - goto error; - } - else if (is_null(obj)){ - port << "()"; - } - else if (is_pair(obj)){ - port << "("; - write_list_tail(obj, port); - } - else if (is_tuple(obj)){ - port << "{"; - size_t len = length(obj); - if (len > 0){ - port << tuple_ref(obj, 0); - for (size_t i = 1; i < len; i++) - port << " " << tuple_ref(obj, i); - } - port << "}"; - } - else if (is_vector(obj)){ - port << "#("; - size_t len = length(obj); - if (len > 0){ - port << vector_ref(obj, 0); - for (size_t i = 1; i < len; i++) - port << " " << vector_ref(obj, i); + if (is_bool(obj)) { + if (is_true(obj)) + port << "#t"; + else + port << "#f"; + } else if (is_symbol(obj)) { + port << symbol_to_string(obj); + } else if (is_number(obj)) { + if (is_integer(obj)) + port << to_long(obj); + else if (is_uint64(obj)) + port << to_uint64(obj); + else if (is_real(obj)) + port << to_double(obj); + else if (is_complex(obj)) { + std::complex<double> c = to_complex(obj); + port << c.real() << '+' << c.imag() << 'i'; + } else + goto error; + } else if (is_null(obj)) { + port << "()"; + } else if (is_pair(obj)) { + port << "("; + write_list_tail(obj, port); + } else if (is_tuple(obj)) { + port << "{"; + size_t len = length(obj); + if (len > 0) { + port << tuple_ref(obj, 0); + for (size_t i = 1; i < len; i++) + port << " " << tuple_ref(obj, i); + } + port << "}"; + } else if (is_vector(obj)) { + port << "#("; + size_t len = length(obj); + if (len > 0) { + port << vector_ref(obj, 0); + for (size_t i = 1; i < len; i++) + port << " " << vector_ref(obj, i); + } + port << ")"; + } else if (is_dict(obj)) { + // FIXME + // port << "#<dict " << obj << ">"; + port << "#<dict>"; + } else if (is_uniform_vector(obj)) { + port << "#["; + size_t len = length(obj); + if (len) { + pmt_uniform_vector* uv = static_cast<pmt_uniform_vector*>(obj.get()); + port << uv->string_ref(0); + for (size_t i = 1; i < len; i++) + port << " " << uv->string_ref(i); + } + port << "]"; + } else { + error: + // FIXME + // port << "#<" << obj << ">"; + port << "#<unknown>"; } - port << ")"; - } - else if (is_dict(obj)){ - // FIXME - // port << "#<dict " << obj << ">"; - port << "#<dict>"; - } - else if (is_uniform_vector(obj)){ - port << "#["; - size_t len = length(obj); - if (len) - { - pmt_uniform_vector *uv = static_cast<pmt_uniform_vector*>(obj.get()); - port << uv->string_ref(0); - for (size_t i = 1; i < len; i++) - port << " " << uv->string_ref(i); - } - port << "]"; - } - else { - error: - // FIXME - // port << "#<" << obj << ">"; - port << "#<unknown>"; - } } -std::ostream& operator<<(std::ostream &os, pmt_t obj) +std::ostream& operator<<(std::ostream& os, pmt_t obj) { - write(obj, os); - return os; + write(obj, os); + return os; } -std::string -write_string(pmt_t obj) +std::string write_string(pmt_t obj) { - std::ostringstream s; - s << obj; - return s.str(); + std::ostringstream s; + s << obj; + return s.str(); } -pmt_t -read(std::istream &port) +pmt_t read(std::istream& port) { - throw notimplemented("notimplemented: pmt::read", PMT_NIL); + throw notimplemented("notimplemented: pmt::read", PMT_NIL); } -void -serialize(pmt_t obj, std::ostream &sink) +void serialize(pmt_t obj, std::ostream& sink) { - throw notimplemented("notimplemented: pmt::serialize", obj); + throw notimplemented("notimplemented: pmt::serialize", obj); } /*! * \brief Create obj from portable byte-serial representation */ -pmt_t -deserialize(std::istream &source) +pmt_t deserialize(std::istream& source) { - throw notimplemented("notimplemented: pmt::deserialize", PMT_NIL); + throw notimplemented("notimplemented: pmt::deserialize", PMT_NIL); } } /* namespace pmt */ -void -pmt::print(pmt_t v) -{ - std::cout << write_string(v) << std::endl; -} - - +void pmt::print(pmt_t v) { std::cout << write_string(v) << std::endl; } diff --git a/gnuradio-runtime/lib/pmt/pmt_pool.cc b/gnuradio-runtime/lib/pmt/pmt_pool.cc index 8864f79dc2..066d31296f 100644 --- a/gnuradio-runtime/lib/pmt/pmt_pool.cc +++ b/gnuradio-runtime/lib/pmt/pmt_pool.cc @@ -29,85 +29,85 @@ namespace pmt { -static inline size_t -ROUNDUP(size_t x, size_t stride) +static inline size_t ROUNDUP(size_t x, size_t stride) { - return ((((x) + (stride) - 1)/(stride)) * (stride)); + return ((((x) + (stride)-1) / (stride)) * (stride)); } -pmt_pool::pmt_pool(size_t itemsize, size_t alignment, - size_t allocation_size, size_t max_items) - : d_itemsize(ROUNDUP(itemsize, alignment)), - d_alignment(alignment), - d_allocation_size(std::max(allocation_size, 16 * itemsize)), - d_max_items(max_items), d_n_items(0), - d_freelist(0) +pmt_pool::pmt_pool(size_t itemsize, + size_t alignment, + size_t allocation_size, + size_t max_items) + : d_itemsize(ROUNDUP(itemsize, alignment)), + d_alignment(alignment), + d_allocation_size(std::max(allocation_size, 16 * itemsize)), + d_max_items(max_items), + d_n_items(0), + d_freelist(0) { } pmt_pool::~pmt_pool() { - for (unsigned int i = 0; i < d_allocations.size(); i++){ - delete [] d_allocations[i]; - } + for (unsigned int i = 0; i < d_allocations.size(); i++) { + delete[] d_allocations[i]; + } } -void * -pmt_pool::malloc() +void* pmt_pool::malloc() { - scoped_lock guard(d_mutex); - item *p; - - if (d_max_items != 0){ - while (d_n_items >= d_max_items) - d_cond.wait(guard); - } - - if (d_freelist){ // got something? + scoped_lock guard(d_mutex); + item* p; + + if (d_max_items != 0) { + while (d_n_items >= d_max_items) + d_cond.wait(guard); + } + + if (d_freelist) { // got something? + p = d_freelist; + d_freelist = p->d_next; + d_n_items++; + return p; + } + + // allocate a new chunk + char* alloc = new char[d_allocation_size + d_alignment - 1]; + d_allocations.push_back(alloc); + + // get the alignment we require + char* start = (char*)(((uintptr_t)alloc + d_alignment - 1) & -d_alignment); + char* end = alloc + d_allocation_size + d_alignment - 1; + size_t n = (end - start) / d_itemsize; + + // link the new items onto the free list. + p = (item*)start; + for (size_t i = 0; i < n; i++) { + p->d_next = d_freelist; + d_freelist = p; + p = (item*)((char*)p + d_itemsize); + } + + // now return the first one p = d_freelist; d_freelist = p->d_next; d_n_items++; return p; - } - - // allocate a new chunk - char *alloc = new char[d_allocation_size + d_alignment - 1]; - d_allocations.push_back(alloc); - - // get the alignment we require - char *start = (char *)(((uintptr_t)alloc + d_alignment-1) & -d_alignment); - char *end = alloc + d_allocation_size + d_alignment - 1; - size_t n = (end - start) / d_itemsize; - - // link the new items onto the free list. - p = (item *) start; - for (size_t i = 0; i < n; i++){ - p->d_next = d_freelist; - d_freelist = p; - p = (item *)((char *) p + d_itemsize); - } - - // now return the first one - p = d_freelist; - d_freelist = p->d_next; - d_n_items++; - return p; } -void -pmt_pool::free(void *foo) +void pmt_pool::free(void* foo) { - if (!foo) - return; + if (!foo) + return; - scoped_lock guard(d_mutex); + scoped_lock guard(d_mutex); - item *p = (item *) foo; - p->d_next = d_freelist; - d_freelist = p; - d_n_items--; - if (d_max_items != 0) - d_cond.notify_one(); + item* p = (item*)foo; + p->d_next = d_freelist; + d_freelist = p; + d_n_items--; + if (d_max_items != 0) + d_cond.notify_one(); } } /* namespace pmt */ diff --git a/gnuradio-runtime/lib/pmt/pmt_serialize.cc b/gnuradio-runtime/lib/pmt/pmt_serialize.cc index e7d61030af..4f77c0378a 100644 --- a/gnuradio-runtime/lib/pmt/pmt_serialize.cc +++ b/gnuradio-runtime/lib/pmt/pmt_serialize.cc @@ -31,68 +31,63 @@ namespace pmt { -static pmt_t parse_pair(std::streambuf &sb); +static pmt_t parse_pair(std::streambuf& sb); // ---------------------------------------------------------------- // output primitives // ---------------------------------------------------------------- -static bool -serialize_untagged_u8(unsigned int i, std::streambuf &sb) +static bool serialize_untagged_u8(unsigned int i, std::streambuf& sb) { - return sb.sputc((i >> 0) & 0xff) != std::streambuf::traits_type::eof(); + return sb.sputc((i >> 0) & 0xff) != std::streambuf::traits_type::eof(); } // always writes big-endian -static bool -serialize_untagged_u16(unsigned int i, std::streambuf &sb) +static bool serialize_untagged_u16(unsigned int i, std::streambuf& sb) { - sb.sputc((i >> 8) & 0xff); - return sb.sputc((i >> 0) & 0xff) != std::streambuf::traits_type::eof(); + sb.sputc((i >> 8) & 0xff); + return sb.sputc((i >> 0) & 0xff) != std::streambuf::traits_type::eof(); } // always writes big-endian -static bool -serialize_untagged_u32(unsigned int i, std::streambuf &sb) +static bool serialize_untagged_u32(unsigned int i, std::streambuf& sb) { - sb.sputc((i >> 24) & 0xff); - sb.sputc((i >> 16) & 0xff); - sb.sputc((i >> 8) & 0xff); - return sb.sputc((i >> 0) & 0xff) != std::streambuf::traits_type::eof(); + sb.sputc((i >> 24) & 0xff); + sb.sputc((i >> 16) & 0xff); + sb.sputc((i >> 8) & 0xff); + return sb.sputc((i >> 0) & 0xff) != std::streambuf::traits_type::eof(); } -static bool -serialize_untagged_f64(double i, std::streambuf &sb) +static bool serialize_untagged_f64(double i, std::streambuf& sb) { - typedef union { - double id; - uint64_t ii; - } iu_t; - iu_t iu; - iu.id = i; - sb.sputc((iu.ii >> 56) & 0xff); - sb.sputc((iu.ii >> 48) & 0xff); - sb.sputc((iu.ii >> 40) & 0xff); - sb.sputc((iu.ii >> 32) & 0xff); - sb.sputc((iu.ii >> 24) & 0xff); - sb.sputc((iu.ii >> 16) & 0xff); - sb.sputc((iu.ii >> 8) & 0xff); - return sb.sputc((iu.ii >> 0) & 0xff) != std::streambuf::traits_type::eof(); + typedef union { + double id; + uint64_t ii; + } iu_t; + iu_t iu; + iu.id = i; + sb.sputc((iu.ii >> 56) & 0xff); + sb.sputc((iu.ii >> 48) & 0xff); + sb.sputc((iu.ii >> 40) & 0xff); + sb.sputc((iu.ii >> 32) & 0xff); + sb.sputc((iu.ii >> 24) & 0xff); + sb.sputc((iu.ii >> 16) & 0xff); + sb.sputc((iu.ii >> 8) & 0xff); + return sb.sputc((iu.ii >> 0) & 0xff) != std::streambuf::traits_type::eof(); } // always writes big-endian -static bool -serialize_untagged_u64(uint64_t i, std::streambuf &sb) +static bool serialize_untagged_u64(uint64_t i, std::streambuf& sb) { - sb.sputc((i >> 56) & 0xff); - sb.sputc((i >> 48) & 0xff); - sb.sputc((i >> 40) & 0xff); - sb.sputc((i >> 32) & 0xff); - sb.sputc((i >> 24) & 0xff); - sb.sputc((i >> 16) & 0xff); - sb.sputc((i >> 8) & 0xff); - return sb.sputc((i >> 0) & 0xff) != std::streambuf::traits_type::eof(); + sb.sputc((i >> 56) & 0xff); + sb.sputc((i >> 48) & 0xff); + sb.sputc((i >> 40) & 0xff); + sb.sputc((i >> 32) & 0xff); + sb.sputc((i >> 24) & 0xff); + sb.sputc((i >> 16) & 0xff); + sb.sputc((i >> 8) & 0xff); + return sb.sputc((i >> 0) & 0xff) != std::streambuf::traits_type::eof(); } // ---------------------------------------------------------------- @@ -101,134 +96,127 @@ serialize_untagged_u64(uint64_t i, std::streambuf &sb) // always reads big-endian -static bool -deserialize_untagged_u8(uint8_t *ip, std::streambuf &sb) +static bool deserialize_untagged_u8(uint8_t* ip, std::streambuf& sb) { - std::streambuf::traits_type::int_type t; - int i; + std::streambuf::traits_type::int_type t; + int i; - t = sb.sbumpc(); - i = t & 0xff; + t = sb.sbumpc(); + i = t & 0xff; - *ip = i; - return t != std::streambuf::traits_type::eof(); + *ip = i; + return t != std::streambuf::traits_type::eof(); } // always reads big-endian -static bool -deserialize_untagged_u16(uint16_t *ip, std::streambuf &sb) +static bool deserialize_untagged_u16(uint16_t* ip, std::streambuf& sb) { - std::streambuf::traits_type::int_type t; - int i; + std::streambuf::traits_type::int_type t; + int i; - t = sb.sbumpc(); - i = t & 0xff; + t = sb.sbumpc(); + i = t & 0xff; - t = sb.sbumpc(); - i = (i << 8) | (t & 0xff); + t = sb.sbumpc(); + i = (i << 8) | (t & 0xff); - *ip = i; - return t != std::streambuf::traits_type::eof(); + *ip = i; + return t != std::streambuf::traits_type::eof(); } // always reads big-endian -static bool -deserialize_untagged_u32(uint32_t *ip, std::streambuf &sb) +static bool deserialize_untagged_u32(uint32_t* ip, std::streambuf& sb) { - std::streambuf::traits_type::int_type t; - int i; + std::streambuf::traits_type::int_type t; + int i; - t = sb.sbumpc(); - i = t & 0xff; + t = sb.sbumpc(); + i = t & 0xff; - t = sb.sbumpc(); - i = (i << 8) | (t & 0xff); - t = sb.sbumpc(); - i = (i << 8) | (t & 0xff); - t = sb.sbumpc(); - i = (i << 8) | (t & 0xff); + t = sb.sbumpc(); + i = (i << 8) | (t & 0xff); + t = sb.sbumpc(); + i = (i << 8) | (t & 0xff); + t = sb.sbumpc(); + i = (i << 8) | (t & 0xff); - *ip = i; - return t != std::streambuf::traits_type::eof(); + *ip = i; + return t != std::streambuf::traits_type::eof(); } // always reads big-endian -static bool -deserialize_untagged_u64(uint64_t *ip, std::streambuf &sb) +static bool deserialize_untagged_u64(uint64_t* ip, std::streambuf& sb) { - std::streambuf::traits_type::int_type t; - uint64_t i; - - t = sb.sbumpc(); - i = t & 0xff; - - t = sb.sbumpc(); - i = (i << 8) | (t & 0xff); - t = sb.sbumpc(); - i = (i << 8) | (t & 0xff); - t = sb.sbumpc(); - i = (i << 8) | (t & 0xff); - t = sb.sbumpc(); - i = (i << 8) | (t & 0xff); - t = sb.sbumpc(); - i = (i << 8) | (t & 0xff); - t = sb.sbumpc(); - i = (i << 8) | (t & 0xff); - t = sb.sbumpc(); - i = (i << 8) | (t & 0xff); - - *ip = i; - return t != std::streambuf::traits_type::eof(); + std::streambuf::traits_type::int_type t; + uint64_t i; + + t = sb.sbumpc(); + i = t & 0xff; + + t = sb.sbumpc(); + i = (i << 8) | (t & 0xff); + t = sb.sbumpc(); + i = (i << 8) | (t & 0xff); + t = sb.sbumpc(); + i = (i << 8) | (t & 0xff); + t = sb.sbumpc(); + i = (i << 8) | (t & 0xff); + t = sb.sbumpc(); + i = (i << 8) | (t & 0xff); + t = sb.sbumpc(); + i = (i << 8) | (t & 0xff); + t = sb.sbumpc(); + i = (i << 8) | (t & 0xff); + + *ip = i; + return t != std::streambuf::traits_type::eof(); } -static bool -deserialize_untagged_f64(double *ip, std::streambuf &sb) +static bool deserialize_untagged_f64(double* ip, std::streambuf& sb) { - std::streambuf::traits_type::int_type t; - - typedef union { - double id; - uint64_t ii; - } iu_t; - - iu_t iu; - - t = sb.sbumpc(); - iu.ii = t & 0xff; - - t = sb.sbumpc(); - iu.ii = (iu.ii<<8) | (t & 0xff); - t = sb.sbumpc(); - iu.ii = (iu.ii<<8) | (t & 0xff); - t = sb.sbumpc(); - iu.ii = (iu.ii<<8) | (t & 0xff); - t = sb.sbumpc(); - iu.ii = (iu.ii<<8) | (t & 0xff); - t = sb.sbumpc(); - iu.ii = (iu.ii<<8) | (t & 0xff); - t = sb.sbumpc(); - iu.ii = (iu.ii<<8) | (t & 0xff); - t = sb.sbumpc(); - iu.ii = (iu.ii<<8) | (t & 0xff); - - *ip = iu.id; - return t != std::streambuf::traits_type::eof(); + std::streambuf::traits_type::int_type t; + + typedef union { + double id; + uint64_t ii; + } iu_t; + + iu_t iu; + + t = sb.sbumpc(); + iu.ii = t & 0xff; + + t = sb.sbumpc(); + iu.ii = (iu.ii << 8) | (t & 0xff); + t = sb.sbumpc(); + iu.ii = (iu.ii << 8) | (t & 0xff); + t = sb.sbumpc(); + iu.ii = (iu.ii << 8) | (t & 0xff); + t = sb.sbumpc(); + iu.ii = (iu.ii << 8) | (t & 0xff); + t = sb.sbumpc(); + iu.ii = (iu.ii << 8) | (t & 0xff); + t = sb.sbumpc(); + iu.ii = (iu.ii << 8) | (t & 0xff); + t = sb.sbumpc(); + iu.ii = (iu.ii << 8) | (t & 0xff); + + *ip = iu.id; + return t != std::streambuf::traits_type::eof(); } -static bool -deserialize_tuple(pmt_t *tuple, std::streambuf &sb) +static bool deserialize_tuple(pmt_t* tuple, std::streambuf& sb) { uint32_t nitems; bool ok = deserialize_untagged_u32(&nitems, sb); pmt_t list(PMT_NIL); - for(uint32_t i=0; i<nitems; i++) { - pmt_t item = deserialize(sb); - if(eq(list, PMT_NIL)) { - list = list1(item); - } - else { - list = list_add(list, item); - } + for (uint32_t i = 0; i < nitems; i++) { + pmt_t item = deserialize(sb); + if (eq(list, PMT_NIL)) { + list = list1(item); + } else { + list = list_add(list, item); + } } (*tuple) = to_tuple(list); return ok; @@ -240,283 +228,284 @@ deserialize_tuple(pmt_t *tuple, std::streambuf &sb) * * N.B., Circular structures cause infinite recursion. */ -bool -serialize(pmt_t obj, std::streambuf &sb) +bool serialize(pmt_t obj, std::streambuf& sb) { - bool ok = true; - - tail_recursion: - - if(is_bool(obj)) { - if(eq(obj, PMT_T)) - return serialize_untagged_u8(PST_TRUE, sb); - else - return serialize_untagged_u8(PST_FALSE, sb); - } - - if(is_null(obj)) - return serialize_untagged_u8(PST_NULL, sb); - - if(is_symbol(obj)) { - const std::string s = symbol_to_string(obj); - size_t len = s.size(); - ok = serialize_untagged_u8(PST_SYMBOL, sb); - ok &= serialize_untagged_u16(len, sb); - for(size_t i = 0; i < len; i++) - ok &= serialize_untagged_u8(s[i], sb); - return ok; - } - - if(is_pair(obj)) { - ok = serialize_untagged_u8(PST_PAIR, sb); - ok &= serialize(car(obj), sb); - if(!ok) - return false; - obj = cdr(obj); - goto tail_recursion; - } - - if(is_number(obj)) { - - if(is_uint64(obj)) { - uint64_t i = to_uint64(obj); - ok = serialize_untagged_u8(PST_UINT64, sb); - ok &= serialize_untagged_u64(i, sb); - return ok; + bool ok = true; + +tail_recursion: + + if (is_bool(obj)) { + if (eq(obj, PMT_T)) + return serialize_untagged_u8(PST_TRUE, sb); + else + return serialize_untagged_u8(PST_FALSE, sb); } - else { - if(is_integer(obj)) { - long i = to_long(obj); - if((sizeof(long) > 4) && ((i < std::numeric_limits<std::int32_t>::min() || i > std::numeric_limits<std::int32_t>::max()))) { - // Serializing as 4 bytes won't work for this value, serialize as 8 bytes - ok = serialize_untagged_u8(PST_INT64, sb); - ok &= serialize_untagged_u64(i, sb); - } else { - ok = serialize_untagged_u8(PST_INT32, sb); - ok &= serialize_untagged_u32(i, sb); - } + + if (is_null(obj)) + return serialize_untagged_u8(PST_NULL, sb); + + if (is_symbol(obj)) { + const std::string s = symbol_to_string(obj); + size_t len = s.size(); + ok = serialize_untagged_u8(PST_SYMBOL, sb); + ok &= serialize_untagged_u16(len, sb); + for (size_t i = 0; i < len; i++) + ok &= serialize_untagged_u8(s[i], sb); return ok; - } } - if(is_real(obj)) { - double i = to_double(obj); - ok = serialize_untagged_u8(PST_DOUBLE, sb); - ok &= serialize_untagged_f64(i, sb); - return ok; + if (is_pair(obj)) { + ok = serialize_untagged_u8(PST_PAIR, sb); + ok &= serialize(car(obj), sb); + if (!ok) + return false; + obj = cdr(obj); + goto tail_recursion; } - if(is_complex(obj)) { - std::complex<double> i = to_complex(obj); - ok = serialize_untagged_u8(PST_COMPLEX, sb); - ok &= serialize_untagged_f64(i.real(), sb); - ok &= serialize_untagged_f64(i.imag(), sb); - return ok; - } - } - - if(is_vector(obj)) { - size_t vec_len = pmt::length(obj); - ok = serialize_untagged_u8(PST_VECTOR, sb); - ok &= serialize_untagged_u32(vec_len, sb); - for(size_t i=0; i<vec_len; i++) { - ok &= serialize(vector_ref(obj, i), sb); - } - return ok; - } - - if(is_uniform_vector(obj)) { - size_t npad = 1; - size_t vec_len = pmt::length(obj); - - if(is_u8vector(obj)) { - ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); - ok &= serialize_untagged_u8(UVI_U8, sb); - ok &= serialize_untagged_u32(vec_len, sb); - ok &= serialize_untagged_u8(npad, sb); - for(size_t i=0; i<npad; i++) { - ok &= serialize_untagged_u8(0, sb); - } - for(size_t i=0; i<vec_len; i++) { - ok &= serialize_untagged_u8(u8vector_ref(obj, i), sb); - } - return ok; - } + if (is_number(obj)) { - if(is_s8vector(obj)) { - ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); - ok &= serialize_untagged_u8(UVI_S8, sb); - ok &= serialize_untagged_u32(vec_len, sb); - ok &= serialize_untagged_u8(npad, sb); - for(size_t i=0; i<npad; i++) { - ok &= serialize_untagged_u8(0, sb); - } - for(size_t i=0; i<vec_len; i++) { - ok &= serialize_untagged_u8(s8vector_ref(obj, i), sb); - } - return ok; - } + if (is_uint64(obj)) { + uint64_t i = to_uint64(obj); + ok = serialize_untagged_u8(PST_UINT64, sb); + ok &= serialize_untagged_u64(i, sb); + return ok; + } else { + if (is_integer(obj)) { + long i = to_long(obj); + if ((sizeof(long) > 4) && + ((i < std::numeric_limits<std::int32_t>::min() || + i > std::numeric_limits<std::int32_t>::max()))) { + // Serializing as 4 bytes won't work for this value, serialize as 8 + // bytes + ok = serialize_untagged_u8(PST_INT64, sb); + ok &= serialize_untagged_u64(i, sb); + } else { + ok = serialize_untagged_u8(PST_INT32, sb); + ok &= serialize_untagged_u32(i, sb); + } + return ok; + } + } - if(is_u16vector(obj)) { - ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); - ok &= serialize_untagged_u8(UVI_U16, sb); - ok &= serialize_untagged_u32(vec_len, sb); - ok &= serialize_untagged_u8(npad, sb); - for(size_t i=0; i<npad; i++) { - ok &= serialize_untagged_u8(0, sb); - } - for(size_t i=0; i<vec_len; i++) { - ok &= serialize_untagged_u16(u16vector_ref(obj, i), sb); - } - return ok; - } + if (is_real(obj)) { + double i = to_double(obj); + ok = serialize_untagged_u8(PST_DOUBLE, sb); + ok &= serialize_untagged_f64(i, sb); + return ok; + } - if(is_s16vector(obj)) { - ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); - ok &= serialize_untagged_u8(UVI_S16, sb); - ok &= serialize_untagged_u32(vec_len, sb); - ok &= serialize_untagged_u8(npad, sb); - for(size_t i=0; i<npad; i++) { - ok &= serialize_untagged_u8(0, sb); - } - for(size_t i=0; i<vec_len; i++) { - ok &= serialize_untagged_u16(s16vector_ref(obj, i), sb); - } - return ok; + if (is_complex(obj)) { + std::complex<double> i = to_complex(obj); + ok = serialize_untagged_u8(PST_COMPLEX, sb); + ok &= serialize_untagged_f64(i.real(), sb); + ok &= serialize_untagged_f64(i.imag(), sb); + return ok; + } } - if(is_u32vector(obj)) { - ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); - ok &= serialize_untagged_u8(UVI_U32, sb); - ok &= serialize_untagged_u32(vec_len, sb); - ok &= serialize_untagged_u8(npad, sb); - for(size_t i=0; i<npad; i++) { - ok &= serialize_untagged_u8(0, sb); - } - for(size_t i=0; i<vec_len; i++) { - ok &= serialize_untagged_u32(u32vector_ref(obj, i), sb); - } - return ok; + if (is_vector(obj)) { + size_t vec_len = pmt::length(obj); + ok = serialize_untagged_u8(PST_VECTOR, sb); + ok &= serialize_untagged_u32(vec_len, sb); + for (size_t i = 0; i < vec_len; i++) { + ok &= serialize(vector_ref(obj, i), sb); + } + return ok; } - if(is_s32vector(obj)) { - ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); - ok &= serialize_untagged_u8(UVI_S32, sb); - ok &= serialize_untagged_u32(vec_len, sb); - ok &= serialize_untagged_u8(npad, sb); - for(size_t i=0; i<npad; i++) { - ok &= serialize_untagged_u8(0, sb); - } - for(size_t i=0; i<vec_len; i++) { - ok &= serialize_untagged_u32(s32vector_ref(obj, i), sb); - } - return ok; - } + if (is_uniform_vector(obj)) { + size_t npad = 1; + size_t vec_len = pmt::length(obj); + + if (is_u8vector(obj)) { + ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); + ok &= serialize_untagged_u8(UVI_U8, sb); + ok &= serialize_untagged_u32(vec_len, sb); + ok &= serialize_untagged_u8(npad, sb); + for (size_t i = 0; i < npad; i++) { + ok &= serialize_untagged_u8(0, sb); + } + for (size_t i = 0; i < vec_len; i++) { + ok &= serialize_untagged_u8(u8vector_ref(obj, i), sb); + } + return ok; + } - if(is_u64vector(obj)) { - ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); - ok &= serialize_untagged_u8(UVI_U64, sb); - ok &= serialize_untagged_u32(vec_len, sb); - ok &= serialize_untagged_u8(npad, sb); - for(size_t i=0; i<npad; i++) { - ok &= serialize_untagged_u8(0, sb); - } - for(size_t i=0; i<vec_len; i++) { - ok &= serialize_untagged_u64(u64vector_ref(obj, i), sb); - } - return ok; - } + if (is_s8vector(obj)) { + ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); + ok &= serialize_untagged_u8(UVI_S8, sb); + ok &= serialize_untagged_u32(vec_len, sb); + ok &= serialize_untagged_u8(npad, sb); + for (size_t i = 0; i < npad; i++) { + ok &= serialize_untagged_u8(0, sb); + } + for (size_t i = 0; i < vec_len; i++) { + ok &= serialize_untagged_u8(s8vector_ref(obj, i), sb); + } + return ok; + } - if(is_s64vector(obj)) { - ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); - ok &= serialize_untagged_u8(UVI_S64, sb); - ok &= serialize_untagged_u32(vec_len, sb); - ok &= serialize_untagged_u8(npad, sb); - for(size_t i=0; i<npad; i++) { - ok &= serialize_untagged_u8(0, sb); - } - for(size_t i=0; i<vec_len; i++) { - ok &= serialize_untagged_u64(s64vector_ref(obj, i), sb); - } - return ok; - } + if (is_u16vector(obj)) { + ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); + ok &= serialize_untagged_u8(UVI_U16, sb); + ok &= serialize_untagged_u32(vec_len, sb); + ok &= serialize_untagged_u8(npad, sb); + for (size_t i = 0; i < npad; i++) { + ok &= serialize_untagged_u8(0, sb); + } + for (size_t i = 0; i < vec_len; i++) { + ok &= serialize_untagged_u16(u16vector_ref(obj, i), sb); + } + return ok; + } - if(is_f32vector(obj)) { - ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); - ok &= serialize_untagged_u8(UVI_F32, sb); - ok &= serialize_untagged_u32(vec_len, sb); - ok &= serialize_untagged_u8(npad, sb); - for(size_t i=0; i<npad; i++) { - ok &= serialize_untagged_u8(0, sb); - } - for(size_t i=0; i<vec_len; i++) { - ok &= serialize_untagged_f64(f32vector_ref(obj, i), sb); - } - return ok; - } + if (is_s16vector(obj)) { + ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); + ok &= serialize_untagged_u8(UVI_S16, sb); + ok &= serialize_untagged_u32(vec_len, sb); + ok &= serialize_untagged_u8(npad, sb); + for (size_t i = 0; i < npad; i++) { + ok &= serialize_untagged_u8(0, sb); + } + for (size_t i = 0; i < vec_len; i++) { + ok &= serialize_untagged_u16(s16vector_ref(obj, i), sb); + } + return ok; + } - if(is_f64vector(obj)) { - ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); - ok &= serialize_untagged_u8(UVI_F64, sb); - ok &= serialize_untagged_u32(vec_len, sb); - ok &= serialize_untagged_u8(npad, sb); - for(size_t i=0; i<npad; i++) { - ok &= serialize_untagged_u8(0, sb); - } - for(size_t i=0; i<vec_len; i++) { - ok &= serialize_untagged_f64(f64vector_ref(obj, i), sb); - } - return ok; - } + if (is_u32vector(obj)) { + ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); + ok &= serialize_untagged_u8(UVI_U32, sb); + ok &= serialize_untagged_u32(vec_len, sb); + ok &= serialize_untagged_u8(npad, sb); + for (size_t i = 0; i < npad; i++) { + ok &= serialize_untagged_u8(0, sb); + } + for (size_t i = 0; i < vec_len; i++) { + ok &= serialize_untagged_u32(u32vector_ref(obj, i), sb); + } + return ok; + } - if(is_c32vector(obj)) { - ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); - ok &= serialize_untagged_u8(UVI_C32, sb); - ok &= serialize_untagged_u32(vec_len, sb); - ok &= serialize_untagged_u8(npad, sb); - for(size_t i=0; i<npad; i++) { - ok &= serialize_untagged_u8(0, sb); - } - for(size_t i=0; i<vec_len; i++) { - std::complex<float> c = c32vector_ref(obj, i); - ok &= serialize_untagged_f64(c.real(), sb); - ok &= serialize_untagged_f64(c.imag(), sb); - } - return ok; - } + if (is_s32vector(obj)) { + ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); + ok &= serialize_untagged_u8(UVI_S32, sb); + ok &= serialize_untagged_u32(vec_len, sb); + ok &= serialize_untagged_u8(npad, sb); + for (size_t i = 0; i < npad; i++) { + ok &= serialize_untagged_u8(0, sb); + } + for (size_t i = 0; i < vec_len; i++) { + ok &= serialize_untagged_u32(s32vector_ref(obj, i), sb); + } + return ok; + } + + if (is_u64vector(obj)) { + ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); + ok &= serialize_untagged_u8(UVI_U64, sb); + ok &= serialize_untagged_u32(vec_len, sb); + ok &= serialize_untagged_u8(npad, sb); + for (size_t i = 0; i < npad; i++) { + ok &= serialize_untagged_u8(0, sb); + } + for (size_t i = 0; i < vec_len; i++) { + ok &= serialize_untagged_u64(u64vector_ref(obj, i), sb); + } + return ok; + } + + if (is_s64vector(obj)) { + ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); + ok &= serialize_untagged_u8(UVI_S64, sb); + ok &= serialize_untagged_u32(vec_len, sb); + ok &= serialize_untagged_u8(npad, sb); + for (size_t i = 0; i < npad; i++) { + ok &= serialize_untagged_u8(0, sb); + } + for (size_t i = 0; i < vec_len; i++) { + ok &= serialize_untagged_u64(s64vector_ref(obj, i), sb); + } + return ok; + } + + if (is_f32vector(obj)) { + ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); + ok &= serialize_untagged_u8(UVI_F32, sb); + ok &= serialize_untagged_u32(vec_len, sb); + ok &= serialize_untagged_u8(npad, sb); + for (size_t i = 0; i < npad; i++) { + ok &= serialize_untagged_u8(0, sb); + } + for (size_t i = 0; i < vec_len; i++) { + ok &= serialize_untagged_f64(f32vector_ref(obj, i), sb); + } + return ok; + } - if(is_c64vector(obj)) { - ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); - ok &= serialize_untagged_u8(UVI_C64, sb); - ok &= serialize_untagged_u32(vec_len, sb); - ok &= serialize_untagged_u8(npad, sb); - for(size_t i=0; i<npad; i++) { - ok &= serialize_untagged_u8(0, sb); - } - for(size_t i=0; i<vec_len; i++) { - std::complex<double> c = c64vector_ref(obj, i); - ok &= serialize_untagged_f64(c.real(), sb); - ok &= serialize_untagged_f64(c.imag(), sb); - } - return ok; + if (is_f64vector(obj)) { + ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); + ok &= serialize_untagged_u8(UVI_F64, sb); + ok &= serialize_untagged_u32(vec_len, sb); + ok &= serialize_untagged_u8(npad, sb); + for (size_t i = 0; i < npad; i++) { + ok &= serialize_untagged_u8(0, sb); + } + for (size_t i = 0; i < vec_len; i++) { + ok &= serialize_untagged_f64(f64vector_ref(obj, i), sb); + } + return ok; + } + + if (is_c32vector(obj)) { + ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); + ok &= serialize_untagged_u8(UVI_C32, sb); + ok &= serialize_untagged_u32(vec_len, sb); + ok &= serialize_untagged_u8(npad, sb); + for (size_t i = 0; i < npad; i++) { + ok &= serialize_untagged_u8(0, sb); + } + for (size_t i = 0; i < vec_len; i++) { + std::complex<float> c = c32vector_ref(obj, i); + ok &= serialize_untagged_f64(c.real(), sb); + ok &= serialize_untagged_f64(c.imag(), sb); + } + return ok; + } + + if (is_c64vector(obj)) { + ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb); + ok &= serialize_untagged_u8(UVI_C64, sb); + ok &= serialize_untagged_u32(vec_len, sb); + ok &= serialize_untagged_u8(npad, sb); + for (size_t i = 0; i < npad; i++) { + ok &= serialize_untagged_u8(0, sb); + } + for (size_t i = 0; i < vec_len; i++) { + std::complex<double> c = c64vector_ref(obj, i); + ok &= serialize_untagged_f64(c.real(), sb); + ok &= serialize_untagged_f64(c.imag(), sb); + } + return ok; + } } - } - if (is_dict(obj)) - throw notimplemented("pmt::serialize (dict)", obj); + if (is_dict(obj)) + throw notimplemented("pmt::serialize (dict)", obj); - if (is_tuple(obj)){ - size_t tuple_len = pmt::length(obj); - ok = serialize_untagged_u8(PST_TUPLE, sb); - ok &= serialize_untagged_u32(tuple_len, sb); - for(size_t i=0; i<tuple_len; i++){ - ok &= serialize(tuple_ref(obj, i), sb); + if (is_tuple(obj)) { + size_t tuple_len = pmt::length(obj); + ok = serialize_untagged_u8(PST_TUPLE, sb); + ok &= serialize_untagged_u32(tuple_len, sb); + for (size_t i = 0; i < tuple_len; i++) { + ok &= serialize(tuple_ref(obj, i), sb); + } + return ok; } - return ok; - } - //throw pmt_notimplemented("pmt::serialize (tuple)", obj); + // throw pmt_notimplemented("pmt::serialize (tuple)", obj); - throw notimplemented("pmt::serialize (?)", obj); + throw notimplemented("pmt::serialize (?)", obj); } /* @@ -525,266 +514,247 @@ serialize(pmt_t obj, std::streambuf &sb) * Returns next obj from streambuf, or PMT_EOF at end of file. * Throws exception on malformed input. */ -pmt_t -deserialize(std::streambuf &sb) +pmt_t deserialize(std::streambuf& sb) { - uint8_t tag; - uint8_t u8; - uint16_t u16; - uint32_t u32; - uint64_t u64; - double f64; - char tmpbuf[1024]; - - if (!deserialize_untagged_u8(&tag, sb)) - return PMT_EOF; - - switch (tag){ - case PST_TRUE: - return PMT_T; - - case PST_FALSE: - return PMT_F; - - case PST_NULL: - return PMT_NIL; - - case PST_SYMBOL: - if (!deserialize_untagged_u16(&u16, sb)) - goto error; - if (u16 > sizeof(tmpbuf)) - throw notimplemented("pmt::deserialize: very long symbol", - PMT_F); - if (sb.sgetn(tmpbuf, u16) != u16) - goto error; - return intern(std::string(tmpbuf, u16)); - - case PST_INT32: - if (!deserialize_untagged_u32(&u32, sb)) - goto error; - return from_long((int32_t) u32); - - case PST_UINT64: - if(!deserialize_untagged_u64(&u64, sb)) - goto error; - return from_uint64(u64); - - case PST_INT64: - if(!deserialize_untagged_u64(&u64, sb)) - goto error; - return from_long(u64); - - case PST_PAIR: - return parse_pair(sb); - - case PST_DOUBLE: - if(!deserialize_untagged_f64(&f64, sb)) - goto error; - return from_double( f64 ); - - case PST_COMPLEX: - { - double r,i; - if(!deserialize_untagged_f64(&r, sb) || !deserialize_untagged_f64(&i, sb)) - goto error; - return make_rectangular( r,i ); + uint8_t tag; + uint8_t u8; + uint16_t u16; + uint32_t u32; + uint64_t u64; + double f64; + char tmpbuf[1024]; + + if (!deserialize_untagged_u8(&tag, sb)) + return PMT_EOF; + + switch (tag) { + case PST_TRUE: + return PMT_T; + + case PST_FALSE: + return PMT_F; + + case PST_NULL: + return PMT_NIL; + + case PST_SYMBOL: + if (!deserialize_untagged_u16(&u16, sb)) + goto error; + if (u16 > sizeof(tmpbuf)) + throw notimplemented("pmt::deserialize: very long symbol", PMT_F); + if (sb.sgetn(tmpbuf, u16) != u16) + goto error; + return intern(std::string(tmpbuf, u16)); + + case PST_INT32: + if (!deserialize_untagged_u32(&u32, sb)) + goto error; + return from_long((int32_t)u32); + + case PST_UINT64: + if (!deserialize_untagged_u64(&u64, sb)) + goto error; + return from_uint64(u64); + + case PST_INT64: + if (!deserialize_untagged_u64(&u64, sb)) + goto error; + return from_long(u64); + + case PST_PAIR: + return parse_pair(sb); + + case PST_DOUBLE: + if (!deserialize_untagged_f64(&f64, sb)) + goto error; + return from_double(f64); + + case PST_COMPLEX: { + double r, i; + if (!deserialize_untagged_f64(&r, sb) || !deserialize_untagged_f64(&i, sb)) + goto error; + return make_rectangular(r, i); } - case PST_TUPLE: - { - pmt_t tuple; - if(!deserialize_tuple(&tuple, sb)){ - goto error; - } - return tuple; + case PST_TUPLE: { + pmt_t tuple; + if (!deserialize_tuple(&tuple, sb)) { + goto error; + } + return tuple; } - case PST_VECTOR: - { - uint32_t nitems; - if(!deserialize_untagged_u32(&nitems, sb)) - goto error; - pmt_t vec = make_vector(nitems, PMT_NIL); - for(uint32_t i=0; i<nitems; i++) { - pmt_t item = deserialize(sb); - vector_set(vec, i, item); - } - return vec; + case PST_VECTOR: { + uint32_t nitems; + if (!deserialize_untagged_u32(&nitems, sb)) + goto error; + pmt_t vec = make_vector(nitems, PMT_NIL); + for (uint32_t i = 0; i < nitems; i++) { + pmt_t item = deserialize(sb); + vector_set(vec, i, item); + } + return vec; } - case PST_UNIFORM_VECTOR: - { - uint8_t utag, npad; - uint32_t nitems; - - if(!deserialize_untagged_u8(&utag, sb)) - return PMT_EOF; - - if(!deserialize_untagged_u32(&nitems, sb)) - goto error; - - deserialize_untagged_u8(&npad, sb); - for(size_t i = 0; i < npad; i++) - deserialize_untagged_u8(&u8, sb); - - switch(utag) { - case(UVI_U8): - { - pmt_t vec = make_u8vector(nitems, 0); - for(uint32_t i=0; i<nitems; i++) { - deserialize_untagged_u8(&u8, sb); - u8vector_set(vec, i, u8); - } - return vec; - } - case(UVI_S8): - { - pmt_t vec = make_s8vector(nitems, 0); - for(uint32_t i=0; i<nitems; i++) { - deserialize_untagged_u8(&u8, sb); - s8vector_set(vec, i, u8); - } - return vec; - } - case(UVI_U16): - { - pmt_t vec = make_u16vector(nitems, 0); - for(uint32_t i=0; i<nitems; i++) { - deserialize_untagged_u16(&u16, sb); - u16vector_set(vec, i, u16); - } - return vec; - } - case(UVI_S16): - { - pmt_t vec = make_s16vector(nitems, 0); - for(uint32_t i=0; i<nitems; i++) { - deserialize_untagged_u16(&u16, sb); - s16vector_set(vec, i, u16); - } - return vec; - } - case(UVI_U32): - { - pmt_t vec = make_u32vector(nitems, 0); - for(uint32_t i=0; i<nitems; i++) { - deserialize_untagged_u32(&u32, sb); - u32vector_set(vec, i, u32); - } - return vec; - } - case(UVI_S32): - { - pmt_t vec = make_s32vector(nitems, 0); - for(uint32_t i=0; i<nitems; i++) { - deserialize_untagged_u32(&u32, sb); - s32vector_set(vec, i, u32); - } - return vec; - } - case(UVI_U64): - { - pmt_t vec = make_u64vector(nitems, 0); - for(uint32_t i=0; i<nitems; i++) { - deserialize_untagged_u64(&u64, sb); - u64vector_set(vec, i, u64); - } - return vec; - } - case(UVI_S64): - { - pmt_t vec = make_s64vector(nitems, 0); - for(uint32_t i=0; i<nitems; i++) { - deserialize_untagged_u64(&u64, sb); - s64vector_set(vec, i, u64); - } - return vec; - } - case(UVI_F32): - { - pmt_t vec = make_f32vector(nitems, 0); - for(uint32_t i=0; i<nitems; i++) { - deserialize_untagged_f64(&f64, sb); - f32vector_set(vec, i, static_cast<float>(f64)); - } - return vec; - } - case(UVI_F64): - { - pmt_t vec = make_f64vector(nitems, 0); - for(uint32_t i=0; i<nitems; i++) { - deserialize_untagged_f64(&f64, sb); - f64vector_set(vec, i, f64); - } - return vec; - } - case(UVI_C32): - { - pmt_t vec = make_c32vector(nitems, 0); - for(uint32_t i=0; i<nitems; i++) { - float re, im; - deserialize_untagged_f64(&f64, sb); - re = static_cast<float>(f64); - deserialize_untagged_f64(&f64, sb); - im = static_cast<float>(f64); - c32vector_set(vec, i, std::complex<float>(re, im)); - } - return vec; - } - - case(UVI_C64): - { - pmt_t vec = make_c64vector(nitems, 0); - for(uint32_t i=0; i<nitems; i++) { - double re, im; - deserialize_untagged_f64(&f64, sb); - re = f64; - deserialize_untagged_f64(&f64, sb); - im = f64; - c64vector_set(vec, i, std::complex<double>(re, im)); - } - return vec; - } - - default: - throw exception("pmt::deserialize: malformed input stream, tag value = ", - from_long(tag)); - } + case PST_UNIFORM_VECTOR: { + uint8_t utag, npad; + uint32_t nitems; + + if (!deserialize_untagged_u8(&utag, sb)) + return PMT_EOF; + + if (!deserialize_untagged_u32(&nitems, sb)) + goto error; + + deserialize_untagged_u8(&npad, sb); + for (size_t i = 0; i < npad; i++) + deserialize_untagged_u8(&u8, sb); + + switch (utag) { + case (UVI_U8): { + pmt_t vec = make_u8vector(nitems, 0); + for (uint32_t i = 0; i < nitems; i++) { + deserialize_untagged_u8(&u8, sb); + u8vector_set(vec, i, u8); + } + return vec; + } + case (UVI_S8): { + pmt_t vec = make_s8vector(nitems, 0); + for (uint32_t i = 0; i < nitems; i++) { + deserialize_untagged_u8(&u8, sb); + s8vector_set(vec, i, u8); + } + return vec; + } + case (UVI_U16): { + pmt_t vec = make_u16vector(nitems, 0); + for (uint32_t i = 0; i < nitems; i++) { + deserialize_untagged_u16(&u16, sb); + u16vector_set(vec, i, u16); + } + return vec; + } + case (UVI_S16): { + pmt_t vec = make_s16vector(nitems, 0); + for (uint32_t i = 0; i < nitems; i++) { + deserialize_untagged_u16(&u16, sb); + s16vector_set(vec, i, u16); + } + return vec; + } + case (UVI_U32): { + pmt_t vec = make_u32vector(nitems, 0); + for (uint32_t i = 0; i < nitems; i++) { + deserialize_untagged_u32(&u32, sb); + u32vector_set(vec, i, u32); + } + return vec; + } + case (UVI_S32): { + pmt_t vec = make_s32vector(nitems, 0); + for (uint32_t i = 0; i < nitems; i++) { + deserialize_untagged_u32(&u32, sb); + s32vector_set(vec, i, u32); + } + return vec; + } + case (UVI_U64): { + pmt_t vec = make_u64vector(nitems, 0); + for (uint32_t i = 0; i < nitems; i++) { + deserialize_untagged_u64(&u64, sb); + u64vector_set(vec, i, u64); + } + return vec; + } + case (UVI_S64): { + pmt_t vec = make_s64vector(nitems, 0); + for (uint32_t i = 0; i < nitems; i++) { + deserialize_untagged_u64(&u64, sb); + s64vector_set(vec, i, u64); + } + return vec; + } + case (UVI_F32): { + pmt_t vec = make_f32vector(nitems, 0); + for (uint32_t i = 0; i < nitems; i++) { + deserialize_untagged_f64(&f64, sb); + f32vector_set(vec, i, static_cast<float>(f64)); + } + return vec; + } + case (UVI_F64): { + pmt_t vec = make_f64vector(nitems, 0); + for (uint32_t i = 0; i < nitems; i++) { + deserialize_untagged_f64(&f64, sb); + f64vector_set(vec, i, f64); + } + return vec; + } + case (UVI_C32): { + pmt_t vec = make_c32vector(nitems, 0); + for (uint32_t i = 0; i < nitems; i++) { + float re, im; + deserialize_untagged_f64(&f64, sb); + re = static_cast<float>(f64); + deserialize_untagged_f64(&f64, sb); + im = static_cast<float>(f64); + c32vector_set(vec, i, std::complex<float>(re, im)); + } + return vec; + } + + case (UVI_C64): { + pmt_t vec = make_c64vector(nitems, 0); + for (uint32_t i = 0; i < nitems; i++) { + double re, im; + deserialize_untagged_f64(&f64, sb); + re = f64; + deserialize_untagged_f64(&f64, sb); + im = f64; + c64vector_set(vec, i, std::complex<double>(re, im)); + } + return vec; + } + + default: + throw exception("pmt::deserialize: malformed input stream, tag value = ", + from_long(tag)); + } } - case PST_DICT: - case PST_COMMENT: - throw notimplemented("pmt::deserialize: tag value = ", - from_long(tag)); + case PST_DICT: + case PST_COMMENT: + throw notimplemented("pmt::deserialize: tag value = ", from_long(tag)); - default: - throw exception("pmt::deserialize: malformed input stream, tag value = ", - from_long(tag)); - } + default: + throw exception("pmt::deserialize: malformed input stream, tag value = ", + from_long(tag)); + } - error: - throw exception("pmt::deserialize: malformed input stream", PMT_F); +error: + throw exception("pmt::deserialize: malformed input stream", PMT_F); } /* * provide a simple string accessor to the serialized pmt form */ -std::string -serialize_str(pmt_t obj){ - std::stringbuf sb; - serialize(obj, sb); - return sb.str(); +std::string serialize_str(pmt_t obj) +{ + std::stringbuf sb; + serialize(obj, sb); + return sb.str(); } /* * provide a simple string accessor to the deserialized pmt form */ -pmt_t -deserialize_str(std::string s){ - std::stringbuf sb(s); - return deserialize(sb); +pmt_t deserialize_str(std::string s) +{ + std::stringbuf sb(s); + return deserialize(sb); } @@ -794,50 +764,49 @@ deserialize_str(std::string s){ * * On entry we've already eaten the PST_PAIR tag. */ -pmt_t -parse_pair(std::streambuf &sb) +pmt_t parse_pair(std::streambuf& sb) { - uint8_t tag; - pmt_t val, expr, lastnptr, nptr; - - // - // Keep appending nodes until we get a non-PAIR cdr. - // - lastnptr = PMT_NIL; - while (1){ - expr = deserialize(sb); // read the car - - nptr = cons(expr, PMT_NIL); // build new cell - if (is_null(lastnptr)) - val = nptr; - else - set_cdr(lastnptr, nptr); - lastnptr = nptr; - - if (!deserialize_untagged_u8(&tag, sb)) // get tag of cdr - throw exception("pmt::deserialize: malformed input stream", PMT_F); - - if (tag == PST_PAIR) - continue; // keep on looping... - - if (tag == PST_NULL){ - expr = PMT_NIL; - break; + uint8_t tag; + pmt_t val, expr, lastnptr, nptr; + + // + // Keep appending nodes until we get a non-PAIR cdr. + // + lastnptr = PMT_NIL; + while (1) { + expr = deserialize(sb); // read the car + + nptr = cons(expr, PMT_NIL); // build new cell + if (is_null(lastnptr)) + val = nptr; + else + set_cdr(lastnptr, nptr); + lastnptr = nptr; + + if (!deserialize_untagged_u8(&tag, sb)) // get tag of cdr + throw exception("pmt::deserialize: malformed input stream", PMT_F); + + if (tag == PST_PAIR) + continue; // keep on looping... + + if (tag == PST_NULL) { + expr = PMT_NIL; + break; + } + + // + // default: push tag back and use pmt_deserialize to get the cdr + // + sb.sungetc(); + expr = deserialize(sb); + break; } // - // default: push tag back and use pmt_deserialize to get the cdr + // At this point, expr contains the value of the final cdr in the list. // - sb.sungetc(); - expr = deserialize(sb); - break; - } - - // - // At this point, expr contains the value of the final cdr in the list. - // - set_cdr(lastnptr, expr); - return val; + set_cdr(lastnptr, expr); + return val; } } /* namespace pmt */ diff --git a/gnuradio-runtime/lib/pmt/pmt_unv.cc b/gnuradio-runtime/lib/pmt/pmt_unv.cc index 25cd9a3c95..fc295fb6b3 100644 --- a/gnuradio-runtime/lib/pmt/pmt_unv.cc +++ b/gnuradio-runtime/lib/pmt/pmt_unv.cc @@ -37,146 +37,119 @@ namespace pmt { -static pmt_u8vector * -_u8vector(pmt_t x) -{ - return dynamic_cast<pmt_u8vector*>(x.get()); -} +static pmt_u8vector* _u8vector(pmt_t x) { return dynamic_cast<pmt_u8vector*>(x.get()); } -pmt_u8vector::pmt_u8vector(size_t k, uint8_t fill) - : d_v(k) +pmt_u8vector::pmt_u8vector(size_t k, uint8_t fill) : d_v(k) { - for (size_t i = 0; i < k; i++) - d_v[i] = fill; + for (size_t i = 0; i < k; i++) + d_v[i] = fill; } -pmt_u8vector::pmt_u8vector(size_t k, const uint8_t *data) - : d_v(k) +pmt_u8vector::pmt_u8vector(size_t k, const uint8_t* data) : d_v(k) { - if(k) - memcpy( &d_v[0], data, k * sizeof(uint8_t) ); + if (k) + memcpy(&d_v[0], data, k * sizeof(uint8_t)); } -uint8_t -pmt_u8vector::ref(size_t k) const +uint8_t pmt_u8vector::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_u8vector_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_u8vector_ref", from_long(k)); + return d_v[k]; } -void -pmt_u8vector::set(size_t k, uint8_t x) +void pmt_u8vector::set(size_t k, uint8_t x) { - if (k >= length()) - throw out_of_range("pmt_u8vector_set", from_long(k)); - d_v[k] = x; + if (k >= length()) + throw out_of_range("pmt_u8vector_set", from_long(k)); + d_v[k] = x; } -const uint8_t * -pmt_u8vector::elements(size_t &len) +const uint8_t* pmt_u8vector::elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -uint8_t * -pmt_u8vector::writable_elements(size_t &len) +uint8_t* pmt_u8vector::writable_elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -const void* -pmt_u8vector::uniform_elements(size_t &len) +const void* pmt_u8vector::uniform_elements(size_t& len) { - len = length() * sizeof(uint8_t); - return len ? &d_v[0] : nullptr; + len = length() * sizeof(uint8_t); + return len ? &d_v[0] : nullptr; } -void* -pmt_u8vector::uniform_writable_elements(size_t &len) +void* pmt_u8vector::uniform_writable_elements(size_t& len) { - len = length() * sizeof(uint8_t); - return len ? (&d_v[0]) : nullptr; + len = length() * sizeof(uint8_t); + return len ? (&d_v[0]) : nullptr; } -bool -is_u8vector(pmt_t obj) -{ - return obj->is_u8vector(); -} +bool is_u8vector(pmt_t obj) { return obj->is_u8vector(); } -pmt_t -make_u8vector(size_t k, uint8_t fill) -{ - return pmt_t(new pmt_u8vector(k, fill)); -} +pmt_t make_u8vector(size_t k, uint8_t fill) { return pmt_t(new pmt_u8vector(k, fill)); } -pmt_t -init_u8vector(size_t k, const uint8_t *data) +pmt_t init_u8vector(size_t k, const uint8_t* data) { - return pmt_t(new pmt_u8vector(k, data)); + return pmt_t(new pmt_u8vector(k, data)); } -pmt_t -init_u8vector(size_t k, const std::vector< uint8_t > &data) +pmt_t init_u8vector(size_t k, const std::vector<uint8_t>& data) { - if(k) { - return pmt_t(new pmt_u8vector(k, &data[0])); - } - return pmt_t(new pmt_u8vector(k, static_cast< uint8_t >(0))); // fills an empty vector with 0 + if (k) { + return pmt_t(new pmt_u8vector(k, &data[0])); + } + return pmt_t( + new pmt_u8vector(k, static_cast<uint8_t>(0))); // fills an empty vector with 0 } -uint8_t -u8vector_ref(pmt_t vector, size_t k) +uint8_t u8vector_ref(pmt_t vector, size_t k) { - if (!vector->is_u8vector()) - throw wrong_type("pmt_u8vector_ref", vector); - return _u8vector(vector)->ref(k); + if (!vector->is_u8vector()) + throw wrong_type("pmt_u8vector_ref", vector); + return _u8vector(vector)->ref(k); } -void -u8vector_set(pmt_t vector, size_t k, uint8_t obj) +void u8vector_set(pmt_t vector, size_t k, uint8_t obj) { - if (!vector->is_u8vector()) - throw wrong_type("pmt_u8vector_set", vector); - _u8vector(vector)->set(k, obj); + if (!vector->is_u8vector()) + throw wrong_type("pmt_u8vector_set", vector); + _u8vector(vector)->set(k, obj); } -const uint8_t * -u8vector_elements(pmt_t vector, size_t &len) +const uint8_t* u8vector_elements(pmt_t vector, size_t& len) { - if (!vector->is_u8vector()) - throw wrong_type("pmt_u8vector_elements", vector); - return _u8vector(vector)->elements(len); + if (!vector->is_u8vector()) + throw wrong_type("pmt_u8vector_elements", vector); + return _u8vector(vector)->elements(len); } -const std::vector< uint8_t > -u8vector_elements(pmt_t vector) +const std::vector<uint8_t> u8vector_elements(pmt_t vector) { - if (!vector->is_u8vector()) - throw wrong_type("pmt_u8vector_elements", vector); - size_t len; - const uint8_t *array = _u8vector(vector)->elements(len); - const std::vector< uint8_t > vec(array, array+len); - return vec; + if (!vector->is_u8vector()) + throw wrong_type("pmt_u8vector_elements", vector); + size_t len; + const uint8_t* array = _u8vector(vector)->elements(len); + const std::vector<uint8_t> vec(array, array + len); + return vec; } -uint8_t * -u8vector_writable_elements(pmt_t vector, size_t &len) +uint8_t* u8vector_writable_elements(pmt_t vector, size_t& len) { - if (!vector->is_u8vector()) - throw wrong_type("pmt_u8vector_writable_elements", vector); - return _u8vector(vector)->writable_elements(len); + if (!vector->is_u8vector()) + throw wrong_type("pmt_u8vector_writable_elements", vector); + return _u8vector(vector)->writable_elements(len); } -const std::string -pmt_u8vector::string_ref(size_t k) const +const std::string pmt_u8vector::string_ref(size_t k) const { - return boost::lexical_cast< std::string, uint8_t > (ref(k)); + return boost::lexical_cast<std::string, uint8_t>(ref(k)); } } /* namespace pmt */ @@ -186,146 +159,119 @@ pmt_u8vector::string_ref(size_t k) const namespace pmt { -static pmt_s8vector * -_s8vector(pmt_t x) -{ - return dynamic_cast<pmt_s8vector*>(x.get()); -} +static pmt_s8vector* _s8vector(pmt_t x) { return dynamic_cast<pmt_s8vector*>(x.get()); } -pmt_s8vector::pmt_s8vector(size_t k, int8_t fill) - : d_v(k) +pmt_s8vector::pmt_s8vector(size_t k, int8_t fill) : d_v(k) { - for (size_t i = 0; i < k; i++) - d_v[i] = fill; + for (size_t i = 0; i < k; i++) + d_v[i] = fill; } -pmt_s8vector::pmt_s8vector(size_t k, const int8_t *data) - : d_v(k) +pmt_s8vector::pmt_s8vector(size_t k, const int8_t* data) : d_v(k) { - if(k) - memcpy( &d_v[0], data, k * sizeof(int8_t) ); + if (k) + memcpy(&d_v[0], data, k * sizeof(int8_t)); } -int8_t -pmt_s8vector::ref(size_t k) const +int8_t pmt_s8vector::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_s8vector_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_s8vector_ref", from_long(k)); + return d_v[k]; } -void -pmt_s8vector::set(size_t k, int8_t x) +void pmt_s8vector::set(size_t k, int8_t x) { - if (k >= length()) - throw out_of_range("pmt_s8vector_set", from_long(k)); - d_v[k] = x; + if (k >= length()) + throw out_of_range("pmt_s8vector_set", from_long(k)); + d_v[k] = x; } -const int8_t * -pmt_s8vector::elements(size_t &len) +const int8_t* pmt_s8vector::elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -int8_t * -pmt_s8vector::writable_elements(size_t &len) +int8_t* pmt_s8vector::writable_elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -const void* -pmt_s8vector::uniform_elements(size_t &len) +const void* pmt_s8vector::uniform_elements(size_t& len) { - len = length() * sizeof(int8_t); - return len ? &d_v[0] : nullptr; + len = length() * sizeof(int8_t); + return len ? &d_v[0] : nullptr; } -void* -pmt_s8vector::uniform_writable_elements(size_t &len) +void* pmt_s8vector::uniform_writable_elements(size_t& len) { - len = length() * sizeof(int8_t); - return len ? (&d_v[0]) : nullptr; + len = length() * sizeof(int8_t); + return len ? (&d_v[0]) : nullptr; } -bool -is_s8vector(pmt_t obj) -{ - return obj->is_s8vector(); -} +bool is_s8vector(pmt_t obj) { return obj->is_s8vector(); } -pmt_t -make_s8vector(size_t k, int8_t fill) -{ - return pmt_t(new pmt_s8vector(k, fill)); -} +pmt_t make_s8vector(size_t k, int8_t fill) { return pmt_t(new pmt_s8vector(k, fill)); } -pmt_t -init_s8vector(size_t k, const int8_t *data) +pmt_t init_s8vector(size_t k, const int8_t* data) { - return pmt_t(new pmt_s8vector(k, data)); + return pmt_t(new pmt_s8vector(k, data)); } -pmt_t -init_s8vector(size_t k, const std::vector< int8_t > &data) +pmt_t init_s8vector(size_t k, const std::vector<int8_t>& data) { - if(k) { - return pmt_t(new pmt_s8vector(k, &data[0])); - } - return pmt_t(new pmt_s8vector(k, static_cast< int8_t >(0))); // fills an empty vector with 0 + if (k) { + return pmt_t(new pmt_s8vector(k, &data[0])); + } + return pmt_t( + new pmt_s8vector(k, static_cast<int8_t>(0))); // fills an empty vector with 0 } -int8_t -s8vector_ref(pmt_t vector, size_t k) +int8_t s8vector_ref(pmt_t vector, size_t k) { - if (!vector->is_s8vector()) - throw wrong_type("pmt_s8vector_ref", vector); - return _s8vector(vector)->ref(k); + if (!vector->is_s8vector()) + throw wrong_type("pmt_s8vector_ref", vector); + return _s8vector(vector)->ref(k); } -void -s8vector_set(pmt_t vector, size_t k, int8_t obj) +void s8vector_set(pmt_t vector, size_t k, int8_t obj) { - if (!vector->is_s8vector()) - throw wrong_type("pmt_s8vector_set", vector); - _s8vector(vector)->set(k, obj); + if (!vector->is_s8vector()) + throw wrong_type("pmt_s8vector_set", vector); + _s8vector(vector)->set(k, obj); } -const int8_t * -s8vector_elements(pmt_t vector, size_t &len) +const int8_t* s8vector_elements(pmt_t vector, size_t& len) { - if (!vector->is_s8vector()) - throw wrong_type("pmt_s8vector_elements", vector); - return _s8vector(vector)->elements(len); + if (!vector->is_s8vector()) + throw wrong_type("pmt_s8vector_elements", vector); + return _s8vector(vector)->elements(len); } -const std::vector< int8_t > -s8vector_elements(pmt_t vector) +const std::vector<int8_t> s8vector_elements(pmt_t vector) { - if (!vector->is_s8vector()) - throw wrong_type("pmt_s8vector_elements", vector); - size_t len; - const int8_t *array = _s8vector(vector)->elements(len); - const std::vector< int8_t > vec(array, array+len); - return vec; + if (!vector->is_s8vector()) + throw wrong_type("pmt_s8vector_elements", vector); + size_t len; + const int8_t* array = _s8vector(vector)->elements(len); + const std::vector<int8_t> vec(array, array + len); + return vec; } -int8_t * -s8vector_writable_elements(pmt_t vector, size_t &len) +int8_t* s8vector_writable_elements(pmt_t vector, size_t& len) { - if (!vector->is_s8vector()) - throw wrong_type("pmt_s8vector_writable_elements", vector); - return _s8vector(vector)->writable_elements(len); + if (!vector->is_s8vector()) + throw wrong_type("pmt_s8vector_writable_elements", vector); + return _s8vector(vector)->writable_elements(len); } -const std::string -pmt_s8vector::string_ref(size_t k) const +const std::string pmt_s8vector::string_ref(size_t k) const { - return boost::lexical_cast< std::string, int8_t > (ref(k)); + return boost::lexical_cast<std::string, int8_t>(ref(k)); } } /* namespace pmt */ @@ -335,146 +281,125 @@ pmt_s8vector::string_ref(size_t k) const namespace pmt { -static pmt_u16vector * -_u16vector(pmt_t x) +static pmt_u16vector* _u16vector(pmt_t x) { - return dynamic_cast<pmt_u16vector*>(x.get()); + return dynamic_cast<pmt_u16vector*>(x.get()); } -pmt_u16vector::pmt_u16vector(size_t k, uint16_t fill) - : d_v(k) +pmt_u16vector::pmt_u16vector(size_t k, uint16_t fill) : d_v(k) { - for (size_t i = 0; i < k; i++) - d_v[i] = fill; + for (size_t i = 0; i < k; i++) + d_v[i] = fill; } -pmt_u16vector::pmt_u16vector(size_t k, const uint16_t *data) - : d_v(k) +pmt_u16vector::pmt_u16vector(size_t k, const uint16_t* data) : d_v(k) { - if(k) - memcpy( &d_v[0], data, k * sizeof(uint16_t) ); + if (k) + memcpy(&d_v[0], data, k * sizeof(uint16_t)); } -uint16_t -pmt_u16vector::ref(size_t k) const +uint16_t pmt_u16vector::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_u16vector_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_u16vector_ref", from_long(k)); + return d_v[k]; } -void -pmt_u16vector::set(size_t k, uint16_t x) +void pmt_u16vector::set(size_t k, uint16_t x) { - if (k >= length()) - throw out_of_range("pmt_u16vector_set", from_long(k)); - d_v[k] = x; + if (k >= length()) + throw out_of_range("pmt_u16vector_set", from_long(k)); + d_v[k] = x; } -const uint16_t * -pmt_u16vector::elements(size_t &len) +const uint16_t* pmt_u16vector::elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -uint16_t * -pmt_u16vector::writable_elements(size_t &len) +uint16_t* pmt_u16vector::writable_elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -const void* -pmt_u16vector::uniform_elements(size_t &len) +const void* pmt_u16vector::uniform_elements(size_t& len) { - len = length() * sizeof(uint16_t); - return len ? &d_v[0] : nullptr; + len = length() * sizeof(uint16_t); + return len ? &d_v[0] : nullptr; } -void* -pmt_u16vector::uniform_writable_elements(size_t &len) +void* pmt_u16vector::uniform_writable_elements(size_t& len) { - len = length() * sizeof(uint16_t); - return len ? (&d_v[0]) : nullptr; + len = length() * sizeof(uint16_t); + return len ? (&d_v[0]) : nullptr; } -bool -is_u16vector(pmt_t obj) -{ - return obj->is_u16vector(); -} +bool is_u16vector(pmt_t obj) { return obj->is_u16vector(); } -pmt_t -make_u16vector(size_t k, uint16_t fill) +pmt_t make_u16vector(size_t k, uint16_t fill) { - return pmt_t(new pmt_u16vector(k, fill)); + return pmt_t(new pmt_u16vector(k, fill)); } -pmt_t -init_u16vector(size_t k, const uint16_t *data) +pmt_t init_u16vector(size_t k, const uint16_t* data) { - return pmt_t(new pmt_u16vector(k, data)); + return pmt_t(new pmt_u16vector(k, data)); } -pmt_t -init_u16vector(size_t k, const std::vector< uint16_t > &data) +pmt_t init_u16vector(size_t k, const std::vector<uint16_t>& data) { - if(k) { - return pmt_t(new pmt_u16vector(k, &data[0])); - } - return pmt_t(new pmt_u16vector(k, static_cast< uint16_t >(0))); // fills an empty vector with 0 + if (k) { + return pmt_t(new pmt_u16vector(k, &data[0])); + } + return pmt_t( + new pmt_u16vector(k, static_cast<uint16_t>(0))); // fills an empty vector with 0 } -uint16_t -u16vector_ref(pmt_t vector, size_t k) +uint16_t u16vector_ref(pmt_t vector, size_t k) { - if (!vector->is_u16vector()) - throw wrong_type("pmt_u16vector_ref", vector); - return _u16vector(vector)->ref(k); + if (!vector->is_u16vector()) + throw wrong_type("pmt_u16vector_ref", vector); + return _u16vector(vector)->ref(k); } -void -u16vector_set(pmt_t vector, size_t k, uint16_t obj) +void u16vector_set(pmt_t vector, size_t k, uint16_t obj) { - if (!vector->is_u16vector()) - throw wrong_type("pmt_u16vector_set", vector); - _u16vector(vector)->set(k, obj); + if (!vector->is_u16vector()) + throw wrong_type("pmt_u16vector_set", vector); + _u16vector(vector)->set(k, obj); } -const uint16_t * -u16vector_elements(pmt_t vector, size_t &len) +const uint16_t* u16vector_elements(pmt_t vector, size_t& len) { - if (!vector->is_u16vector()) - throw wrong_type("pmt_u16vector_elements", vector); - return _u16vector(vector)->elements(len); + if (!vector->is_u16vector()) + throw wrong_type("pmt_u16vector_elements", vector); + return _u16vector(vector)->elements(len); } -const std::vector< uint16_t > -u16vector_elements(pmt_t vector) +const std::vector<uint16_t> u16vector_elements(pmt_t vector) { - if (!vector->is_u16vector()) - throw wrong_type("pmt_u16vector_elements", vector); - size_t len; - const uint16_t *array = _u16vector(vector)->elements(len); - const std::vector< uint16_t > vec(array, array+len); - return vec; + if (!vector->is_u16vector()) + throw wrong_type("pmt_u16vector_elements", vector); + size_t len; + const uint16_t* array = _u16vector(vector)->elements(len); + const std::vector<uint16_t> vec(array, array + len); + return vec; } -uint16_t * -u16vector_writable_elements(pmt_t vector, size_t &len) +uint16_t* u16vector_writable_elements(pmt_t vector, size_t& len) { - if (!vector->is_u16vector()) - throw wrong_type("pmt_u16vector_writable_elements", vector); - return _u16vector(vector)->writable_elements(len); + if (!vector->is_u16vector()) + throw wrong_type("pmt_u16vector_writable_elements", vector); + return _u16vector(vector)->writable_elements(len); } -const std::string -pmt_u16vector::string_ref(size_t k) const +const std::string pmt_u16vector::string_ref(size_t k) const { - return std::to_string(ref(k)); + return std::to_string(ref(k)); } } /* namespace pmt */ @@ -484,146 +409,122 @@ pmt_u16vector::string_ref(size_t k) const namespace pmt { -static pmt_s16vector * -_s16vector(pmt_t x) +static pmt_s16vector* _s16vector(pmt_t x) { - return dynamic_cast<pmt_s16vector*>(x.get()); + return dynamic_cast<pmt_s16vector*>(x.get()); } -pmt_s16vector::pmt_s16vector(size_t k, int16_t fill) - : d_v(k) +pmt_s16vector::pmt_s16vector(size_t k, int16_t fill) : d_v(k) { - for (size_t i = 0; i < k; i++) - d_v[i] = fill; + for (size_t i = 0; i < k; i++) + d_v[i] = fill; } -pmt_s16vector::pmt_s16vector(size_t k, const int16_t *data) - : d_v(k) +pmt_s16vector::pmt_s16vector(size_t k, const int16_t* data) : d_v(k) { - if(k) - memcpy( &d_v[0], data, k * sizeof(int16_t) ); + if (k) + memcpy(&d_v[0], data, k * sizeof(int16_t)); } -int16_t -pmt_s16vector::ref(size_t k) const +int16_t pmt_s16vector::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_s16vector_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_s16vector_ref", from_long(k)); + return d_v[k]; } -void -pmt_s16vector::set(size_t k, int16_t x) +void pmt_s16vector::set(size_t k, int16_t x) { - if (k >= length()) - throw out_of_range("pmt_s16vector_set", from_long(k)); - d_v[k] = x; + if (k >= length()) + throw out_of_range("pmt_s16vector_set", from_long(k)); + d_v[k] = x; } -const int16_t * -pmt_s16vector::elements(size_t &len) +const int16_t* pmt_s16vector::elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -int16_t * -pmt_s16vector::writable_elements(size_t &len) +int16_t* pmt_s16vector::writable_elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -const void* -pmt_s16vector::uniform_elements(size_t &len) +const void* pmt_s16vector::uniform_elements(size_t& len) { - len = length() * sizeof(int16_t); - return len ? &d_v[0] : nullptr; + len = length() * sizeof(int16_t); + return len ? &d_v[0] : nullptr; } -void* -pmt_s16vector::uniform_writable_elements(size_t &len) +void* pmt_s16vector::uniform_writable_elements(size_t& len) { - len = length() * sizeof(int16_t); - return len ? (&d_v[0]) : nullptr; + len = length() * sizeof(int16_t); + return len ? (&d_v[0]) : nullptr; } -bool -is_s16vector(pmt_t obj) -{ - return obj->is_s16vector(); -} +bool is_s16vector(pmt_t obj) { return obj->is_s16vector(); } -pmt_t -make_s16vector(size_t k, int16_t fill) -{ - return pmt_t(new pmt_s16vector(k, fill)); -} +pmt_t make_s16vector(size_t k, int16_t fill) { return pmt_t(new pmt_s16vector(k, fill)); } -pmt_t -init_s16vector(size_t k, const int16_t *data) +pmt_t init_s16vector(size_t k, const int16_t* data) { - return pmt_t(new pmt_s16vector(k, data)); + return pmt_t(new pmt_s16vector(k, data)); } -pmt_t -init_s16vector(size_t k, const std::vector< int16_t > &data) +pmt_t init_s16vector(size_t k, const std::vector<int16_t>& data) { - if(k) { - return pmt_t(new pmt_s16vector(k, &data[0])); - } - return pmt_t(new pmt_s16vector(k, static_cast< int16_t >(0))); // fills an empty vector with 0 + if (k) { + return pmt_t(new pmt_s16vector(k, &data[0])); + } + return pmt_t( + new pmt_s16vector(k, static_cast<int16_t>(0))); // fills an empty vector with 0 } -int16_t -s16vector_ref(pmt_t vector, size_t k) +int16_t s16vector_ref(pmt_t vector, size_t k) { - if (!vector->is_s16vector()) - throw wrong_type("pmt_s16vector_ref", vector); - return _s16vector(vector)->ref(k); + if (!vector->is_s16vector()) + throw wrong_type("pmt_s16vector_ref", vector); + return _s16vector(vector)->ref(k); } -void -s16vector_set(pmt_t vector, size_t k, int16_t obj) +void s16vector_set(pmt_t vector, size_t k, int16_t obj) { - if (!vector->is_s16vector()) - throw wrong_type("pmt_s16vector_set", vector); - _s16vector(vector)->set(k, obj); + if (!vector->is_s16vector()) + throw wrong_type("pmt_s16vector_set", vector); + _s16vector(vector)->set(k, obj); } -const int16_t * -s16vector_elements(pmt_t vector, size_t &len) +const int16_t* s16vector_elements(pmt_t vector, size_t& len) { - if (!vector->is_s16vector()) - throw wrong_type("pmt_s16vector_elements", vector); - return _s16vector(vector)->elements(len); + if (!vector->is_s16vector()) + throw wrong_type("pmt_s16vector_elements", vector); + return _s16vector(vector)->elements(len); } -const std::vector< int16_t > -s16vector_elements(pmt_t vector) +const std::vector<int16_t> s16vector_elements(pmt_t vector) { - if (!vector->is_s16vector()) - throw wrong_type("pmt_s16vector_elements", vector); - size_t len; - const int16_t *array = _s16vector(vector)->elements(len); - const std::vector< int16_t > vec(array, array+len); - return vec; + if (!vector->is_s16vector()) + throw wrong_type("pmt_s16vector_elements", vector); + size_t len; + const int16_t* array = _s16vector(vector)->elements(len); + const std::vector<int16_t> vec(array, array + len); + return vec; } -int16_t * -s16vector_writable_elements(pmt_t vector, size_t &len) +int16_t* s16vector_writable_elements(pmt_t vector, size_t& len) { - if (!vector->is_s16vector()) - throw wrong_type("pmt_s16vector_writable_elements", vector); - return _s16vector(vector)->writable_elements(len); + if (!vector->is_s16vector()) + throw wrong_type("pmt_s16vector_writable_elements", vector); + return _s16vector(vector)->writable_elements(len); } -const std::string -pmt_s16vector::string_ref(size_t k) const +const std::string pmt_s16vector::string_ref(size_t k) const { - return std::to_string(ref(k)); + return std::to_string(ref(k)); } } /* namespace pmt */ @@ -633,146 +534,125 @@ pmt_s16vector::string_ref(size_t k) const namespace pmt { -static pmt_u32vector * -_u32vector(pmt_t x) +static pmt_u32vector* _u32vector(pmt_t x) { - return dynamic_cast<pmt_u32vector*>(x.get()); + return dynamic_cast<pmt_u32vector*>(x.get()); } -pmt_u32vector::pmt_u32vector(size_t k, uint32_t fill) - : d_v(k) +pmt_u32vector::pmt_u32vector(size_t k, uint32_t fill) : d_v(k) { - for (size_t i = 0; i < k; i++) - d_v[i] = fill; + for (size_t i = 0; i < k; i++) + d_v[i] = fill; } -pmt_u32vector::pmt_u32vector(size_t k, const uint32_t *data) - : d_v(k) +pmt_u32vector::pmt_u32vector(size_t k, const uint32_t* data) : d_v(k) { - if(k) - memcpy( &d_v[0], data, k * sizeof(uint32_t) ); + if (k) + memcpy(&d_v[0], data, k * sizeof(uint32_t)); } -uint32_t -pmt_u32vector::ref(size_t k) const +uint32_t pmt_u32vector::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_u32vector_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_u32vector_ref", from_long(k)); + return d_v[k]; } -void -pmt_u32vector::set(size_t k, uint32_t x) +void pmt_u32vector::set(size_t k, uint32_t x) { - if (k >= length()) - throw out_of_range("pmt_u32vector_set", from_long(k)); - d_v[k] = x; + if (k >= length()) + throw out_of_range("pmt_u32vector_set", from_long(k)); + d_v[k] = x; } -const uint32_t * -pmt_u32vector::elements(size_t &len) +const uint32_t* pmt_u32vector::elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -uint32_t * -pmt_u32vector::writable_elements(size_t &len) +uint32_t* pmt_u32vector::writable_elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -const void* -pmt_u32vector::uniform_elements(size_t &len) +const void* pmt_u32vector::uniform_elements(size_t& len) { - len = length() * sizeof(uint32_t); - return len ? &d_v[0] : nullptr; + len = length() * sizeof(uint32_t); + return len ? &d_v[0] : nullptr; } -void* -pmt_u32vector::uniform_writable_elements(size_t &len) +void* pmt_u32vector::uniform_writable_elements(size_t& len) { - len = length() * sizeof(uint32_t); - return len ? (&d_v[0]) : nullptr; + len = length() * sizeof(uint32_t); + return len ? (&d_v[0]) : nullptr; } -bool -is_u32vector(pmt_t obj) -{ - return obj->is_u32vector(); -} +bool is_u32vector(pmt_t obj) { return obj->is_u32vector(); } -pmt_t -make_u32vector(size_t k, uint32_t fill) +pmt_t make_u32vector(size_t k, uint32_t fill) { - return pmt_t(new pmt_u32vector(k, fill)); + return pmt_t(new pmt_u32vector(k, fill)); } -pmt_t -init_u32vector(size_t k, const uint32_t *data) +pmt_t init_u32vector(size_t k, const uint32_t* data) { - return pmt_t(new pmt_u32vector(k, data)); + return pmt_t(new pmt_u32vector(k, data)); } -pmt_t -init_u32vector(size_t k, const std::vector< uint32_t > &data) +pmt_t init_u32vector(size_t k, const std::vector<uint32_t>& data) { - if(k) { - return pmt_t(new pmt_u32vector(k, &data[0])); - } - return pmt_t(new pmt_u32vector(k, static_cast< uint32_t >(0))); // fills an empty vector with 0 + if (k) { + return pmt_t(new pmt_u32vector(k, &data[0])); + } + return pmt_t( + new pmt_u32vector(k, static_cast<uint32_t>(0))); // fills an empty vector with 0 } -uint32_t -u32vector_ref(pmt_t vector, size_t k) +uint32_t u32vector_ref(pmt_t vector, size_t k) { - if (!vector->is_u32vector()) - throw wrong_type("pmt_u32vector_ref", vector); - return _u32vector(vector)->ref(k); + if (!vector->is_u32vector()) + throw wrong_type("pmt_u32vector_ref", vector); + return _u32vector(vector)->ref(k); } -void -u32vector_set(pmt_t vector, size_t k, uint32_t obj) +void u32vector_set(pmt_t vector, size_t k, uint32_t obj) { - if (!vector->is_u32vector()) - throw wrong_type("pmt_u32vector_set", vector); - _u32vector(vector)->set(k, obj); + if (!vector->is_u32vector()) + throw wrong_type("pmt_u32vector_set", vector); + _u32vector(vector)->set(k, obj); } -const uint32_t * -u32vector_elements(pmt_t vector, size_t &len) +const uint32_t* u32vector_elements(pmt_t vector, size_t& len) { - if (!vector->is_u32vector()) - throw wrong_type("pmt_u32vector_elements", vector); - return _u32vector(vector)->elements(len); + if (!vector->is_u32vector()) + throw wrong_type("pmt_u32vector_elements", vector); + return _u32vector(vector)->elements(len); } -const std::vector< uint32_t > -u32vector_elements(pmt_t vector) +const std::vector<uint32_t> u32vector_elements(pmt_t vector) { - if (!vector->is_u32vector()) - throw wrong_type("pmt_u32vector_elements", vector); - size_t len; - const uint32_t *array = _u32vector(vector)->elements(len); - const std::vector< uint32_t > vec(array, array+len); - return vec; + if (!vector->is_u32vector()) + throw wrong_type("pmt_u32vector_elements", vector); + size_t len; + const uint32_t* array = _u32vector(vector)->elements(len); + const std::vector<uint32_t> vec(array, array + len); + return vec; } -uint32_t * -u32vector_writable_elements(pmt_t vector, size_t &len) +uint32_t* u32vector_writable_elements(pmt_t vector, size_t& len) { - if (!vector->is_u32vector()) - throw wrong_type("pmt_u32vector_writable_elements", vector); - return _u32vector(vector)->writable_elements(len); + if (!vector->is_u32vector()) + throw wrong_type("pmt_u32vector_writable_elements", vector); + return _u32vector(vector)->writable_elements(len); } -const std::string -pmt_u32vector::string_ref(size_t k) const +const std::string pmt_u32vector::string_ref(size_t k) const { - return std::to_string(ref(k)); + return std::to_string(ref(k)); } } /* namespace pmt */ @@ -782,146 +662,122 @@ pmt_u32vector::string_ref(size_t k) const namespace pmt { -static pmt_s32vector * -_s32vector(pmt_t x) +static pmt_s32vector* _s32vector(pmt_t x) { - return dynamic_cast<pmt_s32vector*>(x.get()); + return dynamic_cast<pmt_s32vector*>(x.get()); } -pmt_s32vector::pmt_s32vector(size_t k, int32_t fill) - : d_v(k) +pmt_s32vector::pmt_s32vector(size_t k, int32_t fill) : d_v(k) { - for (size_t i = 0; i < k; i++) - d_v[i] = fill; + for (size_t i = 0; i < k; i++) + d_v[i] = fill; } -pmt_s32vector::pmt_s32vector(size_t k, const int32_t *data) - : d_v(k) +pmt_s32vector::pmt_s32vector(size_t k, const int32_t* data) : d_v(k) { - if(k) - memcpy( &d_v[0], data, k * sizeof(int32_t) ); + if (k) + memcpy(&d_v[0], data, k * sizeof(int32_t)); } -int32_t -pmt_s32vector::ref(size_t k) const +int32_t pmt_s32vector::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_s32vector_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_s32vector_ref", from_long(k)); + return d_v[k]; } -void -pmt_s32vector::set(size_t k, int32_t x) +void pmt_s32vector::set(size_t k, int32_t x) { - if (k >= length()) - throw out_of_range("pmt_s32vector_set", from_long(k)); - d_v[k] = x; + if (k >= length()) + throw out_of_range("pmt_s32vector_set", from_long(k)); + d_v[k] = x; } -const int32_t * -pmt_s32vector::elements(size_t &len) +const int32_t* pmt_s32vector::elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -int32_t * -pmt_s32vector::writable_elements(size_t &len) +int32_t* pmt_s32vector::writable_elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -const void* -pmt_s32vector::uniform_elements(size_t &len) +const void* pmt_s32vector::uniform_elements(size_t& len) { - len = length() * sizeof(int32_t); - return len ? &d_v[0] : nullptr; + len = length() * sizeof(int32_t); + return len ? &d_v[0] : nullptr; } -void* -pmt_s32vector::uniform_writable_elements(size_t &len) +void* pmt_s32vector::uniform_writable_elements(size_t& len) { - len = length() * sizeof(int32_t); - return len ? (&d_v[0]) : nullptr; + len = length() * sizeof(int32_t); + return len ? (&d_v[0]) : nullptr; } -bool -is_s32vector(pmt_t obj) -{ - return obj->is_s32vector(); -} +bool is_s32vector(pmt_t obj) { return obj->is_s32vector(); } -pmt_t -make_s32vector(size_t k, int32_t fill) -{ - return pmt_t(new pmt_s32vector(k, fill)); -} +pmt_t make_s32vector(size_t k, int32_t fill) { return pmt_t(new pmt_s32vector(k, fill)); } -pmt_t -init_s32vector(size_t k, const int32_t *data) +pmt_t init_s32vector(size_t k, const int32_t* data) { - return pmt_t(new pmt_s32vector(k, data)); + return pmt_t(new pmt_s32vector(k, data)); } -pmt_t -init_s32vector(size_t k, const std::vector< int32_t > &data) +pmt_t init_s32vector(size_t k, const std::vector<int32_t>& data) { - if(k) { - return pmt_t(new pmt_s32vector(k, &data[0])); - } - return pmt_t(new pmt_s32vector(k, static_cast< int32_t >(0))); // fills an empty vector with 0 + if (k) { + return pmt_t(new pmt_s32vector(k, &data[0])); + } + return pmt_t( + new pmt_s32vector(k, static_cast<int32_t>(0))); // fills an empty vector with 0 } -int32_t -s32vector_ref(pmt_t vector, size_t k) +int32_t s32vector_ref(pmt_t vector, size_t k) { - if (!vector->is_s32vector()) - throw wrong_type("pmt_s32vector_ref", vector); - return _s32vector(vector)->ref(k); + if (!vector->is_s32vector()) + throw wrong_type("pmt_s32vector_ref", vector); + return _s32vector(vector)->ref(k); } -void -s32vector_set(pmt_t vector, size_t k, int32_t obj) +void s32vector_set(pmt_t vector, size_t k, int32_t obj) { - if (!vector->is_s32vector()) - throw wrong_type("pmt_s32vector_set", vector); - _s32vector(vector)->set(k, obj); + if (!vector->is_s32vector()) + throw wrong_type("pmt_s32vector_set", vector); + _s32vector(vector)->set(k, obj); } -const int32_t * -s32vector_elements(pmt_t vector, size_t &len) +const int32_t* s32vector_elements(pmt_t vector, size_t& len) { - if (!vector->is_s32vector()) - throw wrong_type("pmt_s32vector_elements", vector); - return _s32vector(vector)->elements(len); + if (!vector->is_s32vector()) + throw wrong_type("pmt_s32vector_elements", vector); + return _s32vector(vector)->elements(len); } -const std::vector< int32_t > -s32vector_elements(pmt_t vector) +const std::vector<int32_t> s32vector_elements(pmt_t vector) { - if (!vector->is_s32vector()) - throw wrong_type("pmt_s32vector_elements", vector); - size_t len; - const int32_t *array = _s32vector(vector)->elements(len); - const std::vector< int32_t > vec(array, array+len); - return vec; + if (!vector->is_s32vector()) + throw wrong_type("pmt_s32vector_elements", vector); + size_t len; + const int32_t* array = _s32vector(vector)->elements(len); + const std::vector<int32_t> vec(array, array + len); + return vec; } -int32_t * -s32vector_writable_elements(pmt_t vector, size_t &len) +int32_t* s32vector_writable_elements(pmt_t vector, size_t& len) { - if (!vector->is_s32vector()) - throw wrong_type("pmt_s32vector_writable_elements", vector); - return _s32vector(vector)->writable_elements(len); + if (!vector->is_s32vector()) + throw wrong_type("pmt_s32vector_writable_elements", vector); + return _s32vector(vector)->writable_elements(len); } -const std::string -pmt_s32vector::string_ref(size_t k) const +const std::string pmt_s32vector::string_ref(size_t k) const { - return std::to_string(ref(k)); + return std::to_string(ref(k)); } } /* namespace pmt */ @@ -931,146 +787,125 @@ pmt_s32vector::string_ref(size_t k) const namespace pmt { -static pmt_u64vector * -_u64vector(pmt_t x) +static pmt_u64vector* _u64vector(pmt_t x) { - return dynamic_cast<pmt_u64vector*>(x.get()); + return dynamic_cast<pmt_u64vector*>(x.get()); } -pmt_u64vector::pmt_u64vector(size_t k, uint64_t fill) - : d_v(k) +pmt_u64vector::pmt_u64vector(size_t k, uint64_t fill) : d_v(k) { - for (size_t i = 0; i < k; i++) - d_v[i] = fill; + for (size_t i = 0; i < k; i++) + d_v[i] = fill; } -pmt_u64vector::pmt_u64vector(size_t k, const uint64_t *data) - : d_v(k) +pmt_u64vector::pmt_u64vector(size_t k, const uint64_t* data) : d_v(k) { - if(k) - memcpy( &d_v[0], data, k * sizeof(uint64_t) ); + if (k) + memcpy(&d_v[0], data, k * sizeof(uint64_t)); } -uint64_t -pmt_u64vector::ref(size_t k) const +uint64_t pmt_u64vector::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_u64vector_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_u64vector_ref", from_long(k)); + return d_v[k]; } -void -pmt_u64vector::set(size_t k, uint64_t x) +void pmt_u64vector::set(size_t k, uint64_t x) { - if (k >= length()) - throw out_of_range("pmt_u64vector_set", from_long(k)); - d_v[k] = x; + if (k >= length()) + throw out_of_range("pmt_u64vector_set", from_long(k)); + d_v[k] = x; } -const uint64_t * -pmt_u64vector::elements(size_t &len) +const uint64_t* pmt_u64vector::elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -uint64_t * -pmt_u64vector::writable_elements(size_t &len) +uint64_t* pmt_u64vector::writable_elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -const void* -pmt_u64vector::uniform_elements(size_t &len) +const void* pmt_u64vector::uniform_elements(size_t& len) { - len = length() * sizeof(uint64_t); - return len ? &d_v[0] : nullptr; + len = length() * sizeof(uint64_t); + return len ? &d_v[0] : nullptr; } -void* -pmt_u64vector::uniform_writable_elements(size_t &len) +void* pmt_u64vector::uniform_writable_elements(size_t& len) { - len = length() * sizeof(uint64_t); - return len ? (&d_v[0]) : nullptr; + len = length() * sizeof(uint64_t); + return len ? (&d_v[0]) : nullptr; } -bool -is_u64vector(pmt_t obj) -{ - return obj->is_u64vector(); -} +bool is_u64vector(pmt_t obj) { return obj->is_u64vector(); } -pmt_t -make_u64vector(size_t k, uint64_t fill) +pmt_t make_u64vector(size_t k, uint64_t fill) { - return pmt_t(new pmt_u64vector(k, fill)); + return pmt_t(new pmt_u64vector(k, fill)); } -pmt_t -init_u64vector(size_t k, const uint64_t *data) +pmt_t init_u64vector(size_t k, const uint64_t* data) { - return pmt_t(new pmt_u64vector(k, data)); + return pmt_t(new pmt_u64vector(k, data)); } -pmt_t -init_u64vector(size_t k, const std::vector< uint64_t > &data) +pmt_t init_u64vector(size_t k, const std::vector<uint64_t>& data) { - if(k) { - return pmt_t(new pmt_u64vector(k, &data[0])); - } - return pmt_t(new pmt_u64vector(k, static_cast< uint64_t >(0))); // fills an empty vector with 0 + if (k) { + return pmt_t(new pmt_u64vector(k, &data[0])); + } + return pmt_t( + new pmt_u64vector(k, static_cast<uint64_t>(0))); // fills an empty vector with 0 } -uint64_t -u64vector_ref(pmt_t vector, size_t k) +uint64_t u64vector_ref(pmt_t vector, size_t k) { - if (!vector->is_u64vector()) - throw wrong_type("pmt_u64vector_ref", vector); - return _u64vector(vector)->ref(k); + if (!vector->is_u64vector()) + throw wrong_type("pmt_u64vector_ref", vector); + return _u64vector(vector)->ref(k); } -void -u64vector_set(pmt_t vector, size_t k, uint64_t obj) +void u64vector_set(pmt_t vector, size_t k, uint64_t obj) { - if (!vector->is_u64vector()) - throw wrong_type("pmt_u64vector_set", vector); - _u64vector(vector)->set(k, obj); + if (!vector->is_u64vector()) + throw wrong_type("pmt_u64vector_set", vector); + _u64vector(vector)->set(k, obj); } -const uint64_t * -u64vector_elements(pmt_t vector, size_t &len) +const uint64_t* u64vector_elements(pmt_t vector, size_t& len) { - if (!vector->is_u64vector()) - throw wrong_type("pmt_u64vector_elements", vector); - return _u64vector(vector)->elements(len); + if (!vector->is_u64vector()) + throw wrong_type("pmt_u64vector_elements", vector); + return _u64vector(vector)->elements(len); } -const std::vector< uint64_t > -u64vector_elements(pmt_t vector) +const std::vector<uint64_t> u64vector_elements(pmt_t vector) { - if (!vector->is_u64vector()) - throw wrong_type("pmt_u64vector_elements", vector); - size_t len; - const uint64_t *array = _u64vector(vector)->elements(len); - const std::vector< uint64_t > vec(array, array+len); - return vec; + if (!vector->is_u64vector()) + throw wrong_type("pmt_u64vector_elements", vector); + size_t len; + const uint64_t* array = _u64vector(vector)->elements(len); + const std::vector<uint64_t> vec(array, array + len); + return vec; } -uint64_t * -u64vector_writable_elements(pmt_t vector, size_t &len) +uint64_t* u64vector_writable_elements(pmt_t vector, size_t& len) { - if (!vector->is_u64vector()) - throw wrong_type("pmt_u64vector_writable_elements", vector); - return _u64vector(vector)->writable_elements(len); + if (!vector->is_u64vector()) + throw wrong_type("pmt_u64vector_writable_elements", vector); + return _u64vector(vector)->writable_elements(len); } -const std::string -pmt_u64vector::string_ref(size_t k) const +const std::string pmt_u64vector::string_ref(size_t k) const { - return std::to_string(ref(k)); + return std::to_string(ref(k)); } } /* namespace pmt */ @@ -1080,146 +915,122 @@ pmt_u64vector::string_ref(size_t k) const namespace pmt { -static pmt_s64vector * -_s64vector(pmt_t x) +static pmt_s64vector* _s64vector(pmt_t x) { - return dynamic_cast<pmt_s64vector*>(x.get()); + return dynamic_cast<pmt_s64vector*>(x.get()); } -pmt_s64vector::pmt_s64vector(size_t k, int64_t fill) - : d_v(k) +pmt_s64vector::pmt_s64vector(size_t k, int64_t fill) : d_v(k) { - for (size_t i = 0; i < k; i++) - d_v[i] = fill; + for (size_t i = 0; i < k; i++) + d_v[i] = fill; } -pmt_s64vector::pmt_s64vector(size_t k, const int64_t *data) - : d_v(k) +pmt_s64vector::pmt_s64vector(size_t k, const int64_t* data) : d_v(k) { - if(k) - memcpy( &d_v[0], data, k * sizeof(int64_t) ); + if (k) + memcpy(&d_v[0], data, k * sizeof(int64_t)); } -int64_t -pmt_s64vector::ref(size_t k) const +int64_t pmt_s64vector::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_s64vector_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_s64vector_ref", from_long(k)); + return d_v[k]; } -void -pmt_s64vector::set(size_t k, int64_t x) +void pmt_s64vector::set(size_t k, int64_t x) { - if (k >= length()) - throw out_of_range("pmt_s64vector_set", from_long(k)); - d_v[k] = x; + if (k >= length()) + throw out_of_range("pmt_s64vector_set", from_long(k)); + d_v[k] = x; } -const int64_t * -pmt_s64vector::elements(size_t &len) +const int64_t* pmt_s64vector::elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -int64_t * -pmt_s64vector::writable_elements(size_t &len) +int64_t* pmt_s64vector::writable_elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -const void* -pmt_s64vector::uniform_elements(size_t &len) +const void* pmt_s64vector::uniform_elements(size_t& len) { - len = length() * sizeof(int64_t); - return len ? &d_v[0] : nullptr; + len = length() * sizeof(int64_t); + return len ? &d_v[0] : nullptr; } -void* -pmt_s64vector::uniform_writable_elements(size_t &len) +void* pmt_s64vector::uniform_writable_elements(size_t& len) { - len = length() * sizeof(int64_t); - return len ? (&d_v[0]) : nullptr; + len = length() * sizeof(int64_t); + return len ? (&d_v[0]) : nullptr; } -bool -is_s64vector(pmt_t obj) -{ - return obj->is_s64vector(); -} +bool is_s64vector(pmt_t obj) { return obj->is_s64vector(); } -pmt_t -make_s64vector(size_t k, int64_t fill) -{ - return pmt_t(new pmt_s64vector(k, fill)); -} +pmt_t make_s64vector(size_t k, int64_t fill) { return pmt_t(new pmt_s64vector(k, fill)); } -pmt_t -init_s64vector(size_t k, const int64_t *data) +pmt_t init_s64vector(size_t k, const int64_t* data) { - return pmt_t(new pmt_s64vector(k, data)); + return pmt_t(new pmt_s64vector(k, data)); } -pmt_t -init_s64vector(size_t k, const std::vector< int64_t > &data) +pmt_t init_s64vector(size_t k, const std::vector<int64_t>& data) { - if(k) { - return pmt_t(new pmt_s64vector(k, &data[0])); - } - return pmt_t(new pmt_s64vector(k, static_cast< int64_t >(0))); // fills an empty vector with 0 + if (k) { + return pmt_t(new pmt_s64vector(k, &data[0])); + } + return pmt_t( + new pmt_s64vector(k, static_cast<int64_t>(0))); // fills an empty vector with 0 } -int64_t -s64vector_ref(pmt_t vector, size_t k) +int64_t s64vector_ref(pmt_t vector, size_t k) { - if (!vector->is_s64vector()) - throw wrong_type("pmt_s64vector_ref", vector); - return _s64vector(vector)->ref(k); + if (!vector->is_s64vector()) + throw wrong_type("pmt_s64vector_ref", vector); + return _s64vector(vector)->ref(k); } -void -s64vector_set(pmt_t vector, size_t k, int64_t obj) +void s64vector_set(pmt_t vector, size_t k, int64_t obj) { - if (!vector->is_s64vector()) - throw wrong_type("pmt_s64vector_set", vector); - _s64vector(vector)->set(k, obj); + if (!vector->is_s64vector()) + throw wrong_type("pmt_s64vector_set", vector); + _s64vector(vector)->set(k, obj); } -const int64_t * -s64vector_elements(pmt_t vector, size_t &len) +const int64_t* s64vector_elements(pmt_t vector, size_t& len) { - if (!vector->is_s64vector()) - throw wrong_type("pmt_s64vector_elements", vector); - return _s64vector(vector)->elements(len); + if (!vector->is_s64vector()) + throw wrong_type("pmt_s64vector_elements", vector); + return _s64vector(vector)->elements(len); } -const std::vector< int64_t > -s64vector_elements(pmt_t vector) +const std::vector<int64_t> s64vector_elements(pmt_t vector) { - if (!vector->is_s64vector()) - throw wrong_type("pmt_s64vector_elements", vector); - size_t len; - const int64_t *array = _s64vector(vector)->elements(len); - const std::vector< int64_t > vec(array, array+len); - return vec; + if (!vector->is_s64vector()) + throw wrong_type("pmt_s64vector_elements", vector); + size_t len; + const int64_t* array = _s64vector(vector)->elements(len); + const std::vector<int64_t> vec(array, array + len); + return vec; } -int64_t * -s64vector_writable_elements(pmt_t vector, size_t &len) +int64_t* s64vector_writable_elements(pmt_t vector, size_t& len) { - if (!vector->is_s64vector()) - throw wrong_type("pmt_s64vector_writable_elements", vector); - return _s64vector(vector)->writable_elements(len); + if (!vector->is_s64vector()) + throw wrong_type("pmt_s64vector_writable_elements", vector); + return _s64vector(vector)->writable_elements(len); } -const std::string -pmt_s64vector::string_ref(size_t k) const +const std::string pmt_s64vector::string_ref(size_t k) const { - return std::to_string(ref(k)); + return std::to_string(ref(k)); } } /* namespace pmt */ @@ -1229,146 +1040,122 @@ pmt_s64vector::string_ref(size_t k) const namespace pmt { -static pmt_f32vector * -_f32vector(pmt_t x) +static pmt_f32vector* _f32vector(pmt_t x) { - return dynamic_cast<pmt_f32vector*>(x.get()); + return dynamic_cast<pmt_f32vector*>(x.get()); } -pmt_f32vector::pmt_f32vector(size_t k, float fill) - : d_v(k) +pmt_f32vector::pmt_f32vector(size_t k, float fill) : d_v(k) { - for (size_t i = 0; i < k; i++) - d_v[i] = fill; + for (size_t i = 0; i < k; i++) + d_v[i] = fill; } -pmt_f32vector::pmt_f32vector(size_t k, const float *data) - : d_v(k) +pmt_f32vector::pmt_f32vector(size_t k, const float* data) : d_v(k) { - if(k) - memcpy( &d_v[0], data, k * sizeof(float) ); + if (k) + memcpy(&d_v[0], data, k * sizeof(float)); } -float -pmt_f32vector::ref(size_t k) const +float pmt_f32vector::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_f32vector_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_f32vector_ref", from_long(k)); + return d_v[k]; } -void -pmt_f32vector::set(size_t k, float x) +void pmt_f32vector::set(size_t k, float x) { - if (k >= length()) - throw out_of_range("pmt_f32vector_set", from_long(k)); - d_v[k] = x; + if (k >= length()) + throw out_of_range("pmt_f32vector_set", from_long(k)); + d_v[k] = x; } -const float * -pmt_f32vector::elements(size_t &len) +const float* pmt_f32vector::elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -float * -pmt_f32vector::writable_elements(size_t &len) +float* pmt_f32vector::writable_elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -const void* -pmt_f32vector::uniform_elements(size_t &len) +const void* pmt_f32vector::uniform_elements(size_t& len) { - len = length() * sizeof(float); - return len ? &d_v[0] : nullptr; + len = length() * sizeof(float); + return len ? &d_v[0] : nullptr; } -void* -pmt_f32vector::uniform_writable_elements(size_t &len) +void* pmt_f32vector::uniform_writable_elements(size_t& len) { - len = length() * sizeof(float); - return len ? (&d_v[0]) : nullptr; + len = length() * sizeof(float); + return len ? (&d_v[0]) : nullptr; } -bool -is_f32vector(pmt_t obj) -{ - return obj->is_f32vector(); -} +bool is_f32vector(pmt_t obj) { return obj->is_f32vector(); } -pmt_t -make_f32vector(size_t k, float fill) -{ - return pmt_t(new pmt_f32vector(k, fill)); -} +pmt_t make_f32vector(size_t k, float fill) { return pmt_t(new pmt_f32vector(k, fill)); } -pmt_t -init_f32vector(size_t k, const float *data) +pmt_t init_f32vector(size_t k, const float* data) { - return pmt_t(new pmt_f32vector(k, data)); + return pmt_t(new pmt_f32vector(k, data)); } -pmt_t -init_f32vector(size_t k, const std::vector< float > &data) +pmt_t init_f32vector(size_t k, const std::vector<float>& data) { - if(k) { - return pmt_t(new pmt_f32vector(k, &data[0])); - } - return pmt_t(new pmt_f32vector(k, static_cast< float >(0))); // fills an empty vector with 0 + if (k) { + return pmt_t(new pmt_f32vector(k, &data[0])); + } + return pmt_t( + new pmt_f32vector(k, static_cast<float>(0))); // fills an empty vector with 0 } -float -f32vector_ref(pmt_t vector, size_t k) +float f32vector_ref(pmt_t vector, size_t k) { - if (!vector->is_f32vector()) - throw wrong_type("pmt_f32vector_ref", vector); - return _f32vector(vector)->ref(k); + if (!vector->is_f32vector()) + throw wrong_type("pmt_f32vector_ref", vector); + return _f32vector(vector)->ref(k); } -void -f32vector_set(pmt_t vector, size_t k, float obj) +void f32vector_set(pmt_t vector, size_t k, float obj) { - if (!vector->is_f32vector()) - throw wrong_type("pmt_f32vector_set", vector); - _f32vector(vector)->set(k, obj); + if (!vector->is_f32vector()) + throw wrong_type("pmt_f32vector_set", vector); + _f32vector(vector)->set(k, obj); } -const float * -f32vector_elements(pmt_t vector, size_t &len) +const float* f32vector_elements(pmt_t vector, size_t& len) { - if (!vector->is_f32vector()) - throw wrong_type("pmt_f32vector_elements", vector); - return _f32vector(vector)->elements(len); + if (!vector->is_f32vector()) + throw wrong_type("pmt_f32vector_elements", vector); + return _f32vector(vector)->elements(len); } -const std::vector< float > -f32vector_elements(pmt_t vector) +const std::vector<float> f32vector_elements(pmt_t vector) { - if (!vector->is_f32vector()) - throw wrong_type("pmt_f32vector_elements", vector); - size_t len; - const float *array = _f32vector(vector)->elements(len); - const std::vector< float > vec(array, array+len); - return vec; + if (!vector->is_f32vector()) + throw wrong_type("pmt_f32vector_elements", vector); + size_t len; + const float* array = _f32vector(vector)->elements(len); + const std::vector<float> vec(array, array + len); + return vec; } -float * -f32vector_writable_elements(pmt_t vector, size_t &len) +float* f32vector_writable_elements(pmt_t vector, size_t& len) { - if (!vector->is_f32vector()) - throw wrong_type("pmt_f32vector_writable_elements", vector); - return _f32vector(vector)->writable_elements(len); + if (!vector->is_f32vector()) + throw wrong_type("pmt_f32vector_writable_elements", vector); + return _f32vector(vector)->writable_elements(len); } -const std::string -pmt_f32vector::string_ref(size_t k) const +const std::string pmt_f32vector::string_ref(size_t k) const { - return boost::lexical_cast< std::string, float > (ref(k)); + return boost::lexical_cast<std::string, float>(ref(k)); } } /* namespace pmt */ @@ -1378,146 +1165,122 @@ pmt_f32vector::string_ref(size_t k) const namespace pmt { -static pmt_f64vector * -_f64vector(pmt_t x) +static pmt_f64vector* _f64vector(pmt_t x) { - return dynamic_cast<pmt_f64vector*>(x.get()); + return dynamic_cast<pmt_f64vector*>(x.get()); } -pmt_f64vector::pmt_f64vector(size_t k, double fill) - : d_v(k) +pmt_f64vector::pmt_f64vector(size_t k, double fill) : d_v(k) { - for (size_t i = 0; i < k; i++) - d_v[i] = fill; + for (size_t i = 0; i < k; i++) + d_v[i] = fill; } -pmt_f64vector::pmt_f64vector(size_t k, const double *data) - : d_v(k) +pmt_f64vector::pmt_f64vector(size_t k, const double* data) : d_v(k) { - if(k) - memcpy( &d_v[0], data, k * sizeof(double) ); + if (k) + memcpy(&d_v[0], data, k * sizeof(double)); } -double -pmt_f64vector::ref(size_t k) const +double pmt_f64vector::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_f64vector_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_f64vector_ref", from_long(k)); + return d_v[k]; } -void -pmt_f64vector::set(size_t k, double x) +void pmt_f64vector::set(size_t k, double x) { - if (k >= length()) - throw out_of_range("pmt_f64vector_set", from_long(k)); - d_v[k] = x; + if (k >= length()) + throw out_of_range("pmt_f64vector_set", from_long(k)); + d_v[k] = x; } -const double * -pmt_f64vector::elements(size_t &len) +const double* pmt_f64vector::elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -double * -pmt_f64vector::writable_elements(size_t &len) +double* pmt_f64vector::writable_elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -const void* -pmt_f64vector::uniform_elements(size_t &len) +const void* pmt_f64vector::uniform_elements(size_t& len) { - len = length() * sizeof(double); - return len ? &d_v[0] : nullptr; + len = length() * sizeof(double); + return len ? &d_v[0] : nullptr; } -void* -pmt_f64vector::uniform_writable_elements(size_t &len) +void* pmt_f64vector::uniform_writable_elements(size_t& len) { - len = length() * sizeof(double); - return len ? (&d_v[0]) : nullptr; + len = length() * sizeof(double); + return len ? (&d_v[0]) : nullptr; } -bool -is_f64vector(pmt_t obj) -{ - return obj->is_f64vector(); -} +bool is_f64vector(pmt_t obj) { return obj->is_f64vector(); } -pmt_t -make_f64vector(size_t k, double fill) -{ - return pmt_t(new pmt_f64vector(k, fill)); -} +pmt_t make_f64vector(size_t k, double fill) { return pmt_t(new pmt_f64vector(k, fill)); } -pmt_t -init_f64vector(size_t k, const double *data) +pmt_t init_f64vector(size_t k, const double* data) { - return pmt_t(new pmt_f64vector(k, data)); + return pmt_t(new pmt_f64vector(k, data)); } -pmt_t -init_f64vector(size_t k, const std::vector< double > &data) +pmt_t init_f64vector(size_t k, const std::vector<double>& data) { - if(k) { - return pmt_t(new pmt_f64vector(k, &data[0])); - } - return pmt_t(new pmt_f64vector(k, static_cast< double >(0))); // fills an empty vector with 0 + if (k) { + return pmt_t(new pmt_f64vector(k, &data[0])); + } + return pmt_t( + new pmt_f64vector(k, static_cast<double>(0))); // fills an empty vector with 0 } -double -f64vector_ref(pmt_t vector, size_t k) +double f64vector_ref(pmt_t vector, size_t k) { - if (!vector->is_f64vector()) - throw wrong_type("pmt_f64vector_ref", vector); - return _f64vector(vector)->ref(k); + if (!vector->is_f64vector()) + throw wrong_type("pmt_f64vector_ref", vector); + return _f64vector(vector)->ref(k); } -void -f64vector_set(pmt_t vector, size_t k, double obj) +void f64vector_set(pmt_t vector, size_t k, double obj) { - if (!vector->is_f64vector()) - throw wrong_type("pmt_f64vector_set", vector); - _f64vector(vector)->set(k, obj); + if (!vector->is_f64vector()) + throw wrong_type("pmt_f64vector_set", vector); + _f64vector(vector)->set(k, obj); } -const double * -f64vector_elements(pmt_t vector, size_t &len) +const double* f64vector_elements(pmt_t vector, size_t& len) { - if (!vector->is_f64vector()) - throw wrong_type("pmt_f64vector_elements", vector); - return _f64vector(vector)->elements(len); + if (!vector->is_f64vector()) + throw wrong_type("pmt_f64vector_elements", vector); + return _f64vector(vector)->elements(len); } -const std::vector< double > -f64vector_elements(pmt_t vector) +const std::vector<double> f64vector_elements(pmt_t vector) { - if (!vector->is_f64vector()) - throw wrong_type("pmt_f64vector_elements", vector); - size_t len; - const double *array = _f64vector(vector)->elements(len); - const std::vector< double > vec(array, array+len); - return vec; + if (!vector->is_f64vector()) + throw wrong_type("pmt_f64vector_elements", vector); + size_t len; + const double* array = _f64vector(vector)->elements(len); + const std::vector<double> vec(array, array + len); + return vec; } -double * -f64vector_writable_elements(pmt_t vector, size_t &len) +double* f64vector_writable_elements(pmt_t vector, size_t& len) { - if (!vector->is_f64vector()) - throw wrong_type("pmt_f64vector_writable_elements", vector); - return _f64vector(vector)->writable_elements(len); + if (!vector->is_f64vector()) + throw wrong_type("pmt_f64vector_writable_elements", vector); + return _f64vector(vector)->writable_elements(len); } -const std::string -pmt_f64vector::string_ref(size_t k) const +const std::string pmt_f64vector::string_ref(size_t k) const { - return boost::lexical_cast< std::string, double > (ref(k)); + return boost::lexical_cast<std::string, double>(ref(k)); } } /* namespace pmt */ @@ -1527,146 +1290,125 @@ pmt_f64vector::string_ref(size_t k) const namespace pmt { -static pmt_c32vector * -_c32vector(pmt_t x) +static pmt_c32vector* _c32vector(pmt_t x) { - return dynamic_cast<pmt_c32vector*>(x.get()); + return dynamic_cast<pmt_c32vector*>(x.get()); } -pmt_c32vector::pmt_c32vector(size_t k, std::complex<float> fill) - : d_v(k) +pmt_c32vector::pmt_c32vector(size_t k, std::complex<float> fill) : d_v(k) { - for (size_t i = 0; i < k; i++) - d_v[i] = fill; + for (size_t i = 0; i < k; i++) + d_v[i] = fill; } -pmt_c32vector::pmt_c32vector(size_t k, const std::complex<float> *data) - : d_v(k) +pmt_c32vector::pmt_c32vector(size_t k, const std::complex<float>* data) : d_v(k) { - if(k) - memcpy( &d_v[0], data, k * sizeof(std::complex<float>) ); + if (k) + memcpy(&d_v[0], data, k * sizeof(std::complex<float>)); } -std::complex<float> -pmt_c32vector::ref(size_t k) const +std::complex<float> pmt_c32vector::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_c32vector_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_c32vector_ref", from_long(k)); + return d_v[k]; } -void -pmt_c32vector::set(size_t k, std::complex<float> x) +void pmt_c32vector::set(size_t k, std::complex<float> x) { - if (k >= length()) - throw out_of_range("pmt_c32vector_set", from_long(k)); - d_v[k] = x; + if (k >= length()) + throw out_of_range("pmt_c32vector_set", from_long(k)); + d_v[k] = x; } -const std::complex<float> * -pmt_c32vector::elements(size_t &len) +const std::complex<float>* pmt_c32vector::elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -std::complex<float> * -pmt_c32vector::writable_elements(size_t &len) +std::complex<float>* pmt_c32vector::writable_elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -const void* -pmt_c32vector::uniform_elements(size_t &len) +const void* pmt_c32vector::uniform_elements(size_t& len) { - len = length() * sizeof(std::complex<float>); - return len ? &d_v[0] : nullptr; + len = length() * sizeof(std::complex<float>); + return len ? &d_v[0] : nullptr; } -void* -pmt_c32vector::uniform_writable_elements(size_t &len) +void* pmt_c32vector::uniform_writable_elements(size_t& len) { - len = length() * sizeof(std::complex<float>); - return len ? (&d_v[0]) : nullptr; + len = length() * sizeof(std::complex<float>); + return len ? (&d_v[0]) : nullptr; } -bool -is_c32vector(pmt_t obj) -{ - return obj->is_c32vector(); -} +bool is_c32vector(pmt_t obj) { return obj->is_c32vector(); } -pmt_t -make_c32vector(size_t k, std::complex<float> fill) +pmt_t make_c32vector(size_t k, std::complex<float> fill) { - return pmt_t(new pmt_c32vector(k, fill)); + return pmt_t(new pmt_c32vector(k, fill)); } -pmt_t -init_c32vector(size_t k, const std::complex<float> *data) +pmt_t init_c32vector(size_t k, const std::complex<float>* data) { - return pmt_t(new pmt_c32vector(k, data)); + return pmt_t(new pmt_c32vector(k, data)); } -pmt_t -init_c32vector(size_t k, const std::vector< std::complex<float> > &data) +pmt_t init_c32vector(size_t k, const std::vector<std::complex<float>>& data) { - if(k) { - return pmt_t(new pmt_c32vector(k, &data[0])); - } - return pmt_t(new pmt_c32vector(k, static_cast< std::complex<float> >(0))); // fills an empty vector with 0 + if (k) { + return pmt_t(new pmt_c32vector(k, &data[0])); + } + return pmt_t(new pmt_c32vector( + k, static_cast<std::complex<float>>(0))); // fills an empty vector with 0 } -std::complex<float> -c32vector_ref(pmt_t vector, size_t k) +std::complex<float> c32vector_ref(pmt_t vector, size_t k) { - if (!vector->is_c32vector()) - throw wrong_type("pmt_c32vector_ref", vector); - return _c32vector(vector)->ref(k); + if (!vector->is_c32vector()) + throw wrong_type("pmt_c32vector_ref", vector); + return _c32vector(vector)->ref(k); } -void -c32vector_set(pmt_t vector, size_t k, std::complex<float> obj) +void c32vector_set(pmt_t vector, size_t k, std::complex<float> obj) { - if (!vector->is_c32vector()) - throw wrong_type("pmt_c32vector_set", vector); - _c32vector(vector)->set(k, obj); + if (!vector->is_c32vector()) + throw wrong_type("pmt_c32vector_set", vector); + _c32vector(vector)->set(k, obj); } -const std::complex<float> * -c32vector_elements(pmt_t vector, size_t &len) +const std::complex<float>* c32vector_elements(pmt_t vector, size_t& len) { - if (!vector->is_c32vector()) - throw wrong_type("pmt_c32vector_elements", vector); - return _c32vector(vector)->elements(len); + if (!vector->is_c32vector()) + throw wrong_type("pmt_c32vector_elements", vector); + return _c32vector(vector)->elements(len); } -const std::vector< std::complex<float> > -c32vector_elements(pmt_t vector) +const std::vector<std::complex<float>> c32vector_elements(pmt_t vector) { - if (!vector->is_c32vector()) - throw wrong_type("pmt_c32vector_elements", vector); - size_t len; - const std::complex<float> *array = _c32vector(vector)->elements(len); - const std::vector< std::complex<float> > vec(array, array+len); - return vec; + if (!vector->is_c32vector()) + throw wrong_type("pmt_c32vector_elements", vector); + size_t len; + const std::complex<float>* array = _c32vector(vector)->elements(len); + const std::vector<std::complex<float>> vec(array, array + len); + return vec; } -std::complex<float> * -c32vector_writable_elements(pmt_t vector, size_t &len) +std::complex<float>* c32vector_writable_elements(pmt_t vector, size_t& len) { - if (!vector->is_c32vector()) - throw wrong_type("pmt_c32vector_writable_elements", vector); - return _c32vector(vector)->writable_elements(len); + if (!vector->is_c32vector()) + throw wrong_type("pmt_c32vector_writable_elements", vector); + return _c32vector(vector)->writable_elements(len); } -const std::string -pmt_c32vector::string_ref(size_t k) const +const std::string pmt_c32vector::string_ref(size_t k) const { - return boost::lexical_cast< std::string, std::complex<float> > (ref(k)); + return boost::lexical_cast<std::string, std::complex<float>>(ref(k)); } } /* namespace pmt */ @@ -1676,146 +1418,125 @@ pmt_c32vector::string_ref(size_t k) const namespace pmt { -static pmt_c64vector * -_c64vector(pmt_t x) +static pmt_c64vector* _c64vector(pmt_t x) { - return dynamic_cast<pmt_c64vector*>(x.get()); + return dynamic_cast<pmt_c64vector*>(x.get()); } -pmt_c64vector::pmt_c64vector(size_t k, std::complex<double> fill) - : d_v(k) +pmt_c64vector::pmt_c64vector(size_t k, std::complex<double> fill) : d_v(k) { - for (size_t i = 0; i < k; i++) - d_v[i] = fill; + for (size_t i = 0; i < k; i++) + d_v[i] = fill; } -pmt_c64vector::pmt_c64vector(size_t k, const std::complex<double> *data) - : d_v(k) +pmt_c64vector::pmt_c64vector(size_t k, const std::complex<double>* data) : d_v(k) { - if(k) - memcpy( &d_v[0], data, k * sizeof(std::complex<double>) ); + if (k) + memcpy(&d_v[0], data, k * sizeof(std::complex<double>)); } -std::complex<double> -pmt_c64vector::ref(size_t k) const +std::complex<double> pmt_c64vector::ref(size_t k) const { - if (k >= length()) - throw out_of_range("pmt_c64vector_ref", from_long(k)); - return d_v[k]; + if (k >= length()) + throw out_of_range("pmt_c64vector_ref", from_long(k)); + return d_v[k]; } -void -pmt_c64vector::set(size_t k, std::complex<double> x) +void pmt_c64vector::set(size_t k, std::complex<double> x) { - if (k >= length()) - throw out_of_range("pmt_c64vector_set", from_long(k)); - d_v[k] = x; + if (k >= length()) + throw out_of_range("pmt_c64vector_set", from_long(k)); + d_v[k] = x; } -const std::complex<double> * -pmt_c64vector::elements(size_t &len) +const std::complex<double>* pmt_c64vector::elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -std::complex<double> * -pmt_c64vector::writable_elements(size_t &len) +std::complex<double>* pmt_c64vector::writable_elements(size_t& len) { - len = length(); - return len ? &d_v[0] : nullptr; + len = length(); + return len ? &d_v[0] : nullptr; } -const void* -pmt_c64vector::uniform_elements(size_t &len) +const void* pmt_c64vector::uniform_elements(size_t& len) { - len = length() * sizeof(std::complex<double>); - return len ? &d_v[0] : nullptr; + len = length() * sizeof(std::complex<double>); + return len ? &d_v[0] : nullptr; } -void* -pmt_c64vector::uniform_writable_elements(size_t &len) +void* pmt_c64vector::uniform_writable_elements(size_t& len) { - len = length() * sizeof(std::complex<double>); - return len ? (&d_v[0]) : nullptr; + len = length() * sizeof(std::complex<double>); + return len ? (&d_v[0]) : nullptr; } -bool -is_c64vector(pmt_t obj) -{ - return obj->is_c64vector(); -} +bool is_c64vector(pmt_t obj) { return obj->is_c64vector(); } -pmt_t -make_c64vector(size_t k, std::complex<double> fill) +pmt_t make_c64vector(size_t k, std::complex<double> fill) { - return pmt_t(new pmt_c64vector(k, fill)); + return pmt_t(new pmt_c64vector(k, fill)); } -pmt_t -init_c64vector(size_t k, const std::complex<double> *data) +pmt_t init_c64vector(size_t k, const std::complex<double>* data) { - return pmt_t(new pmt_c64vector(k, data)); + return pmt_t(new pmt_c64vector(k, data)); } -pmt_t -init_c64vector(size_t k, const std::vector< std::complex<double> > &data) +pmt_t init_c64vector(size_t k, const std::vector<std::complex<double>>& data) { - if(k) { - return pmt_t(new pmt_c64vector(k, &data[0])); - } - return pmt_t(new pmt_c64vector(k, static_cast< std::complex<double> >(0))); // fills an empty vector with 0 + if (k) { + return pmt_t(new pmt_c64vector(k, &data[0])); + } + return pmt_t(new pmt_c64vector( + k, static_cast<std::complex<double>>(0))); // fills an empty vector with 0 } -std::complex<double> -c64vector_ref(pmt_t vector, size_t k) +std::complex<double> c64vector_ref(pmt_t vector, size_t k) { - if (!vector->is_c64vector()) - throw wrong_type("pmt_c64vector_ref", vector); - return _c64vector(vector)->ref(k); + if (!vector->is_c64vector()) + throw wrong_type("pmt_c64vector_ref", vector); + return _c64vector(vector)->ref(k); } -void -c64vector_set(pmt_t vector, size_t k, std::complex<double> obj) +void c64vector_set(pmt_t vector, size_t k, std::complex<double> obj) { - if (!vector->is_c64vector()) - throw wrong_type("pmt_c64vector_set", vector); - _c64vector(vector)->set(k, obj); + if (!vector->is_c64vector()) + throw wrong_type("pmt_c64vector_set", vector); + _c64vector(vector)->set(k, obj); } -const std::complex<double> * -c64vector_elements(pmt_t vector, size_t &len) +const std::complex<double>* c64vector_elements(pmt_t vector, size_t& len) { - if (!vector->is_c64vector()) - throw wrong_type("pmt_c64vector_elements", vector); - return _c64vector(vector)->elements(len); + if (!vector->is_c64vector()) + throw wrong_type("pmt_c64vector_elements", vector); + return _c64vector(vector)->elements(len); } -const std::vector< std::complex<double> > -c64vector_elements(pmt_t vector) +const std::vector<std::complex<double>> c64vector_elements(pmt_t vector) { - if (!vector->is_c64vector()) - throw wrong_type("pmt_c64vector_elements", vector); - size_t len; - const std::complex<double> *array = _c64vector(vector)->elements(len); - const std::vector< std::complex<double> > vec(array, array+len); - return vec; + if (!vector->is_c64vector()) + throw wrong_type("pmt_c64vector_elements", vector); + size_t len; + const std::complex<double>* array = _c64vector(vector)->elements(len); + const std::vector<std::complex<double>> vec(array, array + len); + return vec; } -std::complex<double> * -c64vector_writable_elements(pmt_t vector, size_t &len) +std::complex<double>* c64vector_writable_elements(pmt_t vector, size_t& len) { - if (!vector->is_c64vector()) - throw wrong_type("pmt_c64vector_writable_elements", vector); - return _c64vector(vector)->writable_elements(len); + if (!vector->is_c64vector()) + throw wrong_type("pmt_c64vector_writable_elements", vector); + return _c64vector(vector)->writable_elements(len); } -const std::string -pmt_c64vector::string_ref(size_t k) const +const std::string pmt_c64vector::string_ref(size_t k) const { - return boost::lexical_cast< std::string, std::complex<double> > (ref(k)); + return boost::lexical_cast<std::string, std::complex<double>>(ref(k)); } } /* namespace pmt */ diff --git a/gnuradio-runtime/lib/pmt/pmt_unv_int.h b/gnuradio-runtime/lib/pmt/pmt_unv_int.h index 4b4364b411..c2e2617f63 100644 --- a/gnuradio-runtime/lib/pmt/pmt_unv_int.h +++ b/gnuradio-runtime/lib/pmt/pmt_unv_int.h @@ -28,29 +28,29 @@ #include <vector> #include <cstdint> -namespace pmt{ +namespace pmt { //////////////////////////////////////////////////////////////////////////// // pmt_u8vector //////////////////////////////////////////////////////////////////////////// class PMT_API pmt_u8vector : public pmt_uniform_vector { - std::vector< uint8_t > d_v; + std::vector<uint8_t> d_v; public: - pmt_u8vector(size_t k, uint8_t fill); - pmt_u8vector(size_t k, const uint8_t *data); - // ~pmt_u8vector(); - - bool is_u8vector() const { return true; } - size_t length() const { return d_v.size(); } - size_t itemsize() const { return sizeof(uint8_t); } - uint8_t ref(size_t k) const; - void set(size_t k, uint8_t x); - const uint8_t *elements(size_t &len); - uint8_t *writable_elements(size_t &len); - const void *uniform_elements(size_t &len); - void *uniform_writable_elements(size_t &len); - virtual const std::string string_ref(size_t k) const; + pmt_u8vector(size_t k, uint8_t fill); + pmt_u8vector(size_t k, const uint8_t* data); + // ~pmt_u8vector(); + + bool is_u8vector() const { return true; } + size_t length() const { return d_v.size(); } + size_t itemsize() const { return sizeof(uint8_t); } + uint8_t ref(size_t k) const; + void set(size_t k, uint8_t x); + const uint8_t* elements(size_t& len); + uint8_t* writable_elements(size_t& len); + const void* uniform_elements(size_t& len); + void* uniform_writable_elements(size_t& len); + virtual const std::string string_ref(size_t k) const; }; //////////////////////////////////////////////////////////////////////////// @@ -59,23 +59,23 @@ public: class pmt_s8vector : public pmt_uniform_vector { - std::vector< int8_t > d_v; + std::vector<int8_t> d_v; public: - pmt_s8vector(size_t k, int8_t fill); - pmt_s8vector(size_t k, const int8_t *data); - // ~pmt_s8vector(); - - bool is_s8vector() const { return true; } - size_t length() const { return d_v.size(); } - size_t itemsize() const { return sizeof(int8_t); } - int8_t ref(size_t k) const; - void set(size_t k, int8_t x); - const int8_t *elements(size_t &len); - int8_t *writable_elements(size_t &len); - const void *uniform_elements(size_t &len); - void *uniform_writable_elements(size_t &len); - virtual const std::string string_ref(size_t k) const; + pmt_s8vector(size_t k, int8_t fill); + pmt_s8vector(size_t k, const int8_t* data); + // ~pmt_s8vector(); + + bool is_s8vector() const { return true; } + size_t length() const { return d_v.size(); } + size_t itemsize() const { return sizeof(int8_t); } + int8_t ref(size_t k) const; + void set(size_t k, int8_t x); + const int8_t* elements(size_t& len); + int8_t* writable_elements(size_t& len); + const void* uniform_elements(size_t& len); + void* uniform_writable_elements(size_t& len); + virtual const std::string string_ref(size_t k) const; }; //////////////////////////////////////////////////////////////////////////// @@ -84,23 +84,23 @@ public: class pmt_u16vector : public pmt_uniform_vector { - std::vector< uint16_t > d_v; + std::vector<uint16_t> d_v; public: - pmt_u16vector(size_t k, uint16_t fill); - pmt_u16vector(size_t k, const uint16_t *data); - // ~pmt_u16vector(); - - bool is_u16vector() const { return true; } - size_t length() const { return d_v.size(); } - size_t itemsize() const { return sizeof(uint16_t); } - uint16_t ref(size_t k) const; - void set(size_t k, uint16_t x); - const uint16_t *elements(size_t &len); - uint16_t *writable_elements(size_t &len); - const void *uniform_elements(size_t &len); - void *uniform_writable_elements(size_t &len); - virtual const std::string string_ref(size_t k) const; + pmt_u16vector(size_t k, uint16_t fill); + pmt_u16vector(size_t k, const uint16_t* data); + // ~pmt_u16vector(); + + bool is_u16vector() const { return true; } + size_t length() const { return d_v.size(); } + size_t itemsize() const { return sizeof(uint16_t); } + uint16_t ref(size_t k) const; + void set(size_t k, uint16_t x); + const uint16_t* elements(size_t& len); + uint16_t* writable_elements(size_t& len); + const void* uniform_elements(size_t& len); + void* uniform_writable_elements(size_t& len); + virtual const std::string string_ref(size_t k) const; }; //////////////////////////////////////////////////////////////////////////// @@ -109,23 +109,23 @@ public: class pmt_s16vector : public pmt_uniform_vector { - std::vector< int16_t > d_v; + std::vector<int16_t> d_v; public: - pmt_s16vector(size_t k, int16_t fill); - pmt_s16vector(size_t k, const int16_t *data); - // ~pmt_s16vector(); - - bool is_s16vector() const { return true; } - size_t length() const { return d_v.size(); } - size_t itemsize() const { return sizeof(int16_t); } - int16_t ref(size_t k) const; - void set(size_t k, int16_t x); - const int16_t *elements(size_t &len); - int16_t *writable_elements(size_t &len); - const void *uniform_elements(size_t &len); - void *uniform_writable_elements(size_t &len); - virtual const std::string string_ref(size_t k) const; + pmt_s16vector(size_t k, int16_t fill); + pmt_s16vector(size_t k, const int16_t* data); + // ~pmt_s16vector(); + + bool is_s16vector() const { return true; } + size_t length() const { return d_v.size(); } + size_t itemsize() const { return sizeof(int16_t); } + int16_t ref(size_t k) const; + void set(size_t k, int16_t x); + const int16_t* elements(size_t& len); + int16_t* writable_elements(size_t& len); + const void* uniform_elements(size_t& len); + void* uniform_writable_elements(size_t& len); + virtual const std::string string_ref(size_t k) const; }; //////////////////////////////////////////////////////////////////////////// @@ -134,23 +134,23 @@ public: class pmt_u32vector : public pmt_uniform_vector { - std::vector< uint32_t > d_v; + std::vector<uint32_t> d_v; public: - pmt_u32vector(size_t k, uint32_t fill); - pmt_u32vector(size_t k, const uint32_t *data); - // ~pmt_u32vector(); - - bool is_u32vector() const { return true; } - size_t length() const { return d_v.size(); } - size_t itemsize() const { return sizeof(uint32_t); } - uint32_t ref(size_t k) const; - void set(size_t k, uint32_t x); - const uint32_t *elements(size_t &len); - uint32_t *writable_elements(size_t &len); - const void *uniform_elements(size_t &len); - void *uniform_writable_elements(size_t &len); - virtual const std::string string_ref(size_t k) const; + pmt_u32vector(size_t k, uint32_t fill); + pmt_u32vector(size_t k, const uint32_t* data); + // ~pmt_u32vector(); + + bool is_u32vector() const { return true; } + size_t length() const { return d_v.size(); } + size_t itemsize() const { return sizeof(uint32_t); } + uint32_t ref(size_t k) const; + void set(size_t k, uint32_t x); + const uint32_t* elements(size_t& len); + uint32_t* writable_elements(size_t& len); + const void* uniform_elements(size_t& len); + void* uniform_writable_elements(size_t& len); + virtual const std::string string_ref(size_t k) const; }; //////////////////////////////////////////////////////////////////////////// @@ -159,23 +159,23 @@ public: class pmt_s32vector : public pmt_uniform_vector { - std::vector< int32_t > d_v; + std::vector<int32_t> d_v; public: - pmt_s32vector(size_t k, int32_t fill); - pmt_s32vector(size_t k, const int32_t *data); - // ~pmt_s32vector(); - - bool is_s32vector() const { return true; } - size_t length() const { return d_v.size(); } - size_t itemsize() const { return sizeof(int32_t); } - int32_t ref(size_t k) const; - void set(size_t k, int32_t x); - const int32_t *elements(size_t &len); - int32_t *writable_elements(size_t &len); - const void *uniform_elements(size_t &len); - void *uniform_writable_elements(size_t &len); - virtual const std::string string_ref(size_t k) const; + pmt_s32vector(size_t k, int32_t fill); + pmt_s32vector(size_t k, const int32_t* data); + // ~pmt_s32vector(); + + bool is_s32vector() const { return true; } + size_t length() const { return d_v.size(); } + size_t itemsize() const { return sizeof(int32_t); } + int32_t ref(size_t k) const; + void set(size_t k, int32_t x); + const int32_t* elements(size_t& len); + int32_t* writable_elements(size_t& len); + const void* uniform_elements(size_t& len); + void* uniform_writable_elements(size_t& len); + virtual const std::string string_ref(size_t k) const; }; //////////////////////////////////////////////////////////////////////////// @@ -184,23 +184,23 @@ public: class pmt_u64vector : public pmt_uniform_vector { - std::vector< uint64_t > d_v; + std::vector<uint64_t> d_v; public: - pmt_u64vector(size_t k, uint64_t fill); - pmt_u64vector(size_t k, const uint64_t *data); - // ~pmt_u64vector(); - - bool is_u64vector() const { return true; } - size_t length() const { return d_v.size(); } - size_t itemsize() const { return sizeof(uint64_t); } - uint64_t ref(size_t k) const; - void set(size_t k, uint64_t x); - const uint64_t *elements(size_t &len); - uint64_t *writable_elements(size_t &len); - const void *uniform_elements(size_t &len); - void *uniform_writable_elements(size_t &len); - virtual const std::string string_ref(size_t k) const; + pmt_u64vector(size_t k, uint64_t fill); + pmt_u64vector(size_t k, const uint64_t* data); + // ~pmt_u64vector(); + + bool is_u64vector() const { return true; } + size_t length() const { return d_v.size(); } + size_t itemsize() const { return sizeof(uint64_t); } + uint64_t ref(size_t k) const; + void set(size_t k, uint64_t x); + const uint64_t* elements(size_t& len); + uint64_t* writable_elements(size_t& len); + const void* uniform_elements(size_t& len); + void* uniform_writable_elements(size_t& len); + virtual const std::string string_ref(size_t k) const; }; //////////////////////////////////////////////////////////////////////////// @@ -209,23 +209,23 @@ public: class pmt_s64vector : public pmt_uniform_vector { - std::vector< int64_t > d_v; + std::vector<int64_t> d_v; public: - pmt_s64vector(size_t k, int64_t fill); - pmt_s64vector(size_t k, const int64_t *data); - // ~pmt_s64vector(); - - bool is_s64vector() const { return true; } - size_t length() const { return d_v.size(); } - size_t itemsize() const { return sizeof(int64_t); } - int64_t ref(size_t k) const; - void set(size_t k, int64_t x); - const int64_t *elements(size_t &len); - int64_t *writable_elements(size_t &len); - const void *uniform_elements(size_t &len); - void *uniform_writable_elements(size_t &len); - virtual const std::string string_ref(size_t k) const; + pmt_s64vector(size_t k, int64_t fill); + pmt_s64vector(size_t k, const int64_t* data); + // ~pmt_s64vector(); + + bool is_s64vector() const { return true; } + size_t length() const { return d_v.size(); } + size_t itemsize() const { return sizeof(int64_t); } + int64_t ref(size_t k) const; + void set(size_t k, int64_t x); + const int64_t* elements(size_t& len); + int64_t* writable_elements(size_t& len); + const void* uniform_elements(size_t& len); + void* uniform_writable_elements(size_t& len); + virtual const std::string string_ref(size_t k) const; }; //////////////////////////////////////////////////////////////////////////// @@ -234,23 +234,23 @@ public: class pmt_f32vector : public pmt_uniform_vector { - std::vector< float > d_v; + std::vector<float> d_v; public: - pmt_f32vector(size_t k, float fill); - pmt_f32vector(size_t k, const float *data); - // ~pmt_f32vector(); - - bool is_f32vector() const { return true; } - size_t length() const { return d_v.size(); } - size_t itemsize() const { return sizeof(float); } - float ref(size_t k) const; - void set(size_t k, float x); - const float *elements(size_t &len); - float *writable_elements(size_t &len); - const void *uniform_elements(size_t &len); - void *uniform_writable_elements(size_t &len); - virtual const std::string string_ref(size_t k) const; + pmt_f32vector(size_t k, float fill); + pmt_f32vector(size_t k, const float* data); + // ~pmt_f32vector(); + + bool is_f32vector() const { return true; } + size_t length() const { return d_v.size(); } + size_t itemsize() const { return sizeof(float); } + float ref(size_t k) const; + void set(size_t k, float x); + const float* elements(size_t& len); + float* writable_elements(size_t& len); + const void* uniform_elements(size_t& len); + void* uniform_writable_elements(size_t& len); + virtual const std::string string_ref(size_t k) const; }; //////////////////////////////////////////////////////////////////////////// @@ -259,23 +259,23 @@ public: class pmt_f64vector : public pmt_uniform_vector { - std::vector< double > d_v; + std::vector<double> d_v; public: - pmt_f64vector(size_t k, double fill); - pmt_f64vector(size_t k, const double *data); - // ~pmt_f64vector(); - - bool is_f64vector() const { return true; } - size_t length() const { return d_v.size(); } - size_t itemsize() const { return sizeof(double); } - double ref(size_t k) const; - void set(size_t k, double x); - const double *elements(size_t &len); - double *writable_elements(size_t &len); - const void *uniform_elements(size_t &len); - void *uniform_writable_elements(size_t &len); - virtual const std::string string_ref(size_t k) const; + pmt_f64vector(size_t k, double fill); + pmt_f64vector(size_t k, const double* data); + // ~pmt_f64vector(); + + bool is_f64vector() const { return true; } + size_t length() const { return d_v.size(); } + size_t itemsize() const { return sizeof(double); } + double ref(size_t k) const; + void set(size_t k, double x); + const double* elements(size_t& len); + double* writable_elements(size_t& len); + const void* uniform_elements(size_t& len); + void* uniform_writable_elements(size_t& len); + virtual const std::string string_ref(size_t k) const; }; //////////////////////////////////////////////////////////////////////////// @@ -284,23 +284,23 @@ public: class pmt_c32vector : public pmt_uniform_vector { - std::vector< std::complex<float> > d_v; + std::vector<std::complex<float>> d_v; public: - pmt_c32vector(size_t k, std::complex<float> fill); - pmt_c32vector(size_t k, const std::complex<float> *data); - // ~pmt_c32vector(); - - bool is_c32vector() const { return true; } - size_t length() const { return d_v.size(); } - size_t itemsize() const { return sizeof(std::complex<float>); } - std::complex<float> ref(size_t k) const; - void set(size_t k, std::complex<float> x); - const std::complex<float> *elements(size_t &len); - std::complex<float> *writable_elements(size_t &len); - const void *uniform_elements(size_t &len); - void *uniform_writable_elements(size_t &len); - virtual const std::string string_ref(size_t k) const; + pmt_c32vector(size_t k, std::complex<float> fill); + pmt_c32vector(size_t k, const std::complex<float>* data); + // ~pmt_c32vector(); + + bool is_c32vector() const { return true; } + size_t length() const { return d_v.size(); } + size_t itemsize() const { return sizeof(std::complex<float>); } + std::complex<float> ref(size_t k) const; + void set(size_t k, std::complex<float> x); + const std::complex<float>* elements(size_t& len); + std::complex<float>* writable_elements(size_t& len); + const void* uniform_elements(size_t& len); + void* uniform_writable_elements(size_t& len); + virtual const std::string string_ref(size_t k) const; }; //////////////////////////////////////////////////////////////////////////// @@ -309,23 +309,23 @@ public: class pmt_c64vector : public pmt_uniform_vector { - std::vector< std::complex<double> > d_v; + std::vector<std::complex<double>> d_v; public: - pmt_c64vector(size_t k, std::complex<double> fill); - pmt_c64vector(size_t k, const std::complex<double> *data); - // ~pmt_c64vector(); - - bool is_c64vector() const { return true; } - size_t length() const { return d_v.size(); } - size_t itemsize() const { return sizeof(std::complex<double>); } - std::complex<double> ref(size_t k) const; - void set(size_t k, std::complex<double> x); - const std::complex<double> *elements(size_t &len); - std::complex<double> *writable_elements(size_t &len); - const void *uniform_elements(size_t &len); - void *uniform_writable_elements(size_t &len); - virtual const std::string string_ref(size_t k) const; + pmt_c64vector(size_t k, std::complex<double> fill); + pmt_c64vector(size_t k, const std::complex<double>* data); + // ~pmt_c64vector(); + + bool is_c64vector() const { return true; } + size_t length() const { return d_v.size(); } + size_t itemsize() const { return sizeof(std::complex<double>); } + std::complex<double> ref(size_t k) const; + void set(size_t k, std::complex<double> x); + const std::complex<double>* elements(size_t& len); + std::complex<double>* writable_elements(size_t& len); + const void* uniform_elements(size_t& len); + void* uniform_writable_elements(size_t& len); + virtual const std::string string_ref(size_t k) const; }; } /* namespace pmt */ #endif diff --git a/gnuradio-runtime/lib/pmt/qa_pmt_prims.cc b/gnuradio-runtime/lib/pmt/qa_pmt_prims.cc index 356cf95203..b715d69df4 100644 --- a/gnuradio-runtime/lib/pmt/qa_pmt_prims.cc +++ b/gnuradio-runtime/lib/pmt/qa_pmt_prims.cc @@ -28,384 +28,397 @@ #include <cstring> #include <sstream> -BOOST_AUTO_TEST_CASE(test_symbols) { - BOOST_CHECK(!pmt::is_symbol(pmt::PMT_T)); - BOOST_CHECK(!pmt::is_symbol(pmt::PMT_F)); - BOOST_CHECK_THROW(pmt::symbol_to_string(pmt::PMT_F), pmt::wrong_type); - - pmt::pmt_t sym1 = pmt::mp("test"); - BOOST_CHECK(pmt::is_symbol(sym1)); - BOOST_CHECK_EQUAL(std::string("test"), pmt::symbol_to_string(sym1)); - BOOST_CHECK(pmt::is_true(sym1)); - BOOST_CHECK(!pmt::is_false(sym1)); - - pmt::pmt_t sym2 = pmt::mp("foo"); - pmt::pmt_t sym3 = pmt::mp("test"); - BOOST_CHECK_EQUAL(sym1, sym3); - BOOST_CHECK(sym1 != sym2); - BOOST_CHECK(sym1 == sym3); - - static const int N = 2048; - std::vector<pmt::pmt_t> v1(N); - std::vector<pmt::pmt_t> v2(N); - - // generate a bunch of symbols - for (int i = 0; i < N; i++){ - std::string buf = str(boost::format("test-%d") % i); - v1[i] = pmt::mp(buf.c_str()); - } - - // confirm that they are all unique - for (int i = 0; i < N; i++) - for (int j = i + 1; j < N; j++) - BOOST_CHECK(v1[i] != v1[j]); - - // generate the same symbols again - for (int i = 0; i < N; i++){ - std::string buf = str(boost::format("test-%d") % i); - v2[i] = pmt::mp(buf.c_str()); - } - - // confirm that we get the same ones back - for (int i = 0; i < N; i++) - BOOST_CHECK(v1[i] == v2[i]); +BOOST_AUTO_TEST_CASE(test_symbols) +{ + BOOST_CHECK(!pmt::is_symbol(pmt::PMT_T)); + BOOST_CHECK(!pmt::is_symbol(pmt::PMT_F)); + BOOST_CHECK_THROW(pmt::symbol_to_string(pmt::PMT_F), pmt::wrong_type); + + pmt::pmt_t sym1 = pmt::mp("test"); + BOOST_CHECK(pmt::is_symbol(sym1)); + BOOST_CHECK_EQUAL(std::string("test"), pmt::symbol_to_string(sym1)); + BOOST_CHECK(pmt::is_true(sym1)); + BOOST_CHECK(!pmt::is_false(sym1)); + + pmt::pmt_t sym2 = pmt::mp("foo"); + pmt::pmt_t sym3 = pmt::mp("test"); + BOOST_CHECK_EQUAL(sym1, sym3); + BOOST_CHECK(sym1 != sym2); + BOOST_CHECK(sym1 == sym3); + + static const int N = 2048; + std::vector<pmt::pmt_t> v1(N); + std::vector<pmt::pmt_t> v2(N); + + // generate a bunch of symbols + for (int i = 0; i < N; i++) { + std::string buf = str(boost::format("test-%d") % i); + v1[i] = pmt::mp(buf.c_str()); + } + + // confirm that they are all unique + for (int i = 0; i < N; i++) + for (int j = i + 1; j < N; j++) + BOOST_CHECK(v1[i] != v1[j]); + + // generate the same symbols again + for (int i = 0; i < N; i++) { + std::string buf = str(boost::format("test-%d") % i); + v2[i] = pmt::mp(buf.c_str()); + } + + // confirm that we get the same ones back + for (int i = 0; i < N; i++) + BOOST_CHECK(v1[i] == v2[i]); } -BOOST_AUTO_TEST_CASE(test_booleans) { - pmt::pmt_t sym = pmt::mp("test"); - BOOST_CHECK(pmt::is_bool(pmt::PMT_T)); - BOOST_CHECK(pmt::is_bool(pmt::PMT_F)); - BOOST_CHECK(!pmt::is_bool(sym)); - BOOST_CHECK_EQUAL(pmt::from_bool(false), pmt::PMT_F); - BOOST_CHECK_EQUAL(pmt::from_bool(true), pmt::PMT_T); - BOOST_CHECK_EQUAL(false, pmt::to_bool(pmt::PMT_F)); - BOOST_CHECK_EQUAL(true, pmt::to_bool(pmt::PMT_T)); - BOOST_CHECK_THROW(pmt::to_bool(sym), pmt::wrong_type); +BOOST_AUTO_TEST_CASE(test_booleans) +{ + pmt::pmt_t sym = pmt::mp("test"); + BOOST_CHECK(pmt::is_bool(pmt::PMT_T)); + BOOST_CHECK(pmt::is_bool(pmt::PMT_F)); + BOOST_CHECK(!pmt::is_bool(sym)); + BOOST_CHECK_EQUAL(pmt::from_bool(false), pmt::PMT_F); + BOOST_CHECK_EQUAL(pmt::from_bool(true), pmt::PMT_T); + BOOST_CHECK_EQUAL(false, pmt::to_bool(pmt::PMT_F)); + BOOST_CHECK_EQUAL(true, pmt::to_bool(pmt::PMT_T)); + BOOST_CHECK_THROW(pmt::to_bool(sym), pmt::wrong_type); } -BOOST_AUTO_TEST_CASE(test_integers) { - pmt::pmt_t p1 = pmt::from_long(1); - pmt::pmt_t m1 = pmt::from_long(-1); - BOOST_CHECK(!pmt::is_integer(pmt::PMT_T)); - BOOST_CHECK(pmt::is_integer(p1)); - BOOST_CHECK(pmt::is_integer(m1)); - BOOST_CHECK_THROW(pmt::to_long(pmt::PMT_T), pmt::wrong_type); - BOOST_CHECK_EQUAL(-1L, pmt::to_long(m1)); - BOOST_CHECK_EQUAL(1L, pmt::to_long(p1)); +BOOST_AUTO_TEST_CASE(test_integers) +{ + pmt::pmt_t p1 = pmt::from_long(1); + pmt::pmt_t m1 = pmt::from_long(-1); + BOOST_CHECK(!pmt::is_integer(pmt::PMT_T)); + BOOST_CHECK(pmt::is_integer(p1)); + BOOST_CHECK(pmt::is_integer(m1)); + BOOST_CHECK_THROW(pmt::to_long(pmt::PMT_T), pmt::wrong_type); + BOOST_CHECK_EQUAL(-1L, pmt::to_long(m1)); + BOOST_CHECK_EQUAL(1L, pmt::to_long(p1)); } -BOOST_AUTO_TEST_CASE(test_uint64s) { - pmt::pmt_t p1 = pmt::from_uint64((uint64_t)1); - pmt::pmt_t m1 = pmt::from_uint64((uint64_t)8589934592ULL); - BOOST_CHECK(!pmt::is_uint64(pmt::PMT_T)); - BOOST_CHECK(pmt::is_uint64(p1)); - BOOST_CHECK(pmt::is_uint64(m1)); - BOOST_CHECK_THROW(pmt::to_uint64(pmt::PMT_T), pmt::wrong_type); - BOOST_CHECK_EQUAL((uint64_t)8589934592ULL, (uint64_t)pmt::to_uint64(m1)); - BOOST_CHECK_EQUAL((uint64_t)1ULL, (uint64_t)pmt::to_uint64(p1)); +BOOST_AUTO_TEST_CASE(test_uint64s) +{ + pmt::pmt_t p1 = pmt::from_uint64((uint64_t)1); + pmt::pmt_t m1 = pmt::from_uint64((uint64_t)8589934592ULL); + BOOST_CHECK(!pmt::is_uint64(pmt::PMT_T)); + BOOST_CHECK(pmt::is_uint64(p1)); + BOOST_CHECK(pmt::is_uint64(m1)); + BOOST_CHECK_THROW(pmt::to_uint64(pmt::PMT_T), pmt::wrong_type); + BOOST_CHECK_EQUAL((uint64_t)8589934592ULL, (uint64_t)pmt::to_uint64(m1)); + BOOST_CHECK_EQUAL((uint64_t)1ULL, (uint64_t)pmt::to_uint64(p1)); } -BOOST_AUTO_TEST_CASE(test_reals) { - pmt::pmt_t p1 = pmt::from_double(1); - pmt::pmt_t m1 = pmt::from_double(-1); - BOOST_CHECK(!pmt::is_real(pmt::PMT_T)); - BOOST_CHECK(pmt::is_real(p1)); - BOOST_CHECK(pmt::is_real(m1)); - BOOST_CHECK_THROW(pmt::to_double(pmt::PMT_T), pmt::wrong_type); - BOOST_CHECK_EQUAL(-1.0, pmt::to_double(m1)); - BOOST_CHECK_EQUAL(1.0, pmt::to_double(p1)); - BOOST_CHECK_EQUAL(1.0, pmt::to_double(pmt::from_long(1))); - - pmt::pmt_t p2 = pmt::from_float(1); - pmt::pmt_t m2 = pmt::from_float(-1); - BOOST_CHECK(pmt::is_real(p2)); - BOOST_CHECK(pmt::is_real(m2)); - BOOST_CHECK_THROW(pmt::to_float(pmt::PMT_T), pmt::wrong_type); - BOOST_CHECK_EQUAL(float(-1.0), pmt::to_float(m2)); - BOOST_CHECK_EQUAL(float(1.0), pmt::to_float(p2)); - BOOST_CHECK_EQUAL(float(1.0), pmt::to_float(pmt::from_long(1))); +BOOST_AUTO_TEST_CASE(test_reals) +{ + pmt::pmt_t p1 = pmt::from_double(1); + pmt::pmt_t m1 = pmt::from_double(-1); + BOOST_CHECK(!pmt::is_real(pmt::PMT_T)); + BOOST_CHECK(pmt::is_real(p1)); + BOOST_CHECK(pmt::is_real(m1)); + BOOST_CHECK_THROW(pmt::to_double(pmt::PMT_T), pmt::wrong_type); + BOOST_CHECK_EQUAL(-1.0, pmt::to_double(m1)); + BOOST_CHECK_EQUAL(1.0, pmt::to_double(p1)); + BOOST_CHECK_EQUAL(1.0, pmt::to_double(pmt::from_long(1))); + + pmt::pmt_t p2 = pmt::from_float(1); + pmt::pmt_t m2 = pmt::from_float(-1); + BOOST_CHECK(pmt::is_real(p2)); + BOOST_CHECK(pmt::is_real(m2)); + BOOST_CHECK_THROW(pmt::to_float(pmt::PMT_T), pmt::wrong_type); + BOOST_CHECK_EQUAL(float(-1.0), pmt::to_float(m2)); + BOOST_CHECK_EQUAL(float(1.0), pmt::to_float(p2)); + BOOST_CHECK_EQUAL(float(1.0), pmt::to_float(pmt::from_long(1))); } -BOOST_AUTO_TEST_CASE(test_complexes) { - pmt::pmt_t p1 = pmt::make_rectangular(2, -3); - pmt::pmt_t m1 = pmt::make_rectangular(-3, 2); - pmt::pmt_t p2 = pmt::from_complex(2, -3); - pmt::pmt_t m2 = pmt::from_complex(-3, 2); - pmt::pmt_t p3 = pmt::from_complex(std::complex<double>(2, -3)); - pmt::pmt_t m3 = pmt::from_complex(std::complex<double>(-3, 2)); - BOOST_CHECK(!pmt::is_complex(pmt::PMT_T)); - BOOST_CHECK(pmt::is_complex(p1)); - BOOST_CHECK(pmt::is_complex(m1)); - BOOST_CHECK(pmt::is_complex(p2)); - BOOST_CHECK(pmt::is_complex(m2)); - BOOST_CHECK(pmt::is_complex(p3)); - BOOST_CHECK(pmt::is_complex(m3)); - BOOST_CHECK_THROW(pmt::to_complex(pmt::PMT_T), pmt::wrong_type); - BOOST_CHECK_EQUAL(std::complex<double>(2, -3), pmt::to_complex(p1)); - BOOST_CHECK_EQUAL(std::complex<double>(-3, 2), pmt::to_complex(m1)); - BOOST_CHECK_EQUAL(std::complex<double>(2, -3), pmt::to_complex(p2)); - BOOST_CHECK_EQUAL(std::complex<double>(-3, 2), pmt::to_complex(m2)); - BOOST_CHECK_EQUAL(std::complex<double>(2, -3), pmt::to_complex(p3)); - BOOST_CHECK_EQUAL(std::complex<double>(-3, 2), pmt::to_complex(m3)); - BOOST_CHECK_EQUAL(std::complex<double>(1.0, 0), pmt::to_complex(pmt::from_long(1))); - BOOST_CHECK_EQUAL(std::complex<double>(1.0, 0), pmt::to_complex(pmt::from_double(1.0))); +BOOST_AUTO_TEST_CASE(test_complexes) +{ + pmt::pmt_t p1 = pmt::make_rectangular(2, -3); + pmt::pmt_t m1 = pmt::make_rectangular(-3, 2); + pmt::pmt_t p2 = pmt::from_complex(2, -3); + pmt::pmt_t m2 = pmt::from_complex(-3, 2); + pmt::pmt_t p3 = pmt::from_complex(std::complex<double>(2, -3)); + pmt::pmt_t m3 = pmt::from_complex(std::complex<double>(-3, 2)); + BOOST_CHECK(!pmt::is_complex(pmt::PMT_T)); + BOOST_CHECK(pmt::is_complex(p1)); + BOOST_CHECK(pmt::is_complex(m1)); + BOOST_CHECK(pmt::is_complex(p2)); + BOOST_CHECK(pmt::is_complex(m2)); + BOOST_CHECK(pmt::is_complex(p3)); + BOOST_CHECK(pmt::is_complex(m3)); + BOOST_CHECK_THROW(pmt::to_complex(pmt::PMT_T), pmt::wrong_type); + BOOST_CHECK_EQUAL(std::complex<double>(2, -3), pmt::to_complex(p1)); + BOOST_CHECK_EQUAL(std::complex<double>(-3, 2), pmt::to_complex(m1)); + BOOST_CHECK_EQUAL(std::complex<double>(2, -3), pmt::to_complex(p2)); + BOOST_CHECK_EQUAL(std::complex<double>(-3, 2), pmt::to_complex(m2)); + BOOST_CHECK_EQUAL(std::complex<double>(2, -3), pmt::to_complex(p3)); + BOOST_CHECK_EQUAL(std::complex<double>(-3, 2), pmt::to_complex(m3)); + BOOST_CHECK_EQUAL(std::complex<double>(1.0, 0), pmt::to_complex(pmt::from_long(1))); + BOOST_CHECK_EQUAL(std::complex<double>(1.0, 0), + pmt::to_complex(pmt::from_double(1.0))); } -BOOST_AUTO_TEST_CASE(test_pairs) { - BOOST_CHECK(pmt::is_null(pmt::PMT_NIL)); - BOOST_CHECK(!pmt::is_pair(pmt::PMT_NIL)); - pmt::pmt_t s1 = pmt::mp("s1"); - pmt::pmt_t s2 = pmt::mp("s2"); - pmt::pmt_t s3 = pmt::mp("s3"); - - - BOOST_CHECK_EQUAL((size_t)0, pmt::length(pmt::PMT_NIL)); - BOOST_CHECK_THROW(pmt::length(s1), pmt::wrong_type); - BOOST_CHECK_THROW(pmt::length(pmt::from_double(42)), pmt::wrong_type); - - pmt::pmt_t c1 = pmt::cons(s1, pmt::PMT_NIL); - BOOST_CHECK(pmt::is_pair(c1)); - BOOST_CHECK(!pmt::is_pair(s1)); - BOOST_CHECK_EQUAL(s1, pmt::car(c1)); - BOOST_CHECK_EQUAL(pmt::PMT_NIL, pmt::cdr(c1)); - BOOST_CHECK_EQUAL((size_t) 1, pmt::length(c1)); - - pmt::pmt_t c3 = pmt::cons(s3, pmt::PMT_NIL); - pmt::pmt_t c2 = pmt::cons(s2, c3); - pmt::set_cdr(c1, c2); - BOOST_CHECK_EQUAL(c2, pmt::cdr(c1)); - pmt::set_car(c1, s3); - BOOST_CHECK_EQUAL(s3, pmt::car(c1)); - BOOST_CHECK_EQUAL((size_t)1, pmt::length(c3)); - BOOST_CHECK_EQUAL((size_t)2, pmt::length(c2)); - - BOOST_CHECK_THROW(pmt::cdr(pmt::PMT_NIL), pmt::wrong_type); - BOOST_CHECK_THROW(pmt::car(pmt::PMT_NIL), pmt::wrong_type); - BOOST_CHECK_THROW(pmt::set_car(s1, pmt::PMT_NIL), pmt::wrong_type); - BOOST_CHECK_THROW(pmt::set_cdr(s1, pmt::PMT_NIL), pmt::wrong_type); +BOOST_AUTO_TEST_CASE(test_pairs) +{ + BOOST_CHECK(pmt::is_null(pmt::PMT_NIL)); + BOOST_CHECK(!pmt::is_pair(pmt::PMT_NIL)); + pmt::pmt_t s1 = pmt::mp("s1"); + pmt::pmt_t s2 = pmt::mp("s2"); + pmt::pmt_t s3 = pmt::mp("s3"); + + + BOOST_CHECK_EQUAL((size_t)0, pmt::length(pmt::PMT_NIL)); + BOOST_CHECK_THROW(pmt::length(s1), pmt::wrong_type); + BOOST_CHECK_THROW(pmt::length(pmt::from_double(42)), pmt::wrong_type); + + pmt::pmt_t c1 = pmt::cons(s1, pmt::PMT_NIL); + BOOST_CHECK(pmt::is_pair(c1)); + BOOST_CHECK(!pmt::is_pair(s1)); + BOOST_CHECK_EQUAL(s1, pmt::car(c1)); + BOOST_CHECK_EQUAL(pmt::PMT_NIL, pmt::cdr(c1)); + BOOST_CHECK_EQUAL((size_t)1, pmt::length(c1)); + + pmt::pmt_t c3 = pmt::cons(s3, pmt::PMT_NIL); + pmt::pmt_t c2 = pmt::cons(s2, c3); + pmt::set_cdr(c1, c2); + BOOST_CHECK_EQUAL(c2, pmt::cdr(c1)); + pmt::set_car(c1, s3); + BOOST_CHECK_EQUAL(s3, pmt::car(c1)); + BOOST_CHECK_EQUAL((size_t)1, pmt::length(c3)); + BOOST_CHECK_EQUAL((size_t)2, pmt::length(c2)); + + BOOST_CHECK_THROW(pmt::cdr(pmt::PMT_NIL), pmt::wrong_type); + BOOST_CHECK_THROW(pmt::car(pmt::PMT_NIL), pmt::wrong_type); + BOOST_CHECK_THROW(pmt::set_car(s1, pmt::PMT_NIL), pmt::wrong_type); + BOOST_CHECK_THROW(pmt::set_cdr(s1, pmt::PMT_NIL), pmt::wrong_type); } -BOOST_AUTO_TEST_CASE(test_vectors) { - static const size_t N = 3; - pmt::pmt_t v1 = pmt::make_vector(N, pmt::PMT_NIL); - BOOST_CHECK_EQUAL(N, pmt::length(v1)); - pmt::pmt_t s0 = pmt::mp("s0"); - pmt::pmt_t s1 = pmt::mp("s1"); - pmt::pmt_t s2 = pmt::mp("s2"); - - pmt::vector_set(v1, 0, s0); - pmt::vector_set(v1, 1, s1); - pmt::vector_set(v1, 2, s2); - - BOOST_CHECK_EQUAL(s0, pmt::vector_ref(v1, 0)); - BOOST_CHECK_EQUAL(s1, pmt::vector_ref(v1, 1)); - BOOST_CHECK_EQUAL(s2, pmt::vector_ref(v1, 2)); - - BOOST_CHECK_THROW(pmt::vector_ref(v1, N), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::vector_set(v1, N, pmt::PMT_NIL), pmt::out_of_range); - - pmt::vector_fill(v1, s0); - for (size_t i = 0; i < N; i++) - BOOST_CHECK_EQUAL(s0, pmt::vector_ref(v1, i)); +BOOST_AUTO_TEST_CASE(test_vectors) +{ + static const size_t N = 3; + pmt::pmt_t v1 = pmt::make_vector(N, pmt::PMT_NIL); + BOOST_CHECK_EQUAL(N, pmt::length(v1)); + pmt::pmt_t s0 = pmt::mp("s0"); + pmt::pmt_t s1 = pmt::mp("s1"); + pmt::pmt_t s2 = pmt::mp("s2"); + + pmt::vector_set(v1, 0, s0); + pmt::vector_set(v1, 1, s1); + pmt::vector_set(v1, 2, s2); + + BOOST_CHECK_EQUAL(s0, pmt::vector_ref(v1, 0)); + BOOST_CHECK_EQUAL(s1, pmt::vector_ref(v1, 1)); + BOOST_CHECK_EQUAL(s2, pmt::vector_ref(v1, 2)); + + BOOST_CHECK_THROW(pmt::vector_ref(v1, N), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::vector_set(v1, N, pmt::PMT_NIL), pmt::out_of_range); + + pmt::vector_fill(v1, s0); + for (size_t i = 0; i < N; i++) + BOOST_CHECK_EQUAL(s0, pmt::vector_ref(v1, i)); } -static void -check_tuple(size_t len, const std::vector<pmt::pmt_t> &s, pmt::pmt_t t) +static void check_tuple(size_t len, const std::vector<pmt::pmt_t>& s, pmt::pmt_t t) { - BOOST_CHECK_EQUAL(true, pmt::is_tuple(t)); - BOOST_CHECK_EQUAL(len, pmt::length(t)); - - for (size_t i = 0; i < len; i++) - BOOST_CHECK_EQUAL(s[i], pmt::tuple_ref(t, i)); + BOOST_CHECK_EQUAL(true, pmt::is_tuple(t)); + BOOST_CHECK_EQUAL(len, pmt::length(t)); + for (size_t i = 0; i < len; i++) + BOOST_CHECK_EQUAL(s[i], pmt::tuple_ref(t, i)); } -BOOST_AUTO_TEST_CASE(test_tuples) { - pmt::pmt_t v = pmt::make_vector(10, pmt::PMT_NIL); - std::vector<pmt::pmt_t> s(10); - for (size_t i = 0; i < 10; i++){ - std::ostringstream os; - os << "s" << i; - s[i] = pmt::mp(os.str()); - pmt::vector_set(v, i, s[i]); - } +BOOST_AUTO_TEST_CASE(test_tuples) +{ + pmt::pmt_t v = pmt::make_vector(10, pmt::PMT_NIL); + std::vector<pmt::pmt_t> s(10); + for (size_t i = 0; i < 10; i++) { + std::ostringstream os; + os << "s" << i; + s[i] = pmt::mp(os.str()); + pmt::vector_set(v, i, s[i]); + } - pmt::pmt_t t; + pmt::pmt_t t; - t = pmt::make_tuple(); - check_tuple(0, s, t); + t = pmt::make_tuple(); + check_tuple(0, s, t); - t = pmt::make_tuple(s[0]); - check_tuple(1, s, t); + t = pmt::make_tuple(s[0]); + check_tuple(1, s, t); - BOOST_CHECK(pmt::is_vector(v)); - BOOST_CHECK(!pmt::is_tuple(v)); - BOOST_CHECK(pmt::is_tuple(t)); - BOOST_CHECK(!pmt::is_vector(t)); + BOOST_CHECK(pmt::is_vector(v)); + BOOST_CHECK(!pmt::is_tuple(v)); + BOOST_CHECK(pmt::is_tuple(t)); + BOOST_CHECK(!pmt::is_vector(t)); - t = pmt::make_tuple(s[0], s[1]); - check_tuple(2, s, t); + t = pmt::make_tuple(s[0], s[1]); + check_tuple(2, s, t); - t = pmt::make_tuple(s[0], s[1], s[2]); - check_tuple(3, s, t); + t = pmt::make_tuple(s[0], s[1], s[2]); + check_tuple(3, s, t); - t = pmt::make_tuple(s[0], s[1], s[2], s[3]); - check_tuple(4, s, t); + t = pmt::make_tuple(s[0], s[1], s[2], s[3]); + check_tuple(4, s, t); - t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4]); - check_tuple(5, s, t); + t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4]); + check_tuple(5, s, t); - t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5]); - check_tuple(6, s, t); + t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5]); + check_tuple(6, s, t); - t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6]); - check_tuple(7, s, t); + t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6]); + check_tuple(7, s, t); - t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7]); - check_tuple(8, s, t); + t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7]); + check_tuple(8, s, t); - t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8]); - check_tuple(9, s, t); + t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8]); + check_tuple(9, s, t); - t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9]); - check_tuple(10, s, t); + t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9]); + check_tuple(10, s, t); - t = pmt::make_tuple(s[0], s[1], s[2]); - BOOST_CHECK_THROW(pmt::tuple_ref(t, 3), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::vector_ref(t, 0), pmt::wrong_type); - BOOST_CHECK_THROW(pmt::tuple_ref(v, 0), pmt::wrong_type); + t = pmt::make_tuple(s[0], s[1], s[2]); + BOOST_CHECK_THROW(pmt::tuple_ref(t, 3), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::vector_ref(t, 0), pmt::wrong_type); + BOOST_CHECK_THROW(pmt::tuple_ref(v, 0), pmt::wrong_type); - t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9]); - pmt::pmt_t t2 = pmt::to_tuple(v); - BOOST_CHECK_EQUAL(size_t(10), pmt::length(v)); - BOOST_CHECK(pmt::equal(t, t2)); - //std::cout << v << std::endl; - //std::cout << t2 << std::endl; + t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9]); + pmt::pmt_t t2 = pmt::to_tuple(v); + BOOST_CHECK_EQUAL(size_t(10), pmt::length(v)); + BOOST_CHECK(pmt::equal(t, t2)); + // std::cout << v << std::endl; + // std::cout << t2 << std::endl; - t = pmt::make_tuple(s[0], s[1], s[2]); - pmt::pmt_t list0 = pmt::list3(s[0], s[1], s[2]); - BOOST_CHECK_EQUAL(size_t(3), pmt::length(list0)); - t2 = pmt::to_tuple(list0); - BOOST_CHECK_EQUAL(size_t(3), pmt::length(t2)); - BOOST_CHECK(pmt::equal(t, t2)); + t = pmt::make_tuple(s[0], s[1], s[2]); + pmt::pmt_t list0 = pmt::list3(s[0], s[1], s[2]); + BOOST_CHECK_EQUAL(size_t(3), pmt::length(list0)); + t2 = pmt::to_tuple(list0); + BOOST_CHECK_EQUAL(size_t(3), pmt::length(t2)); + BOOST_CHECK(pmt::equal(t, t2)); } -BOOST_AUTO_TEST_CASE(test_equivalence) { - pmt::pmt_t s0 = pmt::mp("s0"); - pmt::pmt_t s1 = pmt::mp("s1"); - pmt::pmt_t s2 = pmt::mp("s2"); - pmt::pmt_t list0 = pmt::cons(s0, pmt::cons(s1, pmt::cons(s2, pmt::PMT_NIL))); - pmt::pmt_t list1 = pmt::cons(s0, pmt::cons(s1, pmt::cons(s2, pmt::PMT_NIL))); - pmt::pmt_t i0 = pmt::from_long(42); - pmt::pmt_t i1 = pmt::from_long(42); - pmt::pmt_t r0 = pmt::from_double(42); - pmt::pmt_t r1 = pmt::from_double(42); - pmt::pmt_t r2 = pmt::from_double(43); - - BOOST_CHECK(pmt::eq(s0, s0)); - BOOST_CHECK(!pmt::eq(s0, s1)); - BOOST_CHECK(pmt::eqv(s0, s0)); - BOOST_CHECK(!pmt::eqv(s0, s1)); - - BOOST_CHECK(pmt::eqv(i0, i1)); - BOOST_CHECK(pmt::eqv(r0, r1)); - BOOST_CHECK(!pmt::eqv(r0, r2)); - BOOST_CHECK(!pmt::eqv(i0, r0)); - - BOOST_CHECK(!pmt::eq(list0, list1)); - BOOST_CHECK(!pmt::eqv(list0, list1)); - BOOST_CHECK(pmt::equal(list0, list1)); - - pmt::pmt_t v0 = pmt::make_vector(3, s0); - pmt::pmt_t v1 = pmt::make_vector(3, s0); - pmt::pmt_t v2 = pmt::make_vector(4, s0); - BOOST_CHECK(!pmt::eqv(v0, v1)); - BOOST_CHECK(pmt::equal(v0, v1)); - BOOST_CHECK(!pmt::equal(v0, v2)); - - pmt::vector_set(v0, 0, list0); - pmt::vector_set(v0, 1, list0); - pmt::vector_set(v1, 0, list1); - pmt::vector_set(v1, 1, list1); - BOOST_CHECK(pmt::equal(v0, v1)); +BOOST_AUTO_TEST_CASE(test_equivalence) +{ + pmt::pmt_t s0 = pmt::mp("s0"); + pmt::pmt_t s1 = pmt::mp("s1"); + pmt::pmt_t s2 = pmt::mp("s2"); + pmt::pmt_t list0 = pmt::cons(s0, pmt::cons(s1, pmt::cons(s2, pmt::PMT_NIL))); + pmt::pmt_t list1 = pmt::cons(s0, pmt::cons(s1, pmt::cons(s2, pmt::PMT_NIL))); + pmt::pmt_t i0 = pmt::from_long(42); + pmt::pmt_t i1 = pmt::from_long(42); + pmt::pmt_t r0 = pmt::from_double(42); + pmt::pmt_t r1 = pmt::from_double(42); + pmt::pmt_t r2 = pmt::from_double(43); + + BOOST_CHECK(pmt::eq(s0, s0)); + BOOST_CHECK(!pmt::eq(s0, s1)); + BOOST_CHECK(pmt::eqv(s0, s0)); + BOOST_CHECK(!pmt::eqv(s0, s1)); + + BOOST_CHECK(pmt::eqv(i0, i1)); + BOOST_CHECK(pmt::eqv(r0, r1)); + BOOST_CHECK(!pmt::eqv(r0, r2)); + BOOST_CHECK(!pmt::eqv(i0, r0)); + + BOOST_CHECK(!pmt::eq(list0, list1)); + BOOST_CHECK(!pmt::eqv(list0, list1)); + BOOST_CHECK(pmt::equal(list0, list1)); + + pmt::pmt_t v0 = pmt::make_vector(3, s0); + pmt::pmt_t v1 = pmt::make_vector(3, s0); + pmt::pmt_t v2 = pmt::make_vector(4, s0); + BOOST_CHECK(!pmt::eqv(v0, v1)); + BOOST_CHECK(pmt::equal(v0, v1)); + BOOST_CHECK(!pmt::equal(v0, v2)); + + pmt::vector_set(v0, 0, list0); + pmt::vector_set(v0, 1, list0); + pmt::vector_set(v1, 0, list1); + pmt::vector_set(v1, 1, list1); + BOOST_CHECK(pmt::equal(v0, v1)); } -BOOST_AUTO_TEST_CASE(test_misc) { - pmt::pmt_t k0 = pmt::mp("k0"); - pmt::pmt_t k1 = pmt::mp("k1"); - pmt::pmt_t k2 = pmt::mp("k2"); - pmt::pmt_t k3 = pmt::mp("k3"); - pmt::pmt_t v0 = pmt::mp("v0"); - pmt::pmt_t v1 = pmt::mp("v1"); - pmt::pmt_t v2 = pmt::mp("v2"); - pmt::pmt_t p0 = pmt::cons(k0, v0); - pmt::pmt_t p1 = pmt::cons(k1, v1); - pmt::pmt_t p2 = pmt::cons(k2, v2); - - pmt::pmt_t alist = pmt::cons(p0, pmt::cons(p1, pmt::cons(p2, pmt::PMT_NIL))); - BOOST_CHECK(pmt::eq(p1, pmt::assv(k1, alist))); - BOOST_CHECK(pmt::eq(pmt::PMT_F, pmt::assv(k3, alist))); - - pmt::pmt_t keys = pmt::cons(k0, pmt::cons(k1, pmt::cons(k2, pmt::PMT_NIL))); - pmt::pmt_t vals = pmt::cons(v0, pmt::cons(v1, pmt::cons(v2, pmt::PMT_NIL))); - BOOST_CHECK(pmt::equal(keys, pmt::map(pmt::car, alist))); - BOOST_CHECK(pmt::equal(vals, pmt::map(pmt::cdr, alist))); +BOOST_AUTO_TEST_CASE(test_misc) +{ + pmt::pmt_t k0 = pmt::mp("k0"); + pmt::pmt_t k1 = pmt::mp("k1"); + pmt::pmt_t k2 = pmt::mp("k2"); + pmt::pmt_t k3 = pmt::mp("k3"); + pmt::pmt_t v0 = pmt::mp("v0"); + pmt::pmt_t v1 = pmt::mp("v1"); + pmt::pmt_t v2 = pmt::mp("v2"); + pmt::pmt_t p0 = pmt::cons(k0, v0); + pmt::pmt_t p1 = pmt::cons(k1, v1); + pmt::pmt_t p2 = pmt::cons(k2, v2); + + pmt::pmt_t alist = pmt::cons(p0, pmt::cons(p1, pmt::cons(p2, pmt::PMT_NIL))); + BOOST_CHECK(pmt::eq(p1, pmt::assv(k1, alist))); + BOOST_CHECK(pmt::eq(pmt::PMT_F, pmt::assv(k3, alist))); + + pmt::pmt_t keys = pmt::cons(k0, pmt::cons(k1, pmt::cons(k2, pmt::PMT_NIL))); + pmt::pmt_t vals = pmt::cons(v0, pmt::cons(v1, pmt::cons(v2, pmt::PMT_NIL))); + BOOST_CHECK(pmt::equal(keys, pmt::map(pmt::car, alist))); + BOOST_CHECK(pmt::equal(vals, pmt::map(pmt::cdr, alist))); } -BOOST_AUTO_TEST_CASE(test_dict) { - pmt::pmt_t dict = pmt::make_dict(); - BOOST_CHECK(pmt::is_dict(dict)); - - pmt::pmt_t k0 = pmt::mp("k0"); - pmt::pmt_t k1 = pmt::mp("k1"); - pmt::pmt_t k2 = pmt::mp("k2"); - pmt::pmt_t k3 = pmt::mp("k3"); - pmt::pmt_t v0 = pmt::mp("v0"); - pmt::pmt_t v1 = pmt::mp("v1"); - pmt::pmt_t v2 = pmt::mp("v2"); - pmt::pmt_t v3 = pmt::mp("v3"); - pmt::pmt_t not_found = pmt::cons(pmt::PMT_NIL, pmt::PMT_NIL); - - BOOST_CHECK(!pmt::dict_has_key(dict, k0)); - dict = pmt::dict_add(dict, k0, v0); - BOOST_CHECK(pmt::dict_has_key(dict, k0)); - BOOST_CHECK(pmt::eqv(pmt::dict_ref(dict, k0, not_found), v0)); - BOOST_CHECK(pmt::eqv(pmt::dict_ref(dict, k1, not_found), not_found)); - dict = pmt::dict_add(dict, k1, v1); - dict = pmt::dict_add(dict, k2, v2); - BOOST_CHECK(pmt::eqv(pmt::dict_ref(dict, k1, not_found), v1)); - dict = pmt::dict_add(dict, k1, v3); - BOOST_CHECK(pmt::eqv(pmt::dict_ref(dict, k1, not_found), v3)); - - pmt::pmt_t keys = pmt::list3(k1, k2, k0); - pmt::pmt_t vals = pmt::list3(v3, v2, v0); - //std::cout << "pmt::dict_keys: " << pmt::dict_keys(dict) << std::endl; - //std::cout << "pmt::dict_values: " << pmt::dict_values(dict) << std::endl; - BOOST_CHECK(pmt::equal(keys, pmt::dict_keys(dict))); - BOOST_CHECK(pmt::equal(vals, pmt::dict_values(dict))); +BOOST_AUTO_TEST_CASE(test_dict) +{ + pmt::pmt_t dict = pmt::make_dict(); + BOOST_CHECK(pmt::is_dict(dict)); + + pmt::pmt_t k0 = pmt::mp("k0"); + pmt::pmt_t k1 = pmt::mp("k1"); + pmt::pmt_t k2 = pmt::mp("k2"); + pmt::pmt_t k3 = pmt::mp("k3"); + pmt::pmt_t v0 = pmt::mp("v0"); + pmt::pmt_t v1 = pmt::mp("v1"); + pmt::pmt_t v2 = pmt::mp("v2"); + pmt::pmt_t v3 = pmt::mp("v3"); + pmt::pmt_t not_found = pmt::cons(pmt::PMT_NIL, pmt::PMT_NIL); + + BOOST_CHECK(!pmt::dict_has_key(dict, k0)); + dict = pmt::dict_add(dict, k0, v0); + BOOST_CHECK(pmt::dict_has_key(dict, k0)); + BOOST_CHECK(pmt::eqv(pmt::dict_ref(dict, k0, not_found), v0)); + BOOST_CHECK(pmt::eqv(pmt::dict_ref(dict, k1, not_found), not_found)); + dict = pmt::dict_add(dict, k1, v1); + dict = pmt::dict_add(dict, k2, v2); + BOOST_CHECK(pmt::eqv(pmt::dict_ref(dict, k1, not_found), v1)); + dict = pmt::dict_add(dict, k1, v3); + BOOST_CHECK(pmt::eqv(pmt::dict_ref(dict, k1, not_found), v3)); + + pmt::pmt_t keys = pmt::list3(k1, k2, k0); + pmt::pmt_t vals = pmt::list3(v3, v2, v0); + // std::cout << "pmt::dict_keys: " << pmt::dict_keys(dict) << std::endl; + // std::cout << "pmt::dict_values: " << pmt::dict_values(dict) << std::endl; + BOOST_CHECK(pmt::equal(keys, pmt::dict_keys(dict))); + BOOST_CHECK(pmt::equal(vals, pmt::dict_values(dict))); } -BOOST_AUTO_TEST_CASE(test_io) { - pmt::pmt_t k0 = pmt::mp("k0"); - pmt::pmt_t k1 = pmt::mp("k1"); - pmt::pmt_t k2 = pmt::mp("k2"); - pmt::pmt_t k3 = pmt::mp("k3"); +BOOST_AUTO_TEST_CASE(test_io) +{ + pmt::pmt_t k0 = pmt::mp("k0"); + pmt::pmt_t k1 = pmt::mp("k1"); + pmt::pmt_t k2 = pmt::mp("k2"); + pmt::pmt_t k3 = pmt::mp("k3"); - BOOST_CHECK_EQUAL(std::string("k0"), pmt::write_string(k0)); + BOOST_CHECK_EQUAL(std::string("k0"), pmt::write_string(k0)); } -BOOST_AUTO_TEST_CASE(test_lists) { - pmt::pmt_t s0 = pmt::mp("s0"); - pmt::pmt_t s1 = pmt::mp("s1"); - pmt::pmt_t s2 = pmt::mp("s2"); - pmt::pmt_t s3 = pmt::mp("s3"); - - pmt::pmt_t l1 = pmt::list4(s0, s1, s2, s3); - pmt::pmt_t l2 = pmt::list3(s0, s1, s2); - pmt::pmt_t l3 = pmt::list_add(l2, s3); - BOOST_CHECK(pmt::equal(l1, l3)); +BOOST_AUTO_TEST_CASE(test_lists) +{ + pmt::pmt_t s0 = pmt::mp("s0"); + pmt::pmt_t s1 = pmt::mp("s1"); + pmt::pmt_t s2 = pmt::mp("s2"); + pmt::pmt_t s3 = pmt::mp("s3"); + + pmt::pmt_t l1 = pmt::list4(s0, s1, s2, s3); + pmt::pmt_t l2 = pmt::list3(s0, s1, s2); + pmt::pmt_t l3 = pmt::list_add(l2, s3); + BOOST_CHECK(pmt::equal(l1, l3)); } // ------------------------------------------------------------------------ @@ -414,45 +427,45 @@ BOOST_AUTO_TEST_CASE(test_lists) { // It can't be declared in the scope of test_any because of template // namespace problems. -class foo { +class foo +{ public: - double d_double; - int d_int; - foo(double d=0, int i=0) : d_double(d), d_int(i) {} + double d_double; + int d_int; + foo(double d = 0, int i = 0) : d_double(d), d_int(i) {} }; -bool operator==(const foo &a, const foo &b) +bool operator==(const foo& a, const foo& b) { - return a.d_double == b.d_double && a.d_int == b.d_int; + return a.d_double == b.d_double && a.d_int == b.d_int; } -std::ostream& operator<<(std::ostream &os, const foo obj) +std::ostream& operator<<(std::ostream& os, const foo obj) { - os << "<foo: " << obj.d_double << ", " << obj.d_int << ">"; - return os; + os << "<foo: " << obj.d_double << ", " << obj.d_int << ">"; + return os; } -BOOST_AUTO_TEST_CASE(test_any) { - boost::any a0; - boost::any a1; - boost::any a2; +BOOST_AUTO_TEST_CASE(test_any) +{ + boost::any a0; + boost::any a1; + boost::any a2; - a0 = std::string("Hello!"); - a1 = 42; - a2 = foo(3.250, 21); + a0 = std::string("Hello!"); + a1 = 42; + a2 = foo(3.250, 21); - pmt::pmt_t p0 = pmt::make_any(a0); - pmt::pmt_t p1 = pmt::make_any(a1); - pmt::pmt_t p2 = pmt::make_any(a2); + pmt::pmt_t p0 = pmt::make_any(a0); + pmt::pmt_t p1 = pmt::make_any(a1); + pmt::pmt_t p2 = pmt::make_any(a2); - BOOST_CHECK_EQUAL(std::string("Hello!"), - boost::any_cast<std::string>(pmt::any_ref(p0))); + BOOST_CHECK_EQUAL(std::string("Hello!"), + boost::any_cast<std::string>(pmt::any_ref(p0))); - BOOST_CHECK_EQUAL(42, - boost::any_cast<int>(pmt::any_ref(p1))); + BOOST_CHECK_EQUAL(42, boost::any_cast<int>(pmt::any_ref(p1))); - BOOST_CHECK_EQUAL(foo(3.250, 21), - boost::any_cast<foo>(pmt::any_ref(p2))); + BOOST_CHECK_EQUAL(foo(3.250, 21), boost::any_cast<foo>(pmt::any_ref(p2))); } // ------------------------------------------------------------------------ @@ -460,116 +473,117 @@ BOOST_AUTO_TEST_CASE(test_any) { class qa_pmt_msg_accepter_nop : public gr::messages::msg_accepter { public: - qa_pmt_msg_accepter_nop(){} - ~qa_pmt_msg_accepter_nop(); - void post(pmt::pmt_t,pmt::pmt_t){} + qa_pmt_msg_accepter_nop() {} + ~qa_pmt_msg_accepter_nop(); + void post(pmt::pmt_t, pmt::pmt_t) {} }; -qa_pmt_msg_accepter_nop::~qa_pmt_msg_accepter_nop(){} +qa_pmt_msg_accepter_nop::~qa_pmt_msg_accepter_nop() {} -BOOST_AUTO_TEST_CASE(test_msg_accepter) { - pmt::pmt_t sym = pmt::mp("my-symbol"); - - boost::any a0; - a0 = std::string("Hello!"); - pmt::pmt_t p0 = pmt::make_any(a0); +BOOST_AUTO_TEST_CASE(test_msg_accepter) +{ + pmt::pmt_t sym = pmt::mp("my-symbol"); - gr::messages::msg_accepter_sptr ma0 = \ - gr::messages::msg_accepter_sptr(new qa_pmt_msg_accepter_nop()); - pmt::pmt_t p1 = pmt::make_msg_accepter(ma0); + boost::any a0; + a0 = std::string("Hello!"); + pmt::pmt_t p0 = pmt::make_any(a0); - BOOST_CHECK_EQUAL(ma0.get(), pmt::msg_accepter_ref(p1).get()); + gr::messages::msg_accepter_sptr ma0 = + gr::messages::msg_accepter_sptr(new qa_pmt_msg_accepter_nop()); + pmt::pmt_t p1 = pmt::make_msg_accepter(ma0); - BOOST_CHECK_THROW(pmt::msg_accepter_ref(sym), pmt::wrong_type); - BOOST_CHECK_THROW(pmt::msg_accepter_ref(p0), pmt::wrong_type); + BOOST_CHECK_EQUAL(ma0.get(), pmt::msg_accepter_ref(p1).get()); - // just confirm interfaces on send are OK - pmt::pmt_t port(pmt::intern("port")); - gr::messages::send(ma0.get(), port, sym); - gr::messages::send(ma0, port, sym); - gr::messages::send(p1, port, sym); + BOOST_CHECK_THROW(pmt::msg_accepter_ref(sym), pmt::wrong_type); + BOOST_CHECK_THROW(pmt::msg_accepter_ref(p0), pmt::wrong_type); + // just confirm interfaces on send are OK + pmt::pmt_t port(pmt::intern("port")); + gr::messages::send(ma0.get(), port, sym); + gr::messages::send(ma0, port, sym); + gr::messages::send(p1, port, sym); } // ------------------------------------------------------------------------ -BOOST_AUTO_TEST_CASE(test_serialize) { - std::stringbuf sb; // fake channel - pmt::pmt_t a = pmt::mp("a"); - pmt::pmt_t b = pmt::mp("b"); - pmt::pmt_t c = pmt::mp("c"); - - sb.str(""); // reset channel to empty - - // write stuff to channel - - pmt::serialize(pmt::PMT_NIL, sb); - pmt::serialize(pmt::mp("foobarvia"), sb); - pmt::serialize(pmt::from_long(123456789), sb); - pmt::serialize(pmt::from_long(-123456789), sb); - pmt::serialize(pmt::cons(pmt::PMT_NIL, pmt::PMT_NIL), sb); - pmt::serialize(pmt::cons(a, b), sb); - pmt::serialize(pmt::list1(a), sb); - pmt::serialize(pmt::list2(a, b), sb); - pmt::serialize(pmt::list3(a, b, c), sb); - pmt::serialize(pmt::list3(a, pmt::list3(c, b, a), c), sb); - pmt::serialize(pmt::PMT_T, sb); - pmt::serialize(pmt::PMT_F, sb); - - // read it back - - BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::PMT_NIL)); - BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::mp("foobarvia"))); - BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::from_long(123456789))); - BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::from_long(-123456789))); - BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::cons(pmt::PMT_NIL, pmt::PMT_NIL))); - BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::cons(a, b))); - BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::list1(a))); - BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::list2(a, b))); - BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::list3(a, b, c))); - BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::list3(a, pmt::list3(c, b, a), c))); - BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::PMT_T)); - BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::PMT_F)); - - BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::PMT_EOF)); // last item - - - // FIXME add tests for real, complex, vector, uniform-vector, dict - // FIXME add tests for malformed input too. - +BOOST_AUTO_TEST_CASE(test_serialize) +{ + std::stringbuf sb; // fake channel + pmt::pmt_t a = pmt::mp("a"); + pmt::pmt_t b = pmt::mp("b"); + pmt::pmt_t c = pmt::mp("c"); + + sb.str(""); // reset channel to empty + + // write stuff to channel + + pmt::serialize(pmt::PMT_NIL, sb); + pmt::serialize(pmt::mp("foobarvia"), sb); + pmt::serialize(pmt::from_long(123456789), sb); + pmt::serialize(pmt::from_long(-123456789), sb); + pmt::serialize(pmt::cons(pmt::PMT_NIL, pmt::PMT_NIL), sb); + pmt::serialize(pmt::cons(a, b), sb); + pmt::serialize(pmt::list1(a), sb); + pmt::serialize(pmt::list2(a, b), sb); + pmt::serialize(pmt::list3(a, b, c), sb); + pmt::serialize(pmt::list3(a, pmt::list3(c, b, a), c), sb); + pmt::serialize(pmt::PMT_T, sb); + pmt::serialize(pmt::PMT_F, sb); + + // read it back + + BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::PMT_NIL)); + BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::mp("foobarvia"))); + BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::from_long(123456789))); + BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::from_long(-123456789))); + BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::cons(pmt::PMT_NIL, pmt::PMT_NIL))); + BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::cons(a, b))); + BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::list1(a))); + BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::list2(a, b))); + BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::list3(a, b, c))); + BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::list3(a, pmt::list3(c, b, a), c))); + BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::PMT_T)); + BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::PMT_F)); + + BOOST_CHECK(pmt::equal(pmt::deserialize(sb), pmt::PMT_EOF)); // last item + + + // FIXME add tests for real, complex, vector, uniform-vector, dict + // FIXME add tests for malformed input too. } -BOOST_AUTO_TEST_CASE(test_sets) { - pmt::pmt_t s1 = pmt::mp("s1"); - pmt::pmt_t s2 = pmt::mp("s2"); - pmt::pmt_t s3 = pmt::mp("s3"); - - pmt::pmt_t l1 = pmt::list1(s1); - pmt::pmt_t l2 = pmt::list2(s2,s3); - pmt::pmt_t l3 = pmt::list3(s1,s2,s3); - - BOOST_CHECK(pmt::is_pair(pmt::memq(s1,l1))); - BOOST_CHECK(pmt::is_false(pmt::memq(s3,l1))); - - BOOST_CHECK(pmt::subsetp(l1,l3)); - BOOST_CHECK(pmt::subsetp(l2,l3)); - BOOST_CHECK(!pmt::subsetp(l1,l2)); - BOOST_CHECK(!pmt::subsetp(l2,l1)); - BOOST_CHECK(!pmt::subsetp(l3,l2)); +BOOST_AUTO_TEST_CASE(test_sets) +{ + pmt::pmt_t s1 = pmt::mp("s1"); + pmt::pmt_t s2 = pmt::mp("s2"); + pmt::pmt_t s3 = pmt::mp("s3"); + + pmt::pmt_t l1 = pmt::list1(s1); + pmt::pmt_t l2 = pmt::list2(s2, s3); + pmt::pmt_t l3 = pmt::list3(s1, s2, s3); + + BOOST_CHECK(pmt::is_pair(pmt::memq(s1, l1))); + BOOST_CHECK(pmt::is_false(pmt::memq(s3, l1))); + + BOOST_CHECK(pmt::subsetp(l1, l3)); + BOOST_CHECK(pmt::subsetp(l2, l3)); + BOOST_CHECK(!pmt::subsetp(l1, l2)); + BOOST_CHECK(!pmt::subsetp(l2, l1)); + BOOST_CHECK(!pmt::subsetp(l3, l2)); } -BOOST_AUTO_TEST_CASE(test_sugar) { - BOOST_CHECK(pmt::is_symbol(pmt::mp("my-symbol"))); - BOOST_CHECK_EQUAL((long) 10, pmt::to_long(pmt::mp(10))); - BOOST_CHECK_EQUAL((double) 1e6, pmt::to_double(pmt::mp(1e6))); - BOOST_CHECK_EQUAL(std::complex<double>(2, 3), - pmt::to_complex(pmt::mp(std::complex<double>(2, 3)))); - - int buf[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; - pmt::pmt_t blob = pmt::mp(buf, sizeof(buf)); - const void *data = pmt::blob_data(blob); - size_t nbytes = pmt::blob_length(blob); - BOOST_CHECK_EQUAL(sizeof(buf), nbytes); - BOOST_CHECK(memcmp(buf, data, nbytes) == 0); +BOOST_AUTO_TEST_CASE(test_sugar) +{ + BOOST_CHECK(pmt::is_symbol(pmt::mp("my-symbol"))); + BOOST_CHECK_EQUAL((long)10, pmt::to_long(pmt::mp(10))); + BOOST_CHECK_EQUAL((double)1e6, pmt::to_double(pmt::mp(1e6))); + BOOST_CHECK_EQUAL(std::complex<double>(2, 3), + pmt::to_complex(pmt::mp(std::complex<double>(2, 3)))); + + int buf[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + pmt::pmt_t blob = pmt::mp(buf, sizeof(buf)); + const void* data = pmt::blob_data(blob); + size_t nbytes = pmt::blob_length(blob); + BOOST_CHECK_EQUAL(sizeof(buf), nbytes); + BOOST_CHECK(memcmp(buf, data, nbytes) == 0); } - diff --git a/gnuradio-runtime/lib/pmt/qa_pmt_unv.cc b/gnuradio-runtime/lib/pmt/qa_pmt_unv.cc index 9cc2a35e17..9dd9452e5e 100644 --- a/gnuradio-runtime/lib/pmt/qa_pmt_unv.cc +++ b/gnuradio-runtime/lib/pmt/qa_pmt_unv.cc @@ -31,399 +31,413 @@ using namespace pmt; -BOOST_AUTO_TEST_CASE(test_u8vector) { - static const size_t N = 3; - pmt::pmt_t v1 = pmt::make_u8vector(N, 0); - BOOST_CHECK_EQUAL(N, pmt::length(v1)); - uint8_t s0 = uint8_t(10); - uint8_t s1 = uint8_t(20); - uint8_t s2 = uint8_t(30); - - pmt::u8vector_set(v1, 0, s0); - pmt::u8vector_set(v1, 1, s1); - pmt::u8vector_set(v1, 2, s2); - - BOOST_CHECK_EQUAL(s0, pmt::u8vector_ref(v1, 0)); - BOOST_CHECK_EQUAL(s1, pmt::u8vector_ref(v1, 1)); - BOOST_CHECK_EQUAL(s2, pmt::u8vector_ref(v1, 2)); - - BOOST_CHECK_THROW(pmt::u8vector_ref(v1, N), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::u8vector_set(v1, N, uint8_t(0)), pmt::out_of_range); - - size_t len; - const uint8_t *rd = pmt::u8vector_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - BOOST_CHECK_EQUAL(s0, rd[0]); - BOOST_CHECK_EQUAL(s1, rd[1]); - BOOST_CHECK_EQUAL(s2, rd[2]); - - uint8_t *wr = pmt::u8vector_writable_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - wr[0] = uint8_t(0); - BOOST_CHECK_EQUAL(uint8_t(0), wr[0]); - BOOST_CHECK_EQUAL(s1, wr[1]); - BOOST_CHECK_EQUAL(s2, wr[2]); +BOOST_AUTO_TEST_CASE(test_u8vector) +{ + static const size_t N = 3; + pmt::pmt_t v1 = pmt::make_u8vector(N, 0); + BOOST_CHECK_EQUAL(N, pmt::length(v1)); + uint8_t s0 = uint8_t(10); + uint8_t s1 = uint8_t(20); + uint8_t s2 = uint8_t(30); + + pmt::u8vector_set(v1, 0, s0); + pmt::u8vector_set(v1, 1, s1); + pmt::u8vector_set(v1, 2, s2); + + BOOST_CHECK_EQUAL(s0, pmt::u8vector_ref(v1, 0)); + BOOST_CHECK_EQUAL(s1, pmt::u8vector_ref(v1, 1)); + BOOST_CHECK_EQUAL(s2, pmt::u8vector_ref(v1, 2)); + + BOOST_CHECK_THROW(pmt::u8vector_ref(v1, N), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::u8vector_set(v1, N, uint8_t(0)), pmt::out_of_range); + + size_t len; + const uint8_t* rd = pmt::u8vector_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + BOOST_CHECK_EQUAL(s0, rd[0]); + BOOST_CHECK_EQUAL(s1, rd[1]); + BOOST_CHECK_EQUAL(s2, rd[2]); + + uint8_t* wr = pmt::u8vector_writable_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + wr[0] = uint8_t(0); + BOOST_CHECK_EQUAL(uint8_t(0), wr[0]); + BOOST_CHECK_EQUAL(s1, wr[1]); + BOOST_CHECK_EQUAL(s2, wr[2]); } -BOOST_AUTO_TEST_CASE(test_s8vector) { - static const size_t N = 3; - pmt::pmt_t v1 = pmt::make_s8vector(N, 0); - BOOST_CHECK_EQUAL(N, pmt::length(v1)); - int8_t s0 = int8_t(10); - int8_t s1 = int8_t(20); - int8_t s2 = int8_t(30); - - pmt::s8vector_set(v1, 0, s0); - pmt::s8vector_set(v1, 1, s1); - pmt::s8vector_set(v1, 2, s2); - - BOOST_CHECK_EQUAL(s0, pmt::s8vector_ref(v1, 0)); - BOOST_CHECK_EQUAL(s1, pmt::s8vector_ref(v1, 1)); - BOOST_CHECK_EQUAL(s2, pmt::s8vector_ref(v1, 2)); - - BOOST_CHECK_THROW(pmt::s8vector_ref(v1, N), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::s8vector_set(v1, N, int8_t(0)), pmt::out_of_range); - - size_t len; - const int8_t *rd = pmt::s8vector_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - BOOST_CHECK_EQUAL(s0, rd[0]); - BOOST_CHECK_EQUAL(s1, rd[1]); - BOOST_CHECK_EQUAL(s2, rd[2]); - - int8_t *wr = pmt::s8vector_writable_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - wr[0] = int8_t(0); - BOOST_CHECK_EQUAL(int8_t(0), wr[0]); - BOOST_CHECK_EQUAL(s1, wr[1]); - BOOST_CHECK_EQUAL(s2, wr[2]); +BOOST_AUTO_TEST_CASE(test_s8vector) +{ + static const size_t N = 3; + pmt::pmt_t v1 = pmt::make_s8vector(N, 0); + BOOST_CHECK_EQUAL(N, pmt::length(v1)); + int8_t s0 = int8_t(10); + int8_t s1 = int8_t(20); + int8_t s2 = int8_t(30); + + pmt::s8vector_set(v1, 0, s0); + pmt::s8vector_set(v1, 1, s1); + pmt::s8vector_set(v1, 2, s2); + + BOOST_CHECK_EQUAL(s0, pmt::s8vector_ref(v1, 0)); + BOOST_CHECK_EQUAL(s1, pmt::s8vector_ref(v1, 1)); + BOOST_CHECK_EQUAL(s2, pmt::s8vector_ref(v1, 2)); + + BOOST_CHECK_THROW(pmt::s8vector_ref(v1, N), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::s8vector_set(v1, N, int8_t(0)), pmt::out_of_range); + + size_t len; + const int8_t* rd = pmt::s8vector_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + BOOST_CHECK_EQUAL(s0, rd[0]); + BOOST_CHECK_EQUAL(s1, rd[1]); + BOOST_CHECK_EQUAL(s2, rd[2]); + + int8_t* wr = pmt::s8vector_writable_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + wr[0] = int8_t(0); + BOOST_CHECK_EQUAL(int8_t(0), wr[0]); + BOOST_CHECK_EQUAL(s1, wr[1]); + BOOST_CHECK_EQUAL(s2, wr[2]); } -BOOST_AUTO_TEST_CASE(test_u16vector) { - static const size_t N = 3; - pmt::pmt_t v1 = pmt::make_u16vector(N, 0); - BOOST_CHECK_EQUAL(N, pmt::length(v1)); - uint16_t s0 = uint16_t(10); - uint16_t s1 = uint16_t(20); - uint16_t s2 = uint16_t(30); - - pmt::u16vector_set(v1, 0, s0); - pmt::u16vector_set(v1, 1, s1); - pmt::u16vector_set(v1, 2, s2); - - BOOST_CHECK_EQUAL(s0, pmt::u16vector_ref(v1, 0)); - BOOST_CHECK_EQUAL(s1, pmt::u16vector_ref(v1, 1)); - BOOST_CHECK_EQUAL(s2, pmt::u16vector_ref(v1, 2)); - - BOOST_CHECK_THROW(pmt::u16vector_ref(v1, N), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::u16vector_set(v1, N, uint16_t(0)), pmt::out_of_range); - - size_t len; - const uint16_t *rd = pmt::u16vector_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - BOOST_CHECK_EQUAL(s0, rd[0]); - BOOST_CHECK_EQUAL(s1, rd[1]); - BOOST_CHECK_EQUAL(s2, rd[2]); - - uint16_t *wr = pmt::u16vector_writable_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - wr[0] = uint16_t(0); - BOOST_CHECK_EQUAL(uint16_t(0), wr[0]); - BOOST_CHECK_EQUAL(s1, wr[1]); - BOOST_CHECK_EQUAL(s2, wr[2]); +BOOST_AUTO_TEST_CASE(test_u16vector) +{ + static const size_t N = 3; + pmt::pmt_t v1 = pmt::make_u16vector(N, 0); + BOOST_CHECK_EQUAL(N, pmt::length(v1)); + uint16_t s0 = uint16_t(10); + uint16_t s1 = uint16_t(20); + uint16_t s2 = uint16_t(30); + + pmt::u16vector_set(v1, 0, s0); + pmt::u16vector_set(v1, 1, s1); + pmt::u16vector_set(v1, 2, s2); + + BOOST_CHECK_EQUAL(s0, pmt::u16vector_ref(v1, 0)); + BOOST_CHECK_EQUAL(s1, pmt::u16vector_ref(v1, 1)); + BOOST_CHECK_EQUAL(s2, pmt::u16vector_ref(v1, 2)); + + BOOST_CHECK_THROW(pmt::u16vector_ref(v1, N), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::u16vector_set(v1, N, uint16_t(0)), pmt::out_of_range); + + size_t len; + const uint16_t* rd = pmt::u16vector_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + BOOST_CHECK_EQUAL(s0, rd[0]); + BOOST_CHECK_EQUAL(s1, rd[1]); + BOOST_CHECK_EQUAL(s2, rd[2]); + + uint16_t* wr = pmt::u16vector_writable_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + wr[0] = uint16_t(0); + BOOST_CHECK_EQUAL(uint16_t(0), wr[0]); + BOOST_CHECK_EQUAL(s1, wr[1]); + BOOST_CHECK_EQUAL(s2, wr[2]); } -BOOST_AUTO_TEST_CASE(test_s16vector) { - static const size_t N = 3; - pmt::pmt_t v1 = pmt::make_s16vector(N, 0); - BOOST_CHECK_EQUAL(N, pmt::length(v1)); - int16_t s0 = int16_t(10); - int16_t s1 = int16_t(20); - int16_t s2 = int16_t(30); - - pmt::s16vector_set(v1, 0, s0); - pmt::s16vector_set(v1, 1, s1); - pmt::s16vector_set(v1, 2, s2); - - BOOST_CHECK_EQUAL(s0, pmt::s16vector_ref(v1, 0)); - BOOST_CHECK_EQUAL(s1, pmt::s16vector_ref(v1, 1)); - BOOST_CHECK_EQUAL(s2, pmt::s16vector_ref(v1, 2)); - - BOOST_CHECK_THROW(pmt::s16vector_ref(v1, N), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::s16vector_set(v1, N, int16_t(0)), pmt::out_of_range); - - size_t len; - const int16_t *rd = pmt::s16vector_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - BOOST_CHECK_EQUAL(s0, rd[0]); - BOOST_CHECK_EQUAL(s1, rd[1]); - BOOST_CHECK_EQUAL(s2, rd[2]); - - int16_t *wr = pmt::s16vector_writable_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - wr[0] = int16_t(0); - BOOST_CHECK_EQUAL(int16_t(0), wr[0]); - BOOST_CHECK_EQUAL(s1, wr[1]); - BOOST_CHECK_EQUAL(s2, wr[2]); +BOOST_AUTO_TEST_CASE(test_s16vector) +{ + static const size_t N = 3; + pmt::pmt_t v1 = pmt::make_s16vector(N, 0); + BOOST_CHECK_EQUAL(N, pmt::length(v1)); + int16_t s0 = int16_t(10); + int16_t s1 = int16_t(20); + int16_t s2 = int16_t(30); + + pmt::s16vector_set(v1, 0, s0); + pmt::s16vector_set(v1, 1, s1); + pmt::s16vector_set(v1, 2, s2); + + BOOST_CHECK_EQUAL(s0, pmt::s16vector_ref(v1, 0)); + BOOST_CHECK_EQUAL(s1, pmt::s16vector_ref(v1, 1)); + BOOST_CHECK_EQUAL(s2, pmt::s16vector_ref(v1, 2)); + + BOOST_CHECK_THROW(pmt::s16vector_ref(v1, N), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::s16vector_set(v1, N, int16_t(0)), pmt::out_of_range); + + size_t len; + const int16_t* rd = pmt::s16vector_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + BOOST_CHECK_EQUAL(s0, rd[0]); + BOOST_CHECK_EQUAL(s1, rd[1]); + BOOST_CHECK_EQUAL(s2, rd[2]); + + int16_t* wr = pmt::s16vector_writable_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + wr[0] = int16_t(0); + BOOST_CHECK_EQUAL(int16_t(0), wr[0]); + BOOST_CHECK_EQUAL(s1, wr[1]); + BOOST_CHECK_EQUAL(s2, wr[2]); } -BOOST_AUTO_TEST_CASE(test_u32vector) { - static const size_t N = 3; - pmt::pmt_t v1 = pmt::make_u32vector(N, 0); - BOOST_CHECK_EQUAL(N, pmt::length(v1)); - uint32_t s0 = uint32_t(10); - uint32_t s1 = uint32_t(20); - uint32_t s2 = uint32_t(30); - - pmt::u32vector_set(v1, 0, s0); - pmt::u32vector_set(v1, 1, s1); - pmt::u32vector_set(v1, 2, s2); - - BOOST_CHECK_EQUAL(s0, pmt::u32vector_ref(v1, 0)); - BOOST_CHECK_EQUAL(s1, pmt::u32vector_ref(v1, 1)); - BOOST_CHECK_EQUAL(s2, pmt::u32vector_ref(v1, 2)); - - BOOST_CHECK_THROW(pmt::u32vector_ref(v1, N), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::u32vector_set(v1, N, uint32_t(0)), pmt::out_of_range); - - size_t len; - const uint32_t *rd = pmt::u32vector_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - BOOST_CHECK_EQUAL(s0, rd[0]); - BOOST_CHECK_EQUAL(s1, rd[1]); - BOOST_CHECK_EQUAL(s2, rd[2]); - - uint32_t *wr = pmt::u32vector_writable_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - wr[0] = uint32_t(0); - BOOST_CHECK_EQUAL(uint32_t(0), wr[0]); - BOOST_CHECK_EQUAL(s1, wr[1]); - BOOST_CHECK_EQUAL(s2, wr[2]); +BOOST_AUTO_TEST_CASE(test_u32vector) +{ + static const size_t N = 3; + pmt::pmt_t v1 = pmt::make_u32vector(N, 0); + BOOST_CHECK_EQUAL(N, pmt::length(v1)); + uint32_t s0 = uint32_t(10); + uint32_t s1 = uint32_t(20); + uint32_t s2 = uint32_t(30); + + pmt::u32vector_set(v1, 0, s0); + pmt::u32vector_set(v1, 1, s1); + pmt::u32vector_set(v1, 2, s2); + + BOOST_CHECK_EQUAL(s0, pmt::u32vector_ref(v1, 0)); + BOOST_CHECK_EQUAL(s1, pmt::u32vector_ref(v1, 1)); + BOOST_CHECK_EQUAL(s2, pmt::u32vector_ref(v1, 2)); + + BOOST_CHECK_THROW(pmt::u32vector_ref(v1, N), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::u32vector_set(v1, N, uint32_t(0)), pmt::out_of_range); + + size_t len; + const uint32_t* rd = pmt::u32vector_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + BOOST_CHECK_EQUAL(s0, rd[0]); + BOOST_CHECK_EQUAL(s1, rd[1]); + BOOST_CHECK_EQUAL(s2, rd[2]); + + uint32_t* wr = pmt::u32vector_writable_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + wr[0] = uint32_t(0); + BOOST_CHECK_EQUAL(uint32_t(0), wr[0]); + BOOST_CHECK_EQUAL(s1, wr[1]); + BOOST_CHECK_EQUAL(s2, wr[2]); } -BOOST_AUTO_TEST_CASE(test_s32vector) { - static const size_t N = 3; - pmt::pmt_t v1 = pmt::make_s32vector(N, 0); - BOOST_CHECK_EQUAL(N, pmt::length(v1)); - int32_t s0 = int32_t(10); - int32_t s1 = int32_t(20); - int32_t s2 = int32_t(30); - - pmt::s32vector_set(v1, 0, s0); - pmt::s32vector_set(v1, 1, s1); - pmt::s32vector_set(v1, 2, s2); - - BOOST_CHECK_EQUAL(s0, pmt::s32vector_ref(v1, 0)); - BOOST_CHECK_EQUAL(s1, pmt::s32vector_ref(v1, 1)); - BOOST_CHECK_EQUAL(s2, pmt::s32vector_ref(v1, 2)); - - BOOST_CHECK_THROW(pmt::s32vector_ref(v1, N), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::s32vector_set(v1, N, int32_t(0)), pmt::out_of_range); - - size_t len; - const int32_t *rd = pmt::s32vector_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - BOOST_CHECK_EQUAL(s0, rd[0]); - BOOST_CHECK_EQUAL(s1, rd[1]); - BOOST_CHECK_EQUAL(s2, rd[2]); - - int32_t *wr = pmt::s32vector_writable_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - wr[0] = int32_t(0); - BOOST_CHECK_EQUAL(int32_t(0), wr[0]); - BOOST_CHECK_EQUAL(s1, wr[1]); - BOOST_CHECK_EQUAL(s2, wr[2]); +BOOST_AUTO_TEST_CASE(test_s32vector) +{ + static const size_t N = 3; + pmt::pmt_t v1 = pmt::make_s32vector(N, 0); + BOOST_CHECK_EQUAL(N, pmt::length(v1)); + int32_t s0 = int32_t(10); + int32_t s1 = int32_t(20); + int32_t s2 = int32_t(30); + + pmt::s32vector_set(v1, 0, s0); + pmt::s32vector_set(v1, 1, s1); + pmt::s32vector_set(v1, 2, s2); + + BOOST_CHECK_EQUAL(s0, pmt::s32vector_ref(v1, 0)); + BOOST_CHECK_EQUAL(s1, pmt::s32vector_ref(v1, 1)); + BOOST_CHECK_EQUAL(s2, pmt::s32vector_ref(v1, 2)); + + BOOST_CHECK_THROW(pmt::s32vector_ref(v1, N), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::s32vector_set(v1, N, int32_t(0)), pmt::out_of_range); + + size_t len; + const int32_t* rd = pmt::s32vector_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + BOOST_CHECK_EQUAL(s0, rd[0]); + BOOST_CHECK_EQUAL(s1, rd[1]); + BOOST_CHECK_EQUAL(s2, rd[2]); + + int32_t* wr = pmt::s32vector_writable_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + wr[0] = int32_t(0); + BOOST_CHECK_EQUAL(int32_t(0), wr[0]); + BOOST_CHECK_EQUAL(s1, wr[1]); + BOOST_CHECK_EQUAL(s2, wr[2]); } -BOOST_AUTO_TEST_CASE(test_u64vector) { - static const size_t N = 3; - pmt::pmt_t v1 = pmt::make_u64vector(N, 0); - BOOST_CHECK_EQUAL(N, pmt::length(v1)); - uint64_t s0 = uint64_t(10); - uint64_t s1 = uint64_t(20); - uint64_t s2 = uint64_t(30); - - pmt::u64vector_set(v1, 0, s0); - pmt::u64vector_set(v1, 1, s1); - pmt::u64vector_set(v1, 2, s2); - - BOOST_CHECK_EQUAL(s0, pmt::u64vector_ref(v1, 0)); - BOOST_CHECK_EQUAL(s1, pmt::u64vector_ref(v1, 1)); - BOOST_CHECK_EQUAL(s2, pmt::u64vector_ref(v1, 2)); - - BOOST_CHECK_THROW(pmt::u64vector_ref(v1, N), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::u64vector_set(v1, N, uint64_t(0)), pmt::out_of_range); - - size_t len; - const uint64_t *rd = pmt::u64vector_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - BOOST_CHECK_EQUAL(s0, rd[0]); - BOOST_CHECK_EQUAL(s1, rd[1]); - BOOST_CHECK_EQUAL(s2, rd[2]); - - uint64_t *wr = pmt::u64vector_writable_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - wr[0] = uint64_t(0); - BOOST_CHECK_EQUAL(uint64_t(0), wr[0]); - BOOST_CHECK_EQUAL(s1, wr[1]); - BOOST_CHECK_EQUAL(s2, wr[2]); +BOOST_AUTO_TEST_CASE(test_u64vector) +{ + static const size_t N = 3; + pmt::pmt_t v1 = pmt::make_u64vector(N, 0); + BOOST_CHECK_EQUAL(N, pmt::length(v1)); + uint64_t s0 = uint64_t(10); + uint64_t s1 = uint64_t(20); + uint64_t s2 = uint64_t(30); + + pmt::u64vector_set(v1, 0, s0); + pmt::u64vector_set(v1, 1, s1); + pmt::u64vector_set(v1, 2, s2); + + BOOST_CHECK_EQUAL(s0, pmt::u64vector_ref(v1, 0)); + BOOST_CHECK_EQUAL(s1, pmt::u64vector_ref(v1, 1)); + BOOST_CHECK_EQUAL(s2, pmt::u64vector_ref(v1, 2)); + + BOOST_CHECK_THROW(pmt::u64vector_ref(v1, N), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::u64vector_set(v1, N, uint64_t(0)), pmt::out_of_range); + + size_t len; + const uint64_t* rd = pmt::u64vector_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + BOOST_CHECK_EQUAL(s0, rd[0]); + BOOST_CHECK_EQUAL(s1, rd[1]); + BOOST_CHECK_EQUAL(s2, rd[2]); + + uint64_t* wr = pmt::u64vector_writable_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + wr[0] = uint64_t(0); + BOOST_CHECK_EQUAL(uint64_t(0), wr[0]); + BOOST_CHECK_EQUAL(s1, wr[1]); + BOOST_CHECK_EQUAL(s2, wr[2]); } -BOOST_AUTO_TEST_CASE(test_s64vector) { - static const size_t N = 3; - pmt::pmt_t v1 = pmt::make_s64vector(N, 0); - BOOST_CHECK_EQUAL(N, pmt::length(v1)); - int64_t s0 = int64_t(10); - int64_t s1 = int64_t(20); - int64_t s2 = int64_t(30); - - pmt::s64vector_set(v1, 0, s0); - pmt::s64vector_set(v1, 1, s1); - pmt::s64vector_set(v1, 2, s2); - - BOOST_CHECK_EQUAL(s0, pmt::s64vector_ref(v1, 0)); - BOOST_CHECK_EQUAL(s1, pmt::s64vector_ref(v1, 1)); - BOOST_CHECK_EQUAL(s2, pmt::s64vector_ref(v1, 2)); - - BOOST_CHECK_THROW(pmt::s64vector_ref(v1, N), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::s64vector_set(v1, N, int64_t(0)), pmt::out_of_range); - - size_t len; - const int64_t *rd = pmt::s64vector_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - BOOST_CHECK_EQUAL(s0, rd[0]); - BOOST_CHECK_EQUAL(s1, rd[1]); - BOOST_CHECK_EQUAL(s2, rd[2]); - - int64_t *wr = pmt::s64vector_writable_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - wr[0] = int64_t(0); - BOOST_CHECK_EQUAL(int64_t(0), wr[0]); - BOOST_CHECK_EQUAL(s1, wr[1]); - BOOST_CHECK_EQUAL(s2, wr[2]); +BOOST_AUTO_TEST_CASE(test_s64vector) +{ + static const size_t N = 3; + pmt::pmt_t v1 = pmt::make_s64vector(N, 0); + BOOST_CHECK_EQUAL(N, pmt::length(v1)); + int64_t s0 = int64_t(10); + int64_t s1 = int64_t(20); + int64_t s2 = int64_t(30); + + pmt::s64vector_set(v1, 0, s0); + pmt::s64vector_set(v1, 1, s1); + pmt::s64vector_set(v1, 2, s2); + + BOOST_CHECK_EQUAL(s0, pmt::s64vector_ref(v1, 0)); + BOOST_CHECK_EQUAL(s1, pmt::s64vector_ref(v1, 1)); + BOOST_CHECK_EQUAL(s2, pmt::s64vector_ref(v1, 2)); + + BOOST_CHECK_THROW(pmt::s64vector_ref(v1, N), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::s64vector_set(v1, N, int64_t(0)), pmt::out_of_range); + + size_t len; + const int64_t* rd = pmt::s64vector_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + BOOST_CHECK_EQUAL(s0, rd[0]); + BOOST_CHECK_EQUAL(s1, rd[1]); + BOOST_CHECK_EQUAL(s2, rd[2]); + + int64_t* wr = pmt::s64vector_writable_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + wr[0] = int64_t(0); + BOOST_CHECK_EQUAL(int64_t(0), wr[0]); + BOOST_CHECK_EQUAL(s1, wr[1]); + BOOST_CHECK_EQUAL(s2, wr[2]); } -BOOST_AUTO_TEST_CASE(test_f32vector) { - static const size_t N = 3; - pmt::pmt_t v1 = pmt::make_f32vector(N, 0); - BOOST_CHECK_EQUAL(N, pmt::length(v1)); - float s0 = float(10); - float s1 = float(20); - float s2 = float(30); - - pmt::f32vector_set(v1, 0, s0); - pmt::f32vector_set(v1, 1, s1); - pmt::f32vector_set(v1, 2, s2); - - BOOST_CHECK_EQUAL(s0, pmt::f32vector_ref(v1, 0)); - BOOST_CHECK_EQUAL(s1, pmt::f32vector_ref(v1, 1)); - BOOST_CHECK_EQUAL(s2, pmt::f32vector_ref(v1, 2)); - - BOOST_CHECK_THROW(pmt::f32vector_ref(v1, N), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::f32vector_set(v1, N, float(0)), pmt::out_of_range); - - size_t len; - const float *rd = pmt::f32vector_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - BOOST_CHECK_EQUAL(s0, rd[0]); - BOOST_CHECK_EQUAL(s1, rd[1]); - BOOST_CHECK_EQUAL(s2, rd[2]); - - float *wr = pmt::f32vector_writable_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - wr[0] = float(0); - BOOST_CHECK_EQUAL(float(0), wr[0]); - BOOST_CHECK_EQUAL(s1, wr[1]); - BOOST_CHECK_EQUAL(s2, wr[2]); +BOOST_AUTO_TEST_CASE(test_f32vector) +{ + static const size_t N = 3; + pmt::pmt_t v1 = pmt::make_f32vector(N, 0); + BOOST_CHECK_EQUAL(N, pmt::length(v1)); + float s0 = float(10); + float s1 = float(20); + float s2 = float(30); + + pmt::f32vector_set(v1, 0, s0); + pmt::f32vector_set(v1, 1, s1); + pmt::f32vector_set(v1, 2, s2); + + BOOST_CHECK_EQUAL(s0, pmt::f32vector_ref(v1, 0)); + BOOST_CHECK_EQUAL(s1, pmt::f32vector_ref(v1, 1)); + BOOST_CHECK_EQUAL(s2, pmt::f32vector_ref(v1, 2)); + + BOOST_CHECK_THROW(pmt::f32vector_ref(v1, N), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::f32vector_set(v1, N, float(0)), pmt::out_of_range); + + size_t len; + const float* rd = pmt::f32vector_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + BOOST_CHECK_EQUAL(s0, rd[0]); + BOOST_CHECK_EQUAL(s1, rd[1]); + BOOST_CHECK_EQUAL(s2, rd[2]); + + float* wr = pmt::f32vector_writable_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + wr[0] = float(0); + BOOST_CHECK_EQUAL(float(0), wr[0]); + BOOST_CHECK_EQUAL(s1, wr[1]); + BOOST_CHECK_EQUAL(s2, wr[2]); } -BOOST_AUTO_TEST_CASE(test_f64vector) { - static const size_t N = 3; - pmt::pmt_t v1 = pmt::make_f64vector(N, 0); - BOOST_CHECK_EQUAL(N, pmt::length(v1)); - double s0 = double(10); - double s1 = double(20); - double s2 = double(30); - - pmt::f64vector_set(v1, 0, s0); - pmt::f64vector_set(v1, 1, s1); - pmt::f64vector_set(v1, 2, s2); - - BOOST_CHECK_EQUAL(s0, pmt::f64vector_ref(v1, 0)); - BOOST_CHECK_EQUAL(s1, pmt::f64vector_ref(v1, 1)); - BOOST_CHECK_EQUAL(s2, pmt::f64vector_ref(v1, 2)); - - BOOST_CHECK_THROW(pmt::f64vector_ref(v1, N), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::f64vector_set(v1, N, double(0)), pmt::out_of_range); - - size_t len; - const double *rd = pmt::f64vector_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - BOOST_CHECK_EQUAL(s0, rd[0]); - BOOST_CHECK_EQUAL(s1, rd[1]); - BOOST_CHECK_EQUAL(s2, rd[2]); - - double *wr = pmt::f64vector_writable_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - wr[0] = double(0); - BOOST_CHECK_EQUAL(double(0), wr[0]); - BOOST_CHECK_EQUAL(s1, wr[1]); - BOOST_CHECK_EQUAL(s2, wr[2]); +BOOST_AUTO_TEST_CASE(test_f64vector) +{ + static const size_t N = 3; + pmt::pmt_t v1 = pmt::make_f64vector(N, 0); + BOOST_CHECK_EQUAL(N, pmt::length(v1)); + double s0 = double(10); + double s1 = double(20); + double s2 = double(30); + + pmt::f64vector_set(v1, 0, s0); + pmt::f64vector_set(v1, 1, s1); + pmt::f64vector_set(v1, 2, s2); + + BOOST_CHECK_EQUAL(s0, pmt::f64vector_ref(v1, 0)); + BOOST_CHECK_EQUAL(s1, pmt::f64vector_ref(v1, 1)); + BOOST_CHECK_EQUAL(s2, pmt::f64vector_ref(v1, 2)); + + BOOST_CHECK_THROW(pmt::f64vector_ref(v1, N), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::f64vector_set(v1, N, double(0)), pmt::out_of_range); + + size_t len; + const double* rd = pmt::f64vector_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + BOOST_CHECK_EQUAL(s0, rd[0]); + BOOST_CHECK_EQUAL(s1, rd[1]); + BOOST_CHECK_EQUAL(s2, rd[2]); + + double* wr = pmt::f64vector_writable_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + wr[0] = double(0); + BOOST_CHECK_EQUAL(double(0), wr[0]); + BOOST_CHECK_EQUAL(s1, wr[1]); + BOOST_CHECK_EQUAL(s2, wr[2]); } -BOOST_AUTO_TEST_CASE(test_c32vector) { - static const size_t N = 3; - pmt::pmt_t v1 = pmt::make_c32vector(N, 0); - BOOST_CHECK_EQUAL(N, pmt::length(v1)); - std::complex<float> s0 = std::complex<float>(10); - std::complex<float> s1 = std::complex<float>(20); - std::complex<float> s2 = std::complex<float>(30); - - pmt::c32vector_set(v1, 0, s0); - pmt::c32vector_set(v1, 1, s1); - pmt::c32vector_set(v1, 2, s2); - - BOOST_CHECK_EQUAL(s0, pmt::c32vector_ref(v1, 0)); - BOOST_CHECK_EQUAL(s1, pmt::c32vector_ref(v1, 1)); - BOOST_CHECK_EQUAL(s2, pmt::c32vector_ref(v1, 2)); - - BOOST_CHECK_THROW(pmt::c32vector_ref(v1, N), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::c32vector_set(v1, N, std::complex<float>(0)), pmt::out_of_range); - - size_t len; - const std::complex<float> *rd = pmt::c32vector_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - BOOST_CHECK_EQUAL(s0, rd[0]); - BOOST_CHECK_EQUAL(s1, rd[1]); - BOOST_CHECK_EQUAL(s2, rd[2]); - - std::complex<float> *wr = pmt::c32vector_writable_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - wr[0] = std::complex<float>(0); - BOOST_CHECK_EQUAL(std::complex<float>(0), wr[0]); - BOOST_CHECK_EQUAL(s1, wr[1]); - BOOST_CHECK_EQUAL(s2, wr[2]); +BOOST_AUTO_TEST_CASE(test_c32vector) +{ + static const size_t N = 3; + pmt::pmt_t v1 = pmt::make_c32vector(N, 0); + BOOST_CHECK_EQUAL(N, pmt::length(v1)); + std::complex<float> s0 = std::complex<float>(10); + std::complex<float> s1 = std::complex<float>(20); + std::complex<float> s2 = std::complex<float>(30); + + pmt::c32vector_set(v1, 0, s0); + pmt::c32vector_set(v1, 1, s1); + pmt::c32vector_set(v1, 2, s2); + + BOOST_CHECK_EQUAL(s0, pmt::c32vector_ref(v1, 0)); + BOOST_CHECK_EQUAL(s1, pmt::c32vector_ref(v1, 1)); + BOOST_CHECK_EQUAL(s2, pmt::c32vector_ref(v1, 2)); + + BOOST_CHECK_THROW(pmt::c32vector_ref(v1, N), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::c32vector_set(v1, N, std::complex<float>(0)), + pmt::out_of_range); + + size_t len; + const std::complex<float>* rd = pmt::c32vector_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + BOOST_CHECK_EQUAL(s0, rd[0]); + BOOST_CHECK_EQUAL(s1, rd[1]); + BOOST_CHECK_EQUAL(s2, rd[2]); + + std::complex<float>* wr = pmt::c32vector_writable_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + wr[0] = std::complex<float>(0); + BOOST_CHECK_EQUAL(std::complex<float>(0), wr[0]); + BOOST_CHECK_EQUAL(s1, wr[1]); + BOOST_CHECK_EQUAL(s2, wr[2]); } -BOOST_AUTO_TEST_CASE(test_c64vector) { - static const size_t N = 3; - pmt::pmt_t v1 = pmt::make_c64vector(N, 0); - BOOST_CHECK_EQUAL(N, pmt::length(v1)); - std::complex<double> s0 = std::complex<double>(10); - std::complex<double> s1 = std::complex<double>(20); - std::complex<double> s2 = std::complex<double>(30); - - pmt::c64vector_set(v1, 0, s0); - pmt::c64vector_set(v1, 1, s1); - pmt::c64vector_set(v1, 2, s2); - - BOOST_CHECK_EQUAL(s0, pmt::c64vector_ref(v1, 0)); - BOOST_CHECK_EQUAL(s1, pmt::c64vector_ref(v1, 1)); - BOOST_CHECK_EQUAL(s2, pmt::c64vector_ref(v1, 2)); - - BOOST_CHECK_THROW(pmt::c64vector_ref(v1, N), pmt::out_of_range); - BOOST_CHECK_THROW(pmt::c64vector_set(v1, N, std::complex<double>(0)), pmt::out_of_range); - - size_t len; - const std::complex<double> *rd = pmt::c64vector_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - BOOST_CHECK_EQUAL(s0, rd[0]); - BOOST_CHECK_EQUAL(s1, rd[1]); - BOOST_CHECK_EQUAL(s2, rd[2]); - - std::complex<double> *wr = pmt::c64vector_writable_elements(v1, len); - BOOST_CHECK_EQUAL(len, N); - wr[0] = std::complex<double>(0); - BOOST_CHECK_EQUAL(std::complex<double>(0), wr[0]); - BOOST_CHECK_EQUAL(s1, wr[1]); - BOOST_CHECK_EQUAL(s2, wr[2]); +BOOST_AUTO_TEST_CASE(test_c64vector) +{ + static const size_t N = 3; + pmt::pmt_t v1 = pmt::make_c64vector(N, 0); + BOOST_CHECK_EQUAL(N, pmt::length(v1)); + std::complex<double> s0 = std::complex<double>(10); + std::complex<double> s1 = std::complex<double>(20); + std::complex<double> s2 = std::complex<double>(30); + + pmt::c64vector_set(v1, 0, s0); + pmt::c64vector_set(v1, 1, s1); + pmt::c64vector_set(v1, 2, s2); + + BOOST_CHECK_EQUAL(s0, pmt::c64vector_ref(v1, 0)); + BOOST_CHECK_EQUAL(s1, pmt::c64vector_ref(v1, 1)); + BOOST_CHECK_EQUAL(s2, pmt::c64vector_ref(v1, 2)); + + BOOST_CHECK_THROW(pmt::c64vector_ref(v1, N), pmt::out_of_range); + BOOST_CHECK_THROW(pmt::c64vector_set(v1, N, std::complex<double>(0)), + pmt::out_of_range); + + size_t len; + const std::complex<double>* rd = pmt::c64vector_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + BOOST_CHECK_EQUAL(s0, rd[0]); + BOOST_CHECK_EQUAL(s1, rd[1]); + BOOST_CHECK_EQUAL(s2, rd[2]); + + std::complex<double>* wr = pmt::c64vector_writable_elements(v1, len); + BOOST_CHECK_EQUAL(len, N); + wr[0] = std::complex<double>(0); + BOOST_CHECK_EQUAL(std::complex<double>(0), wr[0]); + BOOST_CHECK_EQUAL(s1, wr[1]); + BOOST_CHECK_EQUAL(s2, wr[2]); } |