new async handlers in kernel-core (atm only execute_request)
new xainterpreter class:
this is just the old interpreter class, but :
async_execute_request instead of execute_request method
async_execute_request gets a response_sender as additional argument
returns void instead of a reply
callers of async_execute_request are responsible for calling response_sender with the reply instead of returning it
backward compatible / should not break existing code bases:
new xinterpreter class deriving from the new xainterpreter having the old API
atm the publisher story is very hacky:
all the methods like "display_data" / "publish_execution_error" do not work by default because they use the wrong parent header in case of concurrent requests (jeah xeus stores parent headers in a single variable which is overwriten on concurrent requests)
=> as a quick hack I added overloads for these methods that a parent-header can be passed but this is a bit ugly
In a nutshell:
new async handlers in kernel-core (atm only execute_request)
new xainterpreter class:
async_execute_request
instead ofexecute_request
methodasync_execute_request
gets aresponse_sender
as additional argumentasync_execute_request
are responsible for callingresponse_sender
with the reply instead of returning itbackward compatible / should not break existing code bases:
xinterpreter
class deriving from the newxainterpreter
having the old APIatm the publisher story is very hacky: