blob: c475cf956f5167c0420f4f92c8e99d1c529588f1 [file] [log] [blame]
// Copyright 2020 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/sys/cpp/component_context.h>
#include <lib/syslog/cpp/log_settings.h>
// CODELAB: Include inspect.
#include <lib/syslog/cpp/macros.h>
#include "reverser.h"
int main(int argc, char** argv) {
// [START init_logger]
fuchsia_logging::SetTags({"inspect_cpp_codelab", "part1"});
// [END init_logger]
FX_LOGS(INFO) << "Starting up...";
// Standard component setup, create an event loop and obtain the
// ComponentContext.
// [START async_executor]
async::Loop loop(&kAsyncLoopConfigAttachToCurrentThread);
auto context = sys::ComponentContext::CreateAndServeOutgoingDirectory();
// [END async_executor]
// CODELAB: Initialize Inspect here.
// Serve the reverser service.
// [START serve_outgoing]
context->outgoing()->AddPublicService(Reverser::CreateDefaultHandler());
// [END serve_outgoing]
// Send a request to the FizzBuzz service and print the response when it arrives.
// [START fizzbuzz_connect]
fuchsia::examples::inspect::FizzBuzzPtr fizz_buzz;
context->svc()->Connect(fizz_buzz.NewRequest());
fizz_buzz->Execute(30, [](std::string result) { FX_LOGS(INFO) << "Got FizzBuzz: " << result; });
// [END fizzbuzz_connect]
// Run the loop.
loop.Run();
return 0;
}