Exemple #1
0
        /// <summary>
        /// 发送结果
        /// </summary>
        /// <param name="result"></param>
        /// <returns></returns>
        protected virtual async Task SendResult(long id, object argument)
        {
            if (IWrite == null)
            {
                throw new NullReferenceException("IWrite is null!");
            }

            var packbuffer = SerializationPacker.PackSingleObject(argument);

            Task WSend()
            {
                if (mode == 0)
                {
                    IWrite !.Write(2500);
                    IWrite !.Write(id);
                    IWrite !.Write(false);
                    IWrite !.Write(1);
                    IWrite !.Write(packbuffer);
                    return(IWrite !.FlushAsync());
                }
                else
                {
                    using var buffer = new WriteBytes(IWrite);
                    buffer.WriteLen();
                    buffer.Cmd(2500);
                    buffer.Write(id);
                    buffer.Write(false);
                    buffer.Write(1);
                    buffer.Write(packbuffer);
                    return(buffer.FlushAsync());
                }
            }

            await await IWrite.Sync.Ask(WSend);
        }
Exemple #2
0
        /// <summary>
        /// 发送结果
        /// </summary>
        /// <param name="result"></param>
        /// <returns></returns>
        protected virtual async Task SendResult(long id, object argument)
        {
            if (FiberRw != null)
            {
                using (var wr = new WriteBytes(FiberRw))
                {
                    Task <int> WSend()
                    {
                        wr.WriteLen();
                        wr.Cmd(2500);
                        wr.Write(id);
                        wr.Write(false);
                        wr.Write(1);
                        wr.Write(SerializationPacker.PackSingleObject(argument));
                        return(wr.Flush());
                    }

                    await await FiberRw.Sync.Ask(WSend);
                }
            }
            else
            {
                Log.Error("Send fail,is not fiber");
            }
        }
Exemple #3
0
 /// <summary>
 /// 发送结果
 /// </summary>
 /// <param name="result"></param>
 /// <returns></returns>
 protected virtual Task SendResult(long id, object argument)
 {
     if (IWrite != null)
     {
         IWrite.Write(2500);
         IWrite.Write(id);
         IWrite.Write(false);
         IWrite.Write(1);
         IWrite.Write(SerializationPacker.PackSingleObject(argument));
         return(IWrite.Flush());
     }
     else
     {
         throw new NullReferenceException("IWrite is null!");
     }
 }
Exemple #4
0
 /// <summary>
 /// 发送结果
 /// </summary>
 /// <param name="result"></param>
 /// <returns></returns>
 protected virtual Task SendResult(long id, object argument)
 {
     if (FiberRw != null)
     {
         using (var wr = new WriteBytes(FiberRw))
         {
             wr.WriteLen();
             wr.Cmd(2500);
             wr.Write(id);
             wr.Write(false);
             wr.Write(1);
             wr.Write(SerializationPacker.PackSingleObject(argument));
             return(wr.Flush());
         }
     }
     else
     {
         Log.Error("Send fail,is not fiber");
         return(Task.CompletedTask);
     }
 }
Exemple #5
0
        /// <summary>
        /// 发送结果
        /// </summary>
        /// <param name="result"></param>
        /// <returns></returns>
        protected virtual async Task SendResult(long id, object argument)
        {
            if (IWrite == null)
            {
                throw new NullReferenceException("IWrite is null!");
            }

            var buffer = SerializationPacker.PackSingleObject(argument);

            Task <int> WSend()
            {
                IWrite !.Write(2500);
                IWrite !.Write(id);
                IWrite !.Write(false);
                IWrite !.Write(1);
                IWrite !.Write(buffer);
                return(IWrite !.Flush());
            }

            await await IWrite.Sync.Ask(WSend);
        }
Exemple #6
0
 public T Value <T>()
 {
     return((T)SerializationPacker.UnpackSingleObject(typeof(T), Data));
 }