blob: f6a7aa56166d952344185cbfac6e049e6ab345a9 [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.
// TODO(https://fxbug.dev/84961): Fix null safety and remove this language version.
// @dart=2.9
import 'dart:io';
import 'package:fidl_fuchsia_component/fidl_async.dart';
import 'package:fidl_fuchsia_component_decl/fidl_async.dart';
import 'package:fidl_fuchsia_examples_inspect/fidl_async.dart';
import 'package:fidl_fuchsia_io/fidl_async.dart';
import 'package:fuchsia_logger/logger.dart';
import 'package:fuchsia_services/src/incoming.dart';
import 'package:fuchsia/fuchsia.dart' as fuchsia;
Future<void> main() async {
setupLogger(name: 'inspect_dart_codelab', globalTags: ['client']);
// TODO(fxbug.dev/88383): dart doesn't support `program.args` at the moment.
const args = ["Hello", "world"];
final realm = RealmProxy();
Incoming.fromSvcPath().connectToService(realm);
final reverserExposedDir = DirectoryProxy();
await realm.openExposedDir(
ChildRef(name: "reverser"), reverserExposedDir.ctrl.request());
final reverser = ReverserProxy();
Incoming.withDirectory(reverserExposedDir).connectToService(reverser);
final fizzbuzzExposedDir = DirectoryProxy();
await realm.openExposedDir(
ChildRef(name: "fizzbuzz"), fizzbuzzExposedDir.ctrl.request());
final fizzbuzzBinder = BinderProxy();
Incoming.withDirectory(fizzbuzzExposedDir).connectToService(fizzbuzzBinder);
// [START reverse_loop]
for (int i = 0; i < args.length; i++) {
log.info('Input: ${args[i]}');
final response = await reverser.reverse(args[i]);
log.info('Output: $response');
}
// [END reverse_loop]
log.info('Done. Press Ctrl+C to exit');
// ignore: literal_only_boolean_expressions
while (true) {
sleep(const Duration(seconds: 1));
}
}