18 #ifndef INCLUDED_UHD_PROPERTY_TREE_HPP 19 #define INCLUDED_UHD_PROPERTY_TREE_HPP 22 #include <boost/utility.hpp> 23 #include <boost/shared_ptr.hpp> 24 #include <boost/function.hpp> 33 template <
typename T>
class property : boost::noncopyable{
90 virtual T
get(void)
const = 0;
97 virtual bool empty(
void)
const = 0;
110 UHD_API fs_path(
const std::string &);
111 UHD_API std::string leaf(
void)
const;
112 UHD_API fs_path branch_path(
void)
const;
122 typedef boost::shared_ptr<property_tree>
sptr;
125 static sptr make(
void);
128 virtual sptr subtree(
const fs_path &path)
const = 0;
131 virtual void remove(
const fs_path &path) = 0;
134 virtual bool exists(
const fs_path &path)
const = 0;
137 virtual std::vector<std::string> list(
const fs_path &path)
const = 0;
147 virtual void _create(
const fs_path &path,
const boost::shared_ptr<void> &prop) = 0;
150 virtual boost::shared_ptr<void> &_access(
const fs_path &path)
const = 0;
156 #include <uhd/property_tree.ipp> boost::function< void(const T &)> subscriber_type
Definition: property_tree.hpp:35
virtual property< T > & update(void)=0
Definition: property_tree.hpp:107
boost::shared_ptr< property_tree > sptr
Definition: property_tree.hpp:122
virtual property< T > & publish(const publisher_type &publisher)=0
#define UHD_API
Definition: config.hpp:76
Definition: convert.hpp:28
boost::function< T(const T &)> coercer_type
Definition: property_tree.hpp:37
virtual bool empty(void) const =0
virtual property< T > & coerce(const coercer_type &coercer)=0
boost::function< T(void)> publisher_type
Definition: property_tree.hpp:36
virtual property< T > & subscribe(const subscriber_type &subscriber)=0
Definition: property_tree.hpp:120
UHD_API fs_path operator/(const fs_path &, const fs_path &)
Definition: property_tree.hpp:33