public void Accept(IResourcePool <ArraySegment <byte> > visitor) { _bufferManager = visitor; _writeEventArgs = new SocketAsyncEventArgs(); var taken = visitor.Take(out _writeBuffer); Contract.Assert(taken); _writeEventArgs.SetBuffer(_writeBuffer.Array, _writeBuffer.Offset, _writeBuffer.Count); }