src/Net/WrappedByteBuffer.cs (27 lines of code) (raw):

// ------------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation // All rights reserved. // // Licensed under the Apache License, Version 2.0 (the ""License""); you may not use this // file except in compliance with the License. You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0 // // THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, // EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR // CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR // NON-INFRINGEMENT. // // See the Apache Version 2.0 License for specific language governing permissions and // limitations under the License. // ------------------------------------------------------------------------------------ namespace Amqp { using System; class WrappedByteBuffer : ByteBuffer { readonly ByteBuffer buffer; public WrappedByteBuffer(ByteBuffer buffer, int offset, int length) : base(buffer.Buffer, offset, length, length, false) { buffer.AddReference(); this.buffer = buffer; } internal override void DuplicateBuffer(int bufferSize, int dataSize, out byte[] buffer, out int offset, out int count) { throw new InvalidOperationException(); } internal override void AddReference() { this.buffer.AddReference(); } internal override void ReleaseReference() { this.buffer.ReleaseReference(); } } }