private Task <Message> PutAsync(PeerAddress remotePeer, PutBuilder putBuilder, Message.MessageType type, Rpc.Commands command, ChannelCreator channelCreator) { Utils.NullCheck(remotePeer); DataMap dataMap; if (putBuilder.DataMap != null) { dataMap = new DataMap(putBuilder.DataMap); } else { dataMap = new DataMap(putBuilder.LocationKey, putBuilder.DomainKey, putBuilder.VersionKey, putBuilder.DataMapConvert); } var message = CreateRequestMessage(remotePeer, command.GetNr(), type); if (putBuilder.IsSign) { message.SetPublicKeyAndSign(putBuilder.KeyPair); } message.SetDataMap(dataMap); var tcsResponse = new TaskCompletionSource <Message>(message); var requestHandler = new RequestHandler(tcsResponse, PeerBean, ConnectionBean, putBuilder); if (!putBuilder.IsForceUdp) { return(requestHandler.SendTcpAsync(channelCreator)); } return(requestHandler.SendUdpAsync(channelCreator)); }
public Task <Message> GetLatestAsync(PeerAddress remotePeer, GetBuilder getBuilder, ChannelCreator channelCreator, Rpc.Commands command) { var message = CreateRequestMessage(remotePeer, command.GetNr(), Message.MessageType.Request1); if (getBuilder.IsSign) { message.SetPublicKeyAndSign(getBuilder.KeyPair); } message.SetKey(getBuilder.LocationKey); message.SetKey(getBuilder.DomainKey); message.SetKey(getBuilder.ContentKey); var tcsResponse = new TaskCompletionSource <Message>(message); var requestHandler = new RequestHandler(tcsResponse, PeerBean, ConnectionBean, getBuilder); if (!getBuilder.IsForceUdp) { return(requestHandler.SendTcpAsync(channelCreator)); } return(requestHandler.SendUdpAsync(channelCreator)); }