tree: d5ebf61d830dcdcaacee2c51562fc86b51a6cd13 [path history] [tgz]
  1. client/
  2. client_sync/
  3. server/
  4. unittests/
  5. BUILD.gn
  6. README.md
examples/fidl/cpp/README.md

Unified C++ FIDL bindings examples

This directory contains example code for using natural types in the unified C++ bindings (fxbug.dev/60240).

To use the unified bindings for a library //examples/fidl/fuchsia.examples, declare the following dependency:

deps = [
    "//examples/fidl/fuchsia.examples:fuchsia.examples_cpp",
]

and include the following header:

#include <fidl/fuchsia.examples/cpp/fidl.h>

Client example

Note: the instruction here is adapted from the LLCPP tutorials. We should write a similar full-fledged tutorial for the unified bindings as it matures.

To run the client example, run the echo_realm component. This creates the client and server component instances and routes the capabilities:

ffx component run fuchsia-pkg://fuchsia.com/echo-cpp-client#meta/echo_realm.cm

Then, we can start the echo_client instance:

ffx component start /core/ffx-laboratory:echo_realm/echo_client

The server component starts when the client attempts to connect to the Echo protocol. You should see the following output using fx log:

[echo_server][I] Running echo server
[echo_server][I] Incoming connection for fuchsia.examples.Echo
[echo_client][I] (Natural types) got response: hello
[echo_client][I] (Natural types) got response: hello
[echo_client][I] (Wire types) got response: hello
[echo_server][W] server error: FIDL endpoint was unbound due to peer closed, status: ZX_ERR_PEER_CLOSED (-24)