internal void Answer <TRequest, TReply>(TRequest value, AbstractAnswerable answerable, LetterOptions options, AnswerCallback <TRequest, TReply> callback) { ILetter letter = CreateLetter(value, options | LetterOptions.Ack, answerable.ConversationId); var outstanding = new DelegateOutstanding <TRequest, TReply>(this, value, callback); _outstandings.Add(answerable.ConversationId, outstanding); _socket.SendTo(letter, answerable.RemoteNodeId); }
public void Send <TRequest, TReply>(TRequest request, AnswerCallback <TRequest, TReply> callback, LetterOptions options = LetterOptions.None) { Guid conversationId = Guid.NewGuid(); ILetter letter = CreateLetter(request, options, conversationId); var outstanding = new DelegateOutstanding <TRequest, TReply>(this, request, callback); _outstandings.Add(conversationId, outstanding); _socket.Send(letter); }