diff --git a/src/pvxs/data.h b/src/pvxs/data.h index e85a0de..f4658fb 100644 --- a/src/pvxs/data.h +++ b/src/pvxs/data.h @@ -193,6 +193,9 @@ struct Member { Member(TypeCode code, const std::string& name, std::initializer_list children) :Member(code, name , std::string(), children) {} + + PVXS_API + void addChild(const Member& mem); }; /** Helper functions for building TypeDef. diff --git a/src/type.cpp b/src/type.cpp index eec08a4..5a07a86 100644 --- a/src/type.cpp +++ b/src/type.cpp @@ -132,6 +132,12 @@ Member::Member(TypeCode code, const std::string& name, const std::string& id, st } } +void Member::addChild(const Member& mem) +{ + node_validate(this, mem.id, mem.code); + children.push_back(mem); +} + static void build_tree(std::vector& desc, const Member& node) {