Release v0.10.0
Asio completion token support and thread-safe Session operations.
New features:
- Callback functions,
yield_context
,use_awaitable
, anduse_future
now supported as completion tokens. - C++20 coroutines now supported
- Migrated from
AsyncResult
to newErrorOr
class which better emulates the proposedstd::expected
. Session
's asynchonous operations now return anErrorOr
result when passed ayield_context
as the completion token.- Added
Session
overloads with theThreadSafe
tag type which can be called concurrently by multiple threads. - Added
Realm::captureAbort
. Session
'ssetWarningHandler
,setTraceHandler
,setStateChangeHandler
, andsetChallengeHandler
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
andmoveToTuple
toPayload
class. - Added the
Deferment
tag type (withdeferment
constexpr variable) to more conveniently return a deferred
Outcome` from an RPC handler.