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); }
/// <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); }