public void WriteMetadata(WriteCallback callback) { if (pending_length_cbs > 0) { return; } if (AddHeaders) { if (chunk_encode) { HttpEntity.Headers.SetNormalizedHeader("Transfer-Encoding", "chunked"); } else { HttpEntity.Headers.ContentLength = Length; } } StringBuilder builder = new StringBuilder(); HttpEntity.WriteMetadata(builder); byte [] data = Encoding.ASCII.GetBytes(builder.ToString()); metadata_written = true; var bytes = new List <ByteBuffer> (); bytes.Add(new ByteBuffer(data, 0, data.Length)); var write_bytes = new SendBytesOperation(bytes.ToArray(), callback); SocketStream.QueueWriteOperation(write_bytes); }
private void QueueWriteOperation(IWriteOperation op) { if (chunk_encode) { SocketStream.QueueWriteOperation(op); return; } if (write_ops == null) { write_ops = new Queue <IWriteOperation> (); } write_ops.Enqueue(op); }
public void SendBufferedOps(WriteCallback callback) { if (write_ops != null) { IWriteOperation [] ops = write_ops.ToArray(); for (int i = 0; i < ops.Length; i++) { SocketStream.QueueWriteOperation(ops [i]); } write_ops.Clear(); } SocketStream.QueueWriteOperation(new NopWriteOperation(callback)); }
public void WriteMetadata(WriteCallback callback) { StringBuilder builder = new StringBuilder(); HttpEntity.WriteMetadata(builder); byte [] data = Encoding.ASCII.GetBytes(builder.ToString()); metadata_written = true; var bytes = new List <ArraySegment <byte> > (); bytes.Add(new ArraySegment <byte> (data, 0, data.Length)); var write_bytes = new SendBytesOperation(bytes, callback); SocketStream.QueueWriteOperation(write_bytes); }