protected override CallSlot DoSendRequest(ClientEndPoint endpoint, RequestMsg request, CallOptions options) { request.__setServerTransport(findServerTransport(endpoint)); //notice: no serialization because we are in the same address space ResponseMsg response; try { response = Glue.ServerHandleRequest(request); } catch (Exception e) { response = Glue.ServerHandleRequestFailure(request.RequestID, request.OneWay, e, request.BindingSpecificContext); } if (request.OneWay) { return(new CallSlot(endpoint, this, request, CallStatus.Dispatched, options.TimeoutMs)); } var result = new CallSlot(endpoint, this, request, CallStatus.ResponseOK); result.DeliverResponse(response); return(result); }