using System; using System.Collections.Generic; using EdjCase.JsonRpc.Core; using Newtonsoft.Json; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Newtonsoft.Json.Linq; namespace EdjCase.JsonRpc.Router.Abstractions { public interface IRpcInvoker { /// /// Call the incoming Rpc request method and gives the appropriate response /// /// Rpc request /// Rpc path that applies to the current request /// The context of the current rpc request /// An Rpc response for the request Task InvokeRequestAsync(RpcRequest request, RpcPath path, IRouteContext routeContext); /// /// Call the incoming Rpc requests methods and gives the appropriate respones /// /// List of Rpc requests to invoke /// Rpc route that applies to the current request /// The context of the current rpc request /// List of Rpc responses for the requests Task> InvokeBatchRequestAsync(IList requests, RpcPath path, IRouteContext routeContext); } }