天天看点

属性树提供的操作函数

设备的树状结构为设备的管理提供了一个类似文件系统的方式。设备的每一个具体的子设备映射为一个叶子节点,而每一个叶子节点可进行的操作在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;//分支

};

继续阅读