Skip to content

Release v0.10.0

Compare
Choose a tag to compare
@ecorm ecorm released this 13 Aug 23:27
· 5 commits to master since this release

Asio completion token support and thread-safe Session operations.

New features:

  • Callback functions, yield_context, use_awaitable, and use_future now supported as completion tokens.
  • C++20 coroutines now supported
  • Migrated from AsyncResult to new ErrorOr class which better emulates the proposed std::expected.
  • Session's asynchonous operations now return an ErrorOr result when passed a yield_context as the completion token.
  • Added Session overloads with the ThreadSafe tag type which can be called concurrently by multiple threads.
  • Added Realm::captureAbort.
  • Session's setWarningHandler, setTraceHandler, setStateChangeHandler, and setChallengeHandler now take effect immediately even when connected.
  • Users can bind custom executors to their handlers and Session will use them when executing those handlers.
  • Boost.Asio cancellation slot support for Session::call.
  • Added Rpc::withCancelMode which specifies the cancel mode to use when triggered by Asio cancellation slots.
  • Added withArgsTuple, convertToTuple and moveToTuple to Payload class.
  • Added the Deferment tag type (with deferment constexpr variable) to more conveniently return a deferred Outcome` from an RPC handler.