设备的树状结构为设备的管理提供了一个类似文件系统的方式。设备的每一个具体的子设备映射为一个叶子节点,而每一个叶子节点可进行的操作在property_tree API(property_tree.hpp)中给出。
可以进行的操作有:
1、static sptr make(void); 创建新的、空的属性树
2、sptr subtree(const fs_path &path) const = 0;以当前节点为根节点,创建子树
3、void remove(const fs_path &path) = 0;删除属性或递归删除
4、bool exists(const fs_path &path) const = 0;判断属性树中是否存在某个节点
5、std::vector<std::string> list(const fs_path &path) const = 0;得到给定路径的所有节点
6、template <typename T> property<T> &create(const fs_path &path);在属性树中创建新的入口
7、template <typename T> property<T> &access(const fs_path &path);进入属性树中的某条路径
注:上述函数中的fs_path类型为包含分支和叶子的结构体,其定义如下:
struct fs_path : std::string{
UHD_API fs_path(void);
UHD_API fs_path(const char *);
UHD_API fs_path(const std::string &);
UHD_API std::string leaf(void) const;//叶子
UHD_API fs_path branch_path(void) const;//分支
};