This library provides the runtime for FIDL C/C++ family of bindings. This primarily means the definitions of the message encoding and decoding functions. This also includes the definitions of fidl data types such as vectors and strings.
fidl::BindServer() functions at server.h.
This implementation allows for multiple in-flight transactions and supports multi-threaded dispatchers. Using the
ToAsync() on completers will not stop this implementation from receiving other messages on the bound channel. This is useful for implementing fully asynchronous servers and in particular allows for FIDL hanging-get patterns to be implemented such that a “Watch” method does not block every other transaction in the channel.
The implementation also supports synchronous multi-threaded servers via the
EnableNextDispatch() call on the
EnableNextDispatch() enables another thread (on a multi-threaded dispatcher) to handle the next message on a bound channel in parallel. More complex use-cases combining synchronous and asynchronous behavior are also supported.