diff options
author | Johnathan Corgan <johnathan@corganlabs.com> | 2012-12-07 10:06:29 -0800 |
---|---|---|
committer | Johnathan Corgan <johnathan@corganlabs.com> | 2012-12-07 10:07:52 -0800 |
commit | ddb6ada4dbd0fa8db97ba6f2f4d2d8cb4149c8f1 (patch) | |
tree | 5faf735022d164b5f222a2d1b6e11b0b901f8a28 /gruel | |
parent | 583ba9b96ce3c3e52173cd847a0c00ff10c1cf85 (diff) | |
parent | 52ca5e2765b7a4532d26502b5b76b7c85c5019d7 (diff) |
Merge branch 'master' into next
Conflicts:
gnuradio-core/src/lib/runtime/gr_basic_block.h
Diffstat (limited to 'gruel')
-rw-r--r-- | gruel/src/include/gruel/pmt.h | 6 | ||||
-rw-r--r-- | gruel/src/lib/pmt/pmt.cc | 16 | ||||
-rw-r--r-- | gruel/src/swig/pmt_swig.i | 5 |
3 files changed, 27 insertions, 0 deletions
diff --git a/gruel/src/include/gruel/pmt.h b/gruel/src/include/gruel/pmt.h index a462155c5f..d09686783c 100644 --- a/gruel/src/include/gruel/pmt.h +++ b/gruel/src/include/gruel/pmt.h @@ -734,6 +734,12 @@ GRUEL_API pmt_t pmt_list_add(pmt_t list, const pmt_t& item); */ GRUEL_API pmt_t pmt_list_rm(pmt_t list, const pmt_t& item); +/*! + * \brief Return bool of \p list contains \p item + */ +GRUEL_API bool pmt_list_has(pmt_t list, const pmt_t& item); + + /* * ------------------------------------------------------------------------ * read / write diff --git a/gruel/src/lib/pmt/pmt.cc b/gruel/src/lib/pmt/pmt.cc index 3eb39ed7b1..e5baca98a8 100644 --- a/gruel/src/lib/pmt/pmt.cc +++ b/gruel/src/lib/pmt/pmt.cc @@ -1340,6 +1340,22 @@ pmt_list_rm(pmt_t list, const pmt_t& item) } } +bool +pmt_list_has(pmt_t list, const pmt_t& item) +{ + if(pmt_is_pair(list)){ + pmt_t left = pmt_car(list); + pmt_t right = pmt_cdr(list); + if(pmt_equal(left,item)) + return true; + return pmt_list_has(right, item); + } else { + if(pmt_is_null(list)) + return false; + throw std::runtime_error("list contains invalid format!"); + } +} + pmt_t pmt_caar(pmt_t pair) { diff --git a/gruel/src/swig/pmt_swig.i b/gruel/src/swig/pmt_swig.i index d46143424b..b1628c9983 100644 --- a/gruel/src/swig/pmt_swig.i +++ b/gruel/src/swig/pmt_swig.i @@ -701,6 +701,11 @@ pmt_t pmt_list_add(pmt_t list, const pmt_t& item); */ pmt_t pmt_list_rm(pmt_t list, const pmt_t& item); +/*! + * \brief Return bool of \p list contains \p item + */ +bool pmt_list_has(pmt_t list, const pmt_t& item); + /* * ------------------------------------------------------------------------ * read / write |