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>
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)