| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef LIB_INSPECT_SERVICE_CPP_READER_H_ |
| #define LIB_INSPECT_SERVICE_CPP_READER_H_ |
| |
| #include <fuchsia/inspect/cpp/fidl.h> |
| #include <lib/fpromise/promise.h> |
| #include <lib/inspect/cpp/hierarchy.h> |
| |
| namespace inspect { |
| |
| // Read all of the child names from a TreeNameIterator into a vector. |
| // |
| // This function continually calls GetNext on the iterator until all child names have been returned. |
| // |
| // Returns a promise for the vector of child names names. |
| fpromise::promise<std::vector<std::string>> ReadAllChildNames( |
| fuchsia::inspect::TreeNameIteratorPtr iterator); |
| |
| // Read a full inspect::Hierarchy from a fuchsia.inspect.Tree. |
| // |
| // fuchsia.inspect.Tree provides lookup support for Link nodes stored in a hierarchy. This function |
| // uses the protocol to lookup linked data as needed to create a complete view of the entire tree, |
| // including dynamically generated subtrees. |
| // |
| // Returns a promise for the hierarchy parsed from the Tree. |
| fpromise::promise<Hierarchy> ReadFromTree(fuchsia::inspect::TreePtr tree); |
| |
| } // namespace inspect |
| |
| #endif // LIB_INSPECT_SERVICE_CPP_READER_H_ |