/// <summary> /// Handles a remote ping request /// </summary> /// <returns>An awaitable task.</returns> /// <param name="self">The node information.</param> /// <param name="req">The request to handle.</param> private static Task HandlePingRequestAsync(PeerInfo self, ConnectionRequest req) { log.Debug($"Converting ping request to node lookup ({req.RequestID})"); return(HandleNodeLookupRequestAsync(self, new ConnectionRequest() { Key = self.Key, EndPoint = self.Address, RequestID = req.RequestID, Response = req.Response, Request = new Protocol.Request() { Target = self.Key, Operation = Protocol.Operation.Ping } })); }
/// <summary> /// Handles a remote store request /// </summary> /// <returns>An awaitable task.</returns> /// <param name="self">The node information.</param> /// <param name="request">The request to handle.</param> private static async Task HandleStoreRequestAsync(PeerInfo self, ConnectionRequest request) { log.Debug($"Query MRU ({request.RequestID})"); var res = await Channels.MRURequests.Get() .SendAddAsync(request.Request.Target, request.Request.Data); log.Debug($"Got response, forwarding to requester ({request.RequestID}) ..."); await request.Response.WriteAsync(new ConnectionResponse() { RequestID = request.RequestID, Response = new Protocol.Response() { Self = self, Success = res, } }); log.Debug($"Completed store query ({request.RequestID})"); }