summaryrefslogtreecommitdiffstats
path: root/host/lib/property_tree.cpp
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-06-28 21:26:28 -0700
committerJosh Blum <josh@joshknows.com>2011-06-28 21:26:28 -0700
commitd2f79c07281604c1b48ec81f1cdb2754e97bbe65 (patch)
treee41a2000af165384bbe03b1ff6d6ea118bbbcf1f /host/lib/property_tree.cpp
parentebd2ecc6ff2b82cb06701bbcda17d4caaa4ba8c1 (diff)
downloaduhd-d2f79c07281604c1b48ec81f1cdb2754e97bbe65.tar.gz
uhd-d2f79c07281604c1b48ec81f1cdb2754e97bbe65.tar.bz2
uhd-d2f79c07281604c1b48ec81f1cdb2754e97bbe65.zip
uhd: added properties unit tests, use shared ptr<void> in tree
Diffstat (limited to 'host/lib/property_tree.cpp')
-rw-r--r--host/lib/property_tree.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/host/lib/property_tree.cpp b/host/lib/property_tree.cpp
index 4fbdbad12..4a0b1b061 100644
--- a/host/lib/property_tree.cpp
+++ b/host/lib/property_tree.cpp
@@ -61,7 +61,7 @@ public:
return node->keys();
}
- void _create(const path_type &path, const boost::any &prop){
+ void _create(const path_type &path, const boost::shared_ptr<void> &prop){
boost::mutex::scoped_lock lock(_mutex);
node_type *node = &_root;
@@ -72,7 +72,7 @@ public:
node->prop = prop;
}
- boost::any &_access(const path_type &path){
+ boost::shared_ptr<void> &_access(const path_type &path){
boost::mutex::scoped_lock lock(_mutex);
node_type *node = &_root;
@@ -80,6 +80,7 @@ public:
if (not node->has_key(leaf)) throw_path_not_found(path);
node = &(*node)[leaf];
}
+ if (node->prop.get() == NULL) throw uhd::type_error("Uninitialized property at: " + path.string());
return node->prop;
}
@@ -89,7 +90,7 @@ private:
}
struct node_type : uhd::dict<std::string, node_type>{
- boost::any prop;
+ boost::shared_ptr<void> prop;
} _root;
boost::mutex _mutex;