blob: cc2c359344de3be6f86d951967f09860d22e3119 [file] [log] [blame]
// 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.
#include <lib/async-loop/cpp/loop.h>
#include <lib/async-loop/default.h>
#include <lib/inspect/cpp/vmo/types.h>
#include <lib/sys/cpp/component_context.h>
#include <lib/sys/inspect/cpp/component.h>
#include <lib/syslog/cpp/macros.h>
#include <cstdint>
#include <cstdlib>
class Object {
public:
Object(inspect::Node node, uint64_t value) : node_(std::move(node)) {
version_ = node_.CreateString("version", "1.0");
value_ = node_.CreateInt("value", value);
}
private:
inspect::Node node_;
inspect::StringProperty version_;
inspect::IntProperty value_;
};
int main(int argc, const char** argv) {
async::Loop loop(&kAsyncLoopConfigAttachToCurrentThread);
auto context = sys::ComponentContext::CreateAndServeOutgoingDirectory();
auto inspector = std::make_unique<sys::ComponentInspector>(context.get());
auto& root = inspector->root();
Object o1(root.CreateChild("obj1"), 100);
Object o2(root.CreateChild("obj2"), 200);
loop.Run();
return EXIT_SUCCESS;
}