Release 0.11.0
Polymorphic codecs and transports
New features:
- Adding more codecs or transports in the future will no longer result in a combinatorial explosion of explicit template instantions due to the number of transport/codec combinations.
- Session is now a move-only type that can be instantiated on the stack.
- Added
ConnectionWish
andConnectionWishList
to replace the oldConnection
andConnectionList
classes. TcpHost
andUdsPath
now havewithFormat
methods which generate aConnectionWish
that can be passed toSession::connect
.- The
authenticate
,publish
, 'yield', andcancel
methods ofSession
not taking a completion handler now return anErrorOrDone
. The thread-safe overloads for those now return astd::future<ErrorOrDone>
. AnyCompletionExecutor
is now used by session to contain the user executor.- Added
Session::ongoingCall
for progressive call results, which automatically appliesrpc.withProgessiveResults(true)
. Session::fallbackExecutor
type relaxed toAnyCompletionExecutor
.- Added
wamp::spawn
andwamp::YieldContext
in<cppwamp/spawn.hpp>
, which are aliases to their Boost.Asio counterparts. - Added
wamp::spawnCompletionHandler
andwamp::CompletionYieldContext
to support spawning coroutines viaEvent::executor
and
Invocation::executor
. Challenge::authenticate
,Invocation::yield
andInterruption::yield
now have thread-safe and non-thread-safe overloads.- Added
SessionErrc
error codes corresponding to new predefined error URIs that have appeared in the WAMP spec. - Added
Session::setLogHandler
which takes a handler of typevoid (LogEntry)
and unifies all log event handling. - Added
Session::setLogLevel
for use withSession::setLogHandler
.