public SocketChannel(BufferManager bufferManager) { if (bufferManager == null) throw new ArgumentNullException("bufferManager"); _readBuffer = bufferManager.Pop(); _readArgs.SetBuffer(_readBuffer.Buffer, _readBuffer.Offset, _readBuffer.Capacity); _readArgs.Completed += OnReadCompleted; _writeArgs.SendPacketsFlags = TransmitFileOptions.WriteBehind; _writeArgs.Completed += OnWriteCompleted; }
static void Main(string[] args) { responseSlice = new BufferSlice(_responseBytes, 0, _responseBytes.Length); ThreadPool.SetMinThreads(100, 100); var server = new HttpListener(10000); server.PreAllocateChannels(1000); server.RequestHandler = OnRequests; server.Start(8844); System.Console.WriteLine("Running"); System.Console.ReadLine(); }
public void Enqueue(byte[] buffer) { if (!CanEnqueueMore) throw new InvalidOperationException("Cannot enqueue more buffers."); var slice = new BufferSlice(buffer, 0, buffer.Length) { LibraryState = buffer }; _queue[_index++] = slice; ++_sliceCount; _bytesEnqueued += buffer.Length; }
public void Enqueue(byte[] buffer, int offset, int count) { if (offset + count > buffer.Length) throw new ArgumentOutOfRangeException("buffer", offset + count, "Offset+Count is larger than the buffer size. Buffer size: " + buffer.Length); if (offset < 0) throw new ArgumentOutOfRangeException("offset", offset, "Must be 0 or larger"); if (count < 1) throw new ArgumentOutOfRangeException("count", count, "At least 1 byte must be allocated for this slize."); if (!CanEnqueueMore) throw new InvalidOperationException("Cannot enqueue more buffers."); var slice = new BufferSlice(buffer, offset, count) { LibraryState = buffer }; _queue[_index++] = slice; ++_sliceCount; _bytesEnqueued += count; }
public void Enqueue(BufferSlice slice) { if (slice == null) throw new ArgumentNullException("slice"); if (!CanEnqueueMore) throw new InvalidOperationException("Cannot enqueue more bytes."); _queue[_index++] = slice; ++_sliceCount; _bytesEnqueued += slice.Count2; }
public void Push(BufferSlice slice) { if (slice == null) throw new ArgumentNullException("slice"); _slices.Enqueue(slice); }