Commit graph

23 commits

Author SHA1 Message Date
Lane Kolbly
ed18ed376b host: Throw exception when accessing properties with incorrect type 2022-02-07 14:43:46 -06:00
Steven Koo
f22e3c2d47 uhd: revert "Check property type at access..."
This change reverts cb9329a681.
The type checking is causing some conversion issues on clang/macos.
The type_index checking doesn't work correctly across shared
libraries and should not be relied on to verify type, since it can
vary from compiler to compiler.

Signed-off-by: Steven Koo <steven.koo@ni.com>
2021-01-08 11:23:17 -06:00
Martin Braun
876d4150aa uhd: Apply clang-format against all .cpp and .hpp files in host/
Note: template_lvbitx.{cpp,hpp} need to be excluded from the list of
files that clang-format gets applied against.
2020-03-03 08:51:32 -06:00
Martin Braun
d3a16b7022 uhd: Replace all occurrences of boost::bind with std::bind
Note: Replacing everything with a lambda would be even better, but that
can't be easily scripted so we'll do this as a first step to reduce the
Boost footprint.

This also removes occurences of #include <boost/bind.hpp>, and makes
sure all usages of std::bind have an #include <functional>. clang-format
wasn't always applied to minimize the changeset in this commit, however,
it was applied to the blocks of #includes.

Due to conflicts with other Boost libraries, the placeholders _1, _2,
etc. could not be directly used, but had to be explicitly called out
(as std::placeholders::_1, etc.). This makes the use of std::bind even
uglier, which serves as another reminder that using std::bind (and even
more so, boost::bind) should be avoided.

nirio/rpc/rpc_client.cpp still contains a reference to boost::bind. It
was not possible to remove it by simply doing a search and replace, so
it will be removed in a separate commit.
2019-11-26 12:21:32 -08:00
Aaron Rossetto
cb9329a681 uhd: Check property type at access; error if mismatch 2019-11-26 12:21:31 -08:00
Martin Braun
d8b75ca532 Revert "uhd: Check property type at access; error if mismatch"
This reverts commit 94592641f0.

The commit itself was OK, but it changed the requirements such that UHD
could only be compiled with C++11.
2019-09-30 16:35:51 +02:00
Aaron Rossetto
94592641f0 uhd: Check property type at access; error if mismatch 2019-09-04 19:06:08 -07:00
Brent Stapleton
01fd6d52ce prop_tree: add pop() function
Adding pop function to property tree, which will remove and return a
property from the property tree. This also includes unit tests.
2019-05-02 08:39:54 -07:00
Brent Stapleton
d44277d7ac prop_tree: formatting property tree files
- Ran clang-format
- Fixed typos
- Updated copyright headers

clang-format -i --style=file \
    host/include/uhd/property_tree.hpp \
    host/include/uhd/property_tree.ipp
clang-format -i --style=file \
    host/lib/property_tree.cpp host/tests/property_test.cpp
2019-05-02 08:39:54 -07:00
Brent Stapleton
967be2a4e8 uhd: mpm: apply clang-format to all files
Applying formatting changes to all .cpp and .hpp files in the following
directories:
```
find host/examples/ -iname *.hpp -o -iname *.cpp | \
    xargs clang-format -i -style=file
find host/tests/ -iname *.hpp -o -iname *.cpp | \
    xargs clang-format -i -style=file
find host/lib/usrp/dboard/neon/ -iname *.hpp -o -iname *.cpp | \
    xargs clang-format -i -style=file
find host/lib/usrp/dboard/magnesium/ -iname *.hpp -o -iname *.cpp | \
    xargs clang-format -i -style=file
find host/lib/usrp/device3/ -iname *.hpp -o -iname *.cpp | \
    xargs clang-format -i -style=file
find host/lib/usrp/mpmd/ -iname *.hpp -o -iname *.cpp | \
    xargs clang-format -i -style=file
find host/lib/usrp/x300/ -iname *.hpp -o -iname *.cpp | \
    xargs clang-format -i -style=file
find host/utils/ -iname *.hpp -o -iname *.cpp | \
    xargs clang-format -i -style=file
find mpm/ -iname *.hpp -o -iname *.cpp | \
    xargs clang-format -i -style=file
```

Also formatted host/include/, except Cpp03 was used as a the language
standard instead of Cpp11.
```
sed -i 's/ Cpp11/ Cpp03/g' .clang-format
find host/include/ -iname *.hpp -o -iname *.cpp | \
    xargs clang-format -i -style=file
```

Formatting style was designated by the .clang-format file.
2019-01-16 11:40:23 -08:00
Martin Braun
ae5211d71d uhd: Update license headers
All copyright is now attributed to "Ettus Research, a National
Instruments company".

SPDX headers were also updated to latest version 3.0.
2018-02-19 16:54:52 -08:00
Martin Braun
4f948e2c8b Move all license headers to SPDX format. 2017-12-22 10:45:51 -08:00
Ashish Chaudhari
834acb8b6c prop_tree: Added advanced coercion capability to property
- Added auto and manual coerce modes
- Added set_coerced API for manual coercion
- Added detailed doxy comments describing behavior of property class
2016-02-11 14:36:20 -08:00
Ashish Chaudhari
27a08ccddc prop_tree: Multiple API enhancements to uhd::property
- Added desired and coerced values and accessors to property
- Added support to register desired subscribers
- set APIs don't reallocate storage for a property value
- Renamed callback method registration APIs
- Registering 2 coercers or publishers for a property will throw
- Registering a coercer and a publisher for the same property will throw
2016-02-11 14:36:20 -08:00
Martin Braun
c431a66df3 uhd: Added an operator/ for (fs_path, size_t)
This is useful when constructing property tree paths.
With this path, the following code would be valid:

size_t mb_index = 0;
fs_path mb_root = "/mboards";
mb_root = mb_root / mb_index;

This is a shortcut for the (in UHD very common)

mb_root = mb_root / boost::lexical_cast<std::string(mb_index);
2014-09-23 16:02:14 -07:00
Josh Blum
60933a242c uhd: added unit test for properties subtree 2011-07-08 12:11:27 -07:00
Josh Blum
bc8aaf3952 uhd: misc tweaks and also msvc compile 2011-06-29 13:57:06 -07:00
Josh Blum
54b8be72fd uhd: properties tweaks and docs 2011-06-29 11:26:33 -07:00
Josh Blum
d2f79c0728 uhd: added properties unit tests, use shared ptr<void> in tree 2011-06-28 21:26:28 -07:00
Josh Blum
4888233252 uhd: re-work to make the properties easier to use 2011-06-28 11:11:04 -07:00
Josh Blum
bff29cbbde uhd: change for default prop create() 2011-06-25 20:22:23 -07:00
Josh Blum
81c15feaaf uhd: created a property tree to store properties 2011-06-25 20:22:23 -07:00
Josh Blum
a951db18fd uhd: work on templated property class 2011-06-25 20:22:23 -07:00