PhotonWire.Server.ServerToServer.PhotonWireOutboundS2SPeer.SendOperationRequestAsync C# (CSharp) Method

SendOperationRequestAsync() public method

public SendOperationRequestAsync ( byte operationCode, object>.Dictionary parameters, SendParameters sendParameters ) : Task
operationCode byte
parameters object>.Dictionary
sendParameters SendParameters
return Task
        public Task<OperationResponse> SendOperationRequestAsync(byte operationCode, Dictionary<byte, object> parameters, SendParameters sendParameters)
        {
            var msgId = Interlocked.Increment(ref messageId);
            var future = IssueOperationResponseFuture(msgId);

            parameters[ReservedParameterNo.MessageId] = msgId;

            var request = new OperationRequest(operationCode, parameters);

            var sendResult = this.SendOperationRequest(request, sendParameters);
            if (sendResult != SendResult.Ok)
            {
                TaskCompletionSource<OperationResponse> _future;
                TryGetAndRemoveFuture(msgId, out _future);
                future.SetException(new Exception(string.Format("Can't send message. SendResult:{0}", sendResult)));
                return future.Task;
            }

            return future.Task;
        }