Ejemplo n.º 1
0
        public bool CreateResponse(ref AutoCSer.Memory.Pointer buffer)
        {
            if (IsCreateResponse || SocketIdentity != Socket.Identity)
            {
                return(false);
            }
            IsCreateResponse = true;
            UnmanagedStream responseStream = Interlocked.Exchange(ref ResponseStream, null);

            if (responseStream == null)
            {
                responseStream = new UnmanagedStream(ref buffer);
            }
            else
            {
                responseStream.Reset(ref buffer);
            }
            CallResponse.Set(responseStream, ref DomainServer.ResponseEncoding);
            return(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 创建 WEB 异步调用输出
        /// </summary>
        /// <param name="size"></param>
        /// <returns>是否创建成功</returns>
        public bool CreateResponse(int size = UnmanagedPool.TinySize)
        {
            if (IsCreateResponse || SocketIdentity != Socket.Identity)
            {
                return(false);
            }
            IsCreateResponse = true;
            UnmanagedStream responseStream = Interlocked.Exchange(ref ResponseStream, null);

            if (responseStream == null)
            {
                responseStream = new UnmanagedStream(size);
            }
            else
            {
                responseStream.Reset((byte *)Unmanaged.Get(size, false), size);
                responseStream.IsUnmanaged = true;
            }
            CallResponse.Set(responseStream, ref DomainServer.ResponseEncoding);
            return(true);
        }