9 #ifndef INCLUDED_UHD_PROPERTY_TREE_HPP
10 #define INCLUDED_UHD_PROPERTY_TREE_HPP
14 #include <boost/function.hpp>
15 #include <boost/shared_ptr.hpp>
16 #include <boost/utility.hpp>
167 virtual const T
get(
void)
const = 0;
186 template <
typename T>
217 typedef boost::shared_ptr<property_tree>
sptr;
236 virtual std::vector<std::string>
list(
const fs_path& path)
const = 0;
239 template <
typename T>
243 template <
typename T>
247 template <
typename T>
248 boost::shared_ptr<property<T> > pop(
const fs_path& path);
252 virtual boost::shared_ptr<void> _pop(
const fs_path& path) = 0;
255 virtual void _create(
const fs_path& path,
const boost::shared_ptr<void>& prop) = 0;
258 virtual boost::shared_ptr<void>& _access(
const fs_path& path)
const = 0;
Definition: property_tree.hpp:215
virtual std::vector< std::string > list(const fs_path &path) const =0
Get an iterable to all things in the given path.
virtual ~property_tree(void)=0
virtual void remove(const fs_path &path)=0
Remove a property or directory (recursive)
virtual sptr subtree(const fs_path &path) const =0
Get a subtree with a new root starting at path.
static sptr make(void)
Create a new + empty property tree.
virtual bool exists(const fs_path &path) const =0
True if the path exists in the tree.
coerce_mode_t
Definition: property_tree.hpp:219
@ AUTO_COERCE
Definition: property_tree.hpp:219
boost::shared_ptr< property_tree > sptr
Definition: property_tree.hpp:217
Definition: property_tree.hpp:70
virtual property< T > & set_publisher(const publisher_type &publisher)=0
boost::function< T(void)> publisher_type
Definition: property_tree.hpp:73
virtual property< T > & add_desired_subscriber(const subscriber_type &subscriber)=0
virtual const T get_desired(void) const =0
virtual bool empty(void) const =0
virtual property< T > & add_coerced_subscriber(const subscriber_type &subscriber)=0
virtual property< T > & set_coercer(const coercer_type &coercer)=0
virtual ~property(void)=0
Definition: property_tree.hpp:187
boost::function< void(const T &)> subscriber_type
Definition: property_tree.hpp:72
virtual property< T > & set_coerced(const T &value)=0
boost::function< T(const T &)> coercer_type
Definition: property_tree.hpp:74
virtual property< T > & update(void)=0
virtual const T get(void) const =0
virtual property< T > & set(const T &value)=0
#define UHD_API
Definition: config.h:68
Definition: build_info.hpp:13
boost::noncopyable noncopyable
Definition: noncopyable.hpp:46
UHD_API fs_path operator/(const fs_path &, const fs_path &)
Definition: property_tree.hpp:200
UHD_API fs_path(const char *)
UHD_API std::string leaf(void) const
UHD_API fs_path branch_path(void) const
UHD_API fs_path(const std::string &)