/// <summary>
        ///     Respond with a message
        /// </summary>
        /// <param name="message"></param>
        /// <param name="statusCode"></param>
        public void Respond(IMessage message, EResponseStatus statusCode = EResponseStatus.Default)
        {
            message.Status = statusCode;

            if (AckResponseId.HasValue)
            {
                message.AckResponseId = AckResponseId.Value;
            }

            Peer.SendMessage(message, EDeliveryMethod.Reliable);
        }
        private void CancelAck(int ackId, EResponseStatus eResponseCode)
        {
            lock (_acks) {
                ResponseCallback ackCallback;
                _acks.TryGetValue(ackId, out ackCallback);

                if (ackCallback == null)
                {
                    return;
                }

                _acks.Remove(ackId);
                ackCallback(eResponseCode, _timeoutMessage);
            }
        }
        protected void TriggerAck(int ackId, EResponseStatus statusCode, IIncommingMessage message)
        {
            lock (_acks) {
                ResponseCallback ackCallback;
                _acks.TryGetValue(ackId, out ackCallback);

                if (ackCallback == null)
                {
                    return;
                }

                _acks.Remove(ackId);
                ackCallback(statusCode, message);
            }
        }
 public void Respond(object type, BaseFormater msg, EResponseStatus responseStatus = EResponseStatus.Default)
 {
     Respond(MessageHelper.Create((short)type, msg.ToBytes()), responseStatus);
 }
 public void Respond(int response, EResponseStatus statusCode = EResponseStatus.Default)
 {
     Respond(MessageHelper.Create(OpCode, response), statusCode);
 }
 public void Respond(string message, EResponseStatus statusCode = EResponseStatus.Default)
 {
     Respond(message.ToBytes(), statusCode);
 }
 /// <summary>
 ///     Respond with data (message is created internally)
 /// </summary>
 /// <param name="data"></param>
 /// <param name="statusCode"></param>
 public void Respond(ISerializablePacket packet, EResponseStatus statusCode = EResponseStatus.Default)
 {
     Respond(MessageHelper.Create(OpCode, packet.ToBytes()), statusCode);
 }
 /// <summary>
 ///     Respond with data (message is created internally)
 /// </summary>
 /// <param name="data"></param>
 /// <param name="statusCode"></param>
 public void Respond(byte[] data, EResponseStatus statusCode = EResponseStatus.Default)
 {
     Respond(MessageHelper.Create(OpCode, data), statusCode);
 }
Beispiel #9
0
 public void SetOtherResult(EResponseStatus status, string message = null)
 {
     Status  = status;
     Message = message;
 }
Beispiel #10
0
 public static bool IsFailure(this EResponseStatus status)
 => !status.IsSuccess();
Beispiel #11
0
 public static bool IsSuccess(this EResponseStatus status)
 => status == EResponseStatus.Success;