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
ConnectionWishandConnectionWishListto replace the oldConnectionandConnectionListclasses. TcpHostandUdsPathnow havewithFormatmethods which generate aConnectionWishthat can be passed toSession::connect.- The
authenticate,publish, 'yield', andcancelmethods ofSessionnot taking a completion handler now return anErrorOrDone. The thread-safe overloads for those now return astd::future<ErrorOrDone>. AnyCompletionExecutoris now used by session to contain the user executor.- Added
Session::ongoingCallfor progressive call results, which automatically appliesrpc.withProgessiveResults(true). Session::fallbackExecutortype relaxed toAnyCompletionExecutor.- Added
wamp::spawnandwamp::YieldContextin<cppwamp/spawn.hpp>, which are aliases to their Boost.Asio counterparts. - Added
wamp::spawnCompletionHandlerandwamp::CompletionYieldContextto support spawning coroutines viaEvent::executorand
Invocation::executor. Challenge::authenticate,Invocation::yieldandInterruption::yieldnow have thread-safe and non-thread-safe overloads.- Added
SessionErrcerror codes corresponding to new predefined error URIs that have appeared in the WAMP spec. - Added
Session::setLogHandlerwhich takes a handler of typevoid (LogEntry)and unifies all log event handling. - Added
Session::setLogLevelfor use withSession::setLogHandler.