| // 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 <fidl/examples/echo/cpp/fidl.h> |
| #include <lib/fdio/directory.h> |
| #include <src/lib/files/path.h> |
| |
| #include <iostream> |
| #include <string> |
| |
| #include "lib/fidl/cpp/string.h" |
| |
| int main(int argc, const char** argv) { |
| if (argc < 2) { |
| printf( |
| "Usage: %s <path> <strings...>\nOpens <path> as an echo server and " |
| "sends <strings>\n", |
| argv[0]); |
| return -1; |
| } |
| |
| fidl::examples::echo::EchoSyncPtr echo; |
| |
| std::string file_name = files::AbsolutePath(argv[1]); |
| zx_status_t status = |
| fdio_service_connect(file_name.c_str(), echo.NewRequest().TakeChannel().release()); |
| if (status != ZX_OK) { |
| printf("Failed to open %s, %d\n", file_name.c_str(), status); |
| return -1; |
| } |
| |
| for (int i = 2; i < argc; i++) { |
| fidl::StringPtr result; |
| echo->EchoString(argv[i], &result); |
| printf("Response: %s\n", result->c_str()); |
| } |
| |
| printf("Done sending strings, close this component to disconnect.\n"); |
| sleep(1000000000); |
| |
| return 0; |
| } |