Proton DotNet
|
A composite buffer contains zero, one or more proton buffer instances chained together to behave as if it were one single contiguous buffer which can be read or written to. More...
Public Member Functions | |
IProtonBuffer | Fill (byte value) |
Fill the buffer with the given byte value. This method does not respect the read offset nor the write offset but instead fills the entire backing buffer memory with the given value. | |
IProtonBuffer | Reset () |
Resets the read and write offset values to zero. | |
IProtonBuffer | SkipBytes (long amount) |
Advance the buffer read offset by the specified amount effectively skipping that number of bytes from being read. | |
IProtonCompositeBuffer | Append (IProtonBuffer buffer) |
Appends the provided buffer to the end of the list of composite buffers already managed by this buffer. The given buffer becomes the property of the composite and the constraints placed upon buffers managed by the composite implementation are extended to this appended buffer. | |
IProtonBuffer | Compact () |
Discards the read bytes, and moves the buffer contents to the beginning of the buffer. | |
IProtonBuffer | Reclaim () |
Reclaims read buffer space and returns it to the operating system or other pooling mechanisms if those are in place, then compacts the remaining buffer contents. For a non-composite buffer this operation could consist of allocating a smaller buffer to house any remaining unread bytes and freeing the larger backing buffer in some cases or it may result in a no-op depending on the buffer implementation. For the composite buffer case this operation provides an API which allows for fully read buffer constituents to be released and returned to a memory pool or back to the O/S. | |
IProtonBuffer | WriteSplit (long offset) |
Splits the buffer into two distinct buffers at the given index plus the current write offset. The returned buffer will retain the read offset and write offset of this buffer but will be truncated to match the capacity provided by the split index, which implies that they might both be set to the capacity if they were previously set to the split index. The returned buffer will set its read and write offsets to zero if they fell prior to the given index otherwise they will be truncated to match the new buffer capacity. Split buffers support the standard buffer operations including resizing to ensure writable regions which implies that a buffer resize on either will cause them to no longer reference the same underlying memory region. If buffer implementations implement pooling then they must ensure proper release of shared buffer regions once both buffers no longer reference them. | |
IProtonBuffer | ReadSplit (long offset) |
Splits the buffer into two distinct buffers at the given index plus the current read offset. The returned buffer will retain the read offset and write offset of this buffer but will be truncated to match the capacity provided by the split index, which implies that they might both be set to the capacity if they were previously set beyond the split index. The returned buffer will set its read and write offsets to zero if they fell prior to the given index otherwise they will be truncated to match the new buffer capacity. Split buffers support the standard buffer operations including resizing to ensure writable regions which implies that a buffer resize on either will cause them to no longer reference the same underlying memory region. If buffer implementations implement pooling then they must ensure proper release of shared buffer regions once both buffers no longer reference them. | |
IProtonBuffer | Split () |
Splits the buffer into two buffers at the write offset. The resulting buffer will comprise the read and readable portions of this buffer with the write offset and capacity set to the current write offset. This buffer will lose access to the split region and its read offset will be set to the current write offset. This buffer will also have its capacity reduced by the number of bytes in the returned buffer (i.e. the current number of read and readable bytes). Split buffers support the standard buffer operations including resizing to ensure writable regions which implies that a buffer resize on either will cause them to no longer reference the same underlying memory region. If buffer implementations implement pooling then they must ensure proper release of shared buffer regions once both buffers no longer reference them. | |
IProtonBuffer | Split (long offset) |
Splits the buffer into two distinct buffers at the given index. The returned buffer will retain the read offset and write offset of this buffer but will be truncated to match the capacity provided by the split index, which implies that they might both be set to the capacity if they were previously set beyond the split index. The returned buffer will set its read and write offsets to zero if they fell prior to the given index otherwise they will be truncated to match the new buffer capacity. Split buffers support the standard buffer operations including resizing to ensure writable regions which implies that a buffer resize on either will cause them to no longer reference the same underlying memory region. If buffer implementations implement pooling then they must ensure proper release of shared buffer regions once both buffers no longer reference them. | |
IEnumerable< IProtonBuffer > | DecomposeBuffer () |
Serves as a means of breaking up a composite buffer into an enumeration of the constituent buffers that is manages. Decomposing a buffer serves to consume the buffer leaving it an empty state, and the returned buffers are considered the property of the caller. | |
IProtonBuffer | Copy () |
Returns a copy of this buffer's readable bytes. Modifying the content of the returned buffer will not affect this buffers contents. The two buffers will maintain separate offsets. The returned copy has the write offset set to the length of the copy meaning that the entire copied region is read for reading. | |
IProtonBuffer | Copy (long index, long length) |
Returns a copy of this buffer's readable bytes. Modifying the content of the returned buffer will not affect this buffers contents. The two buffers will maintain separate offsets. The amount and start of the data to be copied is provided by the index and length arguments. The returned copy has the write offset set to the length of the copy meaning that the entire copied region is read for reading. | |
IProtonBuffer | CopyInto (long srcPos, byte[] dest, long destPos, long length) |
Copies the given number of bytes from this buffer into the target byte buffer starting the read from the given position in this buffer and the write to at the given position in the destination buffer. The length parameter controls how many bytes are copied to the destination. This method does not modify the read or write offset values in this buffer. | |
IProtonBuffer | CopyInto (long srcPos, IProtonBuffer dest, long destPos, long length) |
Copies the given number of bytes from this buffer into the target byte buffer starting the read from the given position in this buffer and the write to at the given position in the destination buffer. The length parameter controls how many bytes are copied to the destination. This method does not modify the read or write offset values in this buffer nor those of the destination buffer. The destination write index is an absolute index value unrelated to the write offset of the target. | |
IProtonBuffer | EnsureWritable (long amount) |
Requests that the buffer ensure that there is enough allocated internal capacity such that the given number of bytes can be written without requiring additional allocations and that this amount does not exceed any total capacity restrictions for this buffer. | |
int | CompareTo (object obj) |
int | CompareTo (IProtonBuffer other) |
bool | Equals (IProtonBuffer other) |
override int | GetHashCode () |
int | ForEachReadableComponent (in int index, in Func< int, IReadableComponent, bool > processor) |
Invokes the provided delegate for each readable component in this buffer and increments the provided index value for each invocation. The total number of buffers processed is returned to the caller. The delegate can stop processing at any time by returning false in which case this method will stop and return a negative value to indicate that processing stopped early and did not traverse all available components. | |
int | ForEachWritableComponent (in int index, in Func< int, IWritableComponent, bool > processor) |
Invokes the provided delegate for each writable component in this buffer and increments the provided index value for each invocation. The total number of buffers processed is returned to the caller. The delegate can stop processing at any time by returning false in which case this method will stop and return a negative value to indicate that processing stopped early and did not traverse all available components. | |
bool | GetBoolean (long index) |
Reads a single byte from the given index and returns a boolean value indicating if the byte was zero (false) or greater than zero (true). | |
sbyte | GetByte (long index) |
Reads a single signed byte from the given index and returns it. | |
char | GetChar (long index) |
Reads a single 2 byte char from the given index and returns it. | |
double | GetDouble (long index) |
Reads a single 8 byte double from the given index and returns it. | |
float | GetFloat (long index) |
Reads a single 4 byte float from the given index and returns it. | |
short | GetShort (long index) |
Reads a single 2 byte short from the given index and returns it. | |
int | GetInt (long index) |
Reads a single 4 byte int from the given index and returns it. | |
long | GetLong (long index) |
Reads a single 8 byte long from the given index and returns it. | |
byte | GetUnsignedByte (long index) |
Reads a single unsigned byte from the given index and returns it. | |
ushort | GetUnsignedShort (long index) |
Reads a single 2 byte unsigned short from the given index and returns it. | |
uint | GetUnsignedInt (long index) |
Reads a single 4 byte unsigned int from the given index and returns it. | |
ulong | GetUnsignedLong (long index) |
Reads a single 8 byte unsigned long from the given index and returns it. | |
bool | ReadBoolean () |
Reads the next byte from the buffer and returns the boolean value. | |
sbyte | ReadByte () |
Read a signed byte from the buffer and advance the read offset. | |
char | ReadChar () |
Reads the two bytes from the buffer and returns the char value. | |
double | ReadDouble () |
Reads the next eight bytes from the buffer and returns the double value. | |
float | ReadFloat () |
Reads the next four bytes from the buffer and returns the float value. | |
short | ReadShort () |
Reads the next two bytes from the buffer and returns the short value. | |
int | ReadInt () |
Reads the next four bytes from the buffer and returns the int value. | |
long | ReadLong () |
Reads the next eight bytes from the buffer and returns the long value. | |
byte | ReadUnsignedByte () |
Read a unsigned byte from the buffer and advance the read offset. | |
ushort | ReadUnsignedShort () |
Reads the next two bytes from the buffer and returns the unsigned short value. | |
uint | ReadUnsignedInt () |
Reads the next four bytes from the buffer and returns the unsigned int value. | |
ulong | ReadUnsignedLong () |
Reads the next eight bytes from the buffer and returns the unsigned long value. | |
IProtonBuffer | SetBoolean (long index, bool value) |
Write the given boolean value at the given location in the buffer backing store without modifying the write offset of this buffer. | |
IProtonBuffer | SetByte (long index, sbyte value) |
Write the given byte value at the given location in the buffer backing store without modifying the write offset of this buffer. | |
IProtonBuffer | SetChar (long index, char value) |
Write the given 2 byte char value at the given location in the buffer backing store without modifying the write offset of this buffer. | |
IProtonBuffer | SetDouble (long index, double value) |
Write the given 8 byte double value at the given location in the buffer backing store without modifying the write offset of this buffer. | |
IProtonBuffer | SetFloat (long index, float value) |
Write the given 4 byte float value at the given location in the buffer backing store without modifying the write offset of this buffer. | |
IProtonBuffer | SetShort (long index, short value) |
Write the given 2 byte short value at the given location in the buffer backing store without modifying the write offset of this buffer. | |
IProtonBuffer | SetInt (long index, int value) |
Write the given 4 byte int value at the given location in the buffer backing store without modifying the write offset of this buffer. | |
IProtonBuffer | SetLong (long index, long value) |
Write the given 8 byte long value at the given location in the buffer backing store without modifying the write offset of this buffer. | |
IProtonBuffer | SetUnsignedByte (long index, byte value) |
Write the given unsigned byte value at the given location in the buffer backing store without modifying the write offset of this buffer. | |
IProtonBuffer | SetUnsignedShort (long index, ushort value) |
Write the given 2 byte unsigned short value at the given location in the buffer backing store without modifying the write offset of this buffer. | |
IProtonBuffer | SetUnsignedInt (long index, uint value) |
Write the given 4 byte unsigned int value at the given location in the buffer backing store without modifying the write offset of this buffer. | |
IProtonBuffer | SetUnsignedLong (long index, ulong value) |
Write the given 8 byte unsigned long value at the given location in the buffer backing store without modifying the write offset of this buffer. | |
IProtonBuffer | WriteBoolean (bool value) |
Writes the given boolean value into this buffer as a single byte and increases the write offset. | |
IProtonBuffer | WriteByte (sbyte value) |
Writes the given byte value into this buffer and increases the write offset. | |
IProtonBuffer | WriteDouble (double value) |
Writes the given eight byte double value into this buffer and increases the write offset. | |
IProtonBuffer | WriteFloat (float value) |
Writes the given four byte float value into this buffer and increases the write offset. | |
IProtonBuffer | WriteShort (short value) |
Writes the given two byte short value into this buffer and increases the write offset. | |
IProtonBuffer | WriteInt (int value) |
Writes the given four byte int value into this buffer and increases the write offset. | |
IProtonBuffer | WriteLong (long value) |
Writes the given eight byte long value into this buffer and increases the write offset. | |
IProtonBuffer | WriteUnsignedByte (byte value) |
Writes the given unsigned byte value into this buffer and increases the write offset. | |
IProtonBuffer | WriteUnsignedShort (ushort value) |
Writes the given two byte unsigned short value into this buffer and increases the write offset. | |
IProtonBuffer | WriteUnsignedInt (uint value) |
Writes the given four byte unsigned int value into this buffer and increases the write offset. | |
IProtonBuffer | WriteUnsignedLong (ulong value) |
Writes the given eight byte unsigned long value into this buffer and increases the write offset. | |
IProtonBuffer | WriteBytes (byte[] source) |
Writes the contents of the given byte array into this buffer and advances the write offset by the number of bytes written. | |
IProtonBuffer | WriteBytes (byte[] source, long offset, long length) |
Writes the contents of the given byte array into this buffer and advances the write offset by the number of bytes written. | |
IProtonBuffer | WriteBytes (IProtonBuffer source) |
Transfers the bytes from the source buffer to this buffer starting at the current write offset and continues until the source buffer becomes unreadable. The write index of this buffer is increased by the number of bytes read from the source. The method also increases the read offset of the source by the same amount as was written. | |
string | ToString (Encoding encoding) |
Coverts the readable bytes in this buffer into a string value using the Encoding value provided. The underlying read and write offset values are not modified as a result of this operation. | |
override string | ToString () |
Properties | |
long | Capacity [get] |
Gets the current capacity of this buffer instance which is the total amount of bytes that could be written before additional buffer capacity would be needed to allow more buffer writes. The remaining amount of writable bytes at any given time is the buffer capacity minus the write offset. | |
bool | IsReadable [get] |
Returns true if the current read offset is less than the current write offset meaning there are bytes available for reading. | |
long | ReadableBytes [get] |
Returns the number of bytes that can currently be read from this buffer. | |
bool | IsWritable [get] |
Returns true if write offset is less than the current buffer capacity limit. | |
long | WritableBytes [get] |
Returns the number of bytes that can currently be written from this buffer. | |
long | ReadOffset [get, set] |
Gets or sets the current read offset in this buffer. If the read offset is set to a value larger than the current write offset an exception is thrown. | |
long | WriteOffset [get, set] |
Gets or sets the current write offset in this buffer. If the write offset is set to a value less than the current read offset or larger than the current buffer capacity an exception is thrown. | |
uint | ComponentCount [get] |
Returns the number of component buffers in this buffer. If this is not a composite buffer instance then the count will always be one. For a composite buffer this will be the count of the current number of component buffers contained within. | |
uint | ReadableComponentCount [get] |
Returns the number of component buffers in this buffer that are readable and would be provided to calls to the for each readable buffer API. If this is not a composite buffer instance then the count will be at most one. For a composite buffer this will be the count of the current number of component buffers contained within that are readable. | |
uint | WritableComponentCount [get] |
Returns the number of component buffers in this buffer that are writable and would be provided to calls to the for each writable buffer API. If this is not a composite buffer instance then the count will be at most one. For a composite buffer this will be the count of the current number of component buffers contained within that are writable. | |
![]() | |
![]() | |
byte | this[long i] [get, set] |
Indexed access to single unsigned byte values within the buffer which does not modify the read or write index value. The given index must adhere to the same constraints as the get byte and set byte level APIs in this buffer class. | |
Additional Inherited Members | |
![]() | |
static IProtonCompositeBuffer | Compose () |
Creates a new empty composite buffer instance that can be extended with additional buffers or used directly to write initial data at which point the provided allocator will be used to create a buffer instance. At any point should the composite buffer need to allocate a new buffer in order to accommodate buffer writes a default buffer allocator will be used. | |
static IProtonCompositeBuffer | Compose (long maxCapacity) |
Creates a new empty composite buffer instance that can be extended with additional buffers or used directly to write initial data at which point the provided allocator will be used to create a buffer instance. At any point should the composite buffer need to allocate a new buffer in order to accommodate buffer writes a default buffer allocator will be used. | |
static IProtonCompositeBuffer | Compose (IProtonBufferAllocator allocator) |
Creates a new empty composite buffer instance that can be extended with additional buffers or used directly to write initial data at which point the provided allocator will be used to create a buffer instance. At any point should the composite buffer need to allocate a new buffer in order to accommodate buffer writes the provided allocator will be used. | |
static IProtonCompositeBuffer | Compose (IProtonBufferAllocator allocator, IEnumerable< IProtonBuffer > buffers) |
Creates a new composite buffer that is composed of the given enumeration of buffers. | |
static IProtonCompositeBuffer | Compose (IProtonBufferAllocator allocator, params IProtonBuffer[] buffers) |
Creates a new composite buffer that is composed of the given enumeration of buffers. | |
static IProtonCompositeBuffer | Compose (params IProtonBuffer[] buffers) |
Creates a new composite buffer that is composed of the given enumeration of buffers. | |
static IProtonCompositeBuffer | Compose (IEnumerable< IProtonBuffer > buffers) |
Creates a new composite buffer that is composed of the given enumeration of buffers. | |
static bool | IsComposite (IProtonBuffer buffer) |
Simpler helper API for user to check if a given buffer is indeed a composite buffer instance. | |
A composite buffer contains zero, one or more proton buffer instances chained together to behave as if it were one single contiguous buffer which can be read or written to.
|
inline |
Appends the provided buffer to the end of the list of composite buffers already managed by this buffer. The given buffer becomes the property of the composite and the constraints placed upon buffers managed by the composite implementation are extended to this appended buffer.
extension | The buffer to append to the end of the composite set |
Implements Apache.Qpid.Proton.Buffer.IProtonCompositeBuffer.
|
inline |
Discards the read bytes, and moves the buffer contents to the beginning of the buffer.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Returns a copy of this buffer's readable bytes. Modifying the content of the returned buffer will not affect this buffers contents. The two buffers will maintain separate offsets. The returned copy has the write offset set to the length of the copy meaning that the entire copied region is read for reading.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Returns a copy of this buffer's readable bytes. Modifying the content of the returned buffer will not affect this buffers contents. The two buffers will maintain separate offsets. The amount and start of the data to be copied is provided by the index and length arguments. The returned copy has the write offset set to the length of the copy meaning that the entire copied region is read for reading.
index | The read offset where the copy begins |
length | The number of bytes to copy |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Copies the given number of bytes from this buffer into the target byte buffer starting the read from the given position in this buffer and the write to at the given position in the destination buffer. The length parameter controls how many bytes are copied to the destination. This method does not modify the read or write offset values in this buffer.
srcPos | Position in this buffer to begin the copy from |
dest | Destination buffer where the copied bytes are written |
destPos | Position in the destination where the write begins |
length | Number of byte to copy to the destination |
IndexOutOfRangeException | |
ArgumentOutOfRangeException | |
ArgumentNullException |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Copies the given number of bytes from this buffer into the target byte buffer starting the read from the given position in this buffer and the write to at the given position in the destination buffer. The length parameter controls how many bytes are copied to the destination. This method does not modify the read or write offset values in this buffer nor those of the destination buffer. The destination write index is an absolute index value unrelated to the write offset of the target.
srcPos | Position in this buffer to begin the copy from |
dest | Destination buffer where the copied bytes are written |
destPos | Position in the destination where the write begins |
length | Number of byte to copy to the destination |
IndexOutOfRangeException | |
ArgumentOutOfRangeException | |
ArgumentNullException |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Serves as a means of breaking up a composite buffer into an enumeration of the constituent buffers that is manages. Decomposing a buffer serves to consume the buffer leaving it an empty state, and the returned buffers are considered the property of the caller.
Implements Apache.Qpid.Proton.Buffer.IProtonCompositeBuffer.
|
inline |
Requests that the buffer ensure that there is enough allocated internal capacity such that the given number of bytes can be written without requiring additional allocations and that this amount does not exceed any total capacity restrictions for this buffer.
amount | the number of bytes that should be available fro writing |
ArgumentOutOfRangeException | If the requested amount exceeds capacity restrictions |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Fill the buffer with the given byte value. This method does not respect the read offset nor the write offset but instead fills the entire backing buffer memory with the given value.
value | The byte value to assign each byte in the backing store |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Invokes the provided delegate for each readable component in this buffer and increments the provided index value for each invocation. The total number of buffers processed is returned to the caller. The delegate can stop processing at any time by returning false in which case this method will stop and return a negative value to indicate that processing stopped early and did not traverse all available components.
index | a starting index which is increment after each call |
processor | The delegate that will receive the components |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Invokes the provided delegate for each writable component in this buffer and increments the provided index value for each invocation. The total number of buffers processed is returned to the caller. The delegate can stop processing at any time by returning false in which case this method will stop and return a negative value to indicate that processing stopped early and did not traverse all available components.
index | a starting index which is increment after each call |
processor | The delegate that will receive the components |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Reads a single byte from the given index and returns a boolean value indicating if the byte was zero (false) or greater than zero (true).
index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads a single signed byte from the given index and returns it.
index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads a single 2 byte char from the given index and returns it.
index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads a single 8 byte double from the given index and returns it.
index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads a single 4 byte float from the given index and returns it.
index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads a single 4 byte int from the given index and returns it.
index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads a single 8 byte long from the given index and returns it.
index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads a single 2 byte short from the given index and returns it.
index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads a single unsigned byte from the given index and returns it.
index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads a single 4 byte unsigned int from the given index and returns it.
index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads a single 8 byte unsigned long from the given index and returns it.
index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads a single 2 byte unsigned short from the given index and returns it.
index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads the next byte from the buffer and returns the boolean value.
IndexOutOfRangeException | If there are not enough readable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Read a signed byte from the buffer and advance the read offset.
IndexOutOfRangeException | If the buffer has no more readable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads the two bytes from the buffer and returns the char value.
IndexOutOfRangeException | If there are not enough readable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads the next eight bytes from the buffer and returns the double value.
IndexOutOfRangeException | If there are not enough readable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads the next four bytes from the buffer and returns the float value.
IndexOutOfRangeException | If there are not enough readable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads the next four bytes from the buffer and returns the int value.
IndexOutOfRangeException | If there are not enough readable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads the next eight bytes from the buffer and returns the long value.
IndexOutOfRangeException | If there are not enough readable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads the next two bytes from the buffer and returns the short value.
IndexOutOfRangeException | If there are not enough readable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Splits the buffer into two distinct buffers at the given index plus the current read offset. The returned buffer will retain the read offset and write offset of this buffer but will be truncated to match the capacity provided by the split index, which implies that they might both be set to the capacity if they were previously set beyond the split index. The returned buffer will set its read and write offsets to zero if they fell prior to the given index otherwise they will be truncated to match the new buffer capacity. Split buffers support the standard buffer operations including resizing to ensure writable regions which implies that a buffer resize on either will cause them to no longer reference the same underlying memory region. If buffer implementations implement pooling then they must ensure proper release of shared buffer regions once both buffers no longer reference them.
offset | The offset to split beyond the current read offset |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Read a unsigned byte from the buffer and advance the read offset.
IndexOutOfRangeException | If the buffer has no more readable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads the next four bytes from the buffer and returns the unsigned int value.
IndexOutOfRangeException | If there are not enough readable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads the next eight bytes from the buffer and returns the unsigned long value.
IndexOutOfRangeException | If there are not enough readable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reads the next two bytes from the buffer and returns the unsigned short value.
IndexOutOfRangeException | If there are not enough readable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Reclaims read buffer space and returns it to the operating system or other pooling mechanisms if those are in place, then compacts the remaining buffer contents. For a non-composite buffer this operation could consist of allocating a smaller buffer to house any remaining unread bytes and freeing the larger backing buffer in some cases or it may result in a no-op depending on the buffer implementation. For the composite buffer case this operation provides an API which allows for fully read buffer constituents to be released and returned to a memory pool or back to the O/S.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Resets the read and write offset values to zero.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Write the given boolean value at the given location in the buffer backing store without modifying the write offset of this buffer.
index | The index in the buffer where the write should occur |
value | The value to be written at the specified index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Write the given byte value at the given location in the buffer backing store without modifying the write offset of this buffer.
index | The index in the buffer where the write should occur |
value | The value to be written at the specified index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Write the given 2 byte char value at the given location in the buffer backing store without modifying the write offset of this buffer.
index | The index in the buffer where the write should occur |
value | The value to be written at the specified index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Write the given 8 byte double value at the given location in the buffer backing store without modifying the write offset of this buffer.
index | The index in the buffer where the write should occur |
value | The value to be written at the specified index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Write the given 4 byte float value at the given location in the buffer backing store without modifying the write offset of this buffer.
index | The index in the buffer where the write should occur |
value | The value to be written at the specified index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Write the given 4 byte int value at the given location in the buffer backing store without modifying the write offset of this buffer.
index | The index in the buffer where the write should occur |
value | The value to be written at the specified index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Write the given 8 byte long value at the given location in the buffer backing store without modifying the write offset of this buffer.
index | The index in the buffer where the write should occur |
value | The value to be written at the specified index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Write the given 2 byte short value at the given location in the buffer backing store without modifying the write offset of this buffer.
index | The index in the buffer where the write should occur |
value | The value to be written at the specified index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Write the given unsigned byte value at the given location in the buffer backing store without modifying the write offset of this buffer.
index | The index in the buffer where the write should occur |
value | The value to be written at the specified index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Write the given 4 byte unsigned int value at the given location in the buffer backing store without modifying the write offset of this buffer.
index | The index in the buffer where the write should occur |
value | The value to be written at the specified index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Write the given 8 byte unsigned long value at the given location in the buffer backing store without modifying the write offset of this buffer.
index | The index in the buffer where the write should occur |
value | The value to be written at the specified index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Write the given 2 byte unsigned short value at the given location in the buffer backing store without modifying the write offset of this buffer.
index | The index in the buffer where the write should occur |
value | The value to be written at the specified index |
IndexOutOfRangeException | If the index is negative or larger than buffer capacity |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Advance the buffer read offset by the specified amount effectively skipping that number of bytes from being read.
amount | The number of bytes to skip |
IndexOutOfRangeException | If the amount is negative or larger than readable size |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Splits the buffer into two buffers at the write offset. The resulting buffer will comprise the read and readable portions of this buffer with the write offset and capacity set to the current write offset. This buffer will lose access to the split region and its read offset will be set to the current write offset. This buffer will also have its capacity reduced by the number of bytes in the returned buffer (i.e. the current number of read and readable bytes). Split buffers support the standard buffer operations including resizing to ensure writable regions which implies that a buffer resize on either will cause them to no longer reference the same underlying memory region. If buffer implementations implement pooling then they must ensure proper release of shared buffer regions once both buffers no longer reference them.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Splits the buffer into two distinct buffers at the given index. The returned buffer will retain the read offset and write offset of this buffer but will be truncated to match the capacity provided by the split index, which implies that they might both be set to the capacity if they were previously set beyond the split index. The returned buffer will set its read and write offsets to zero if they fell prior to the given index otherwise they will be truncated to match the new buffer capacity. Split buffers support the standard buffer operations including resizing to ensure writable regions which implies that a buffer resize on either will cause them to no longer reference the same underlying memory region. If buffer implementations implement pooling then they must ensure proper release of shared buffer regions once both buffers no longer reference them.
index | The index in this buffer where the split occurs |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Coverts the readable bytes in this buffer into a string value using the Encoding value provided. The underlying read and write offset values are not modified as a result of this operation.
encoding | The encoding to use to convert the readable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Writes the given boolean value into this buffer as a single byte and increases the write offset.
value | The value to write into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Writes the given byte value into this buffer and increases the write offset.
value | The value to write into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Writes the contents of the given byte array into this buffer and advances the write offset by the number of bytes written.
source | The byte buffer to be written into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Writes the contents of the given byte array into this buffer and advances the write offset by the number of bytes written.
source | The byte buffer to be written into this buffer |
offset | The offset into the source buffer to start the write |
length | The number of bytes from the source buffer to write into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Transfers the bytes from the source buffer to this buffer starting at the current write offset and continues until the source buffer becomes unreadable. The write index of this buffer is increased by the number of bytes read from the source. The method also increases the read offset of the source by the same amount as was written.
source | The byte buffer to be written into this buffer |
length | The number of bytes to write into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Writes the given eight byte double value into this buffer and increases the write offset.
value | The value to write into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Writes the given four byte float value into this buffer and increases the write offset.
value | The value to write into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Writes the given four byte int value into this buffer and increases the write offset.
value | The value to write into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Writes the given eight byte long value into this buffer and increases the write offset.
value | The value to write into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Writes the given two byte short value into this buffer and increases the write offset.
value | The value to write into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Splits the buffer into two distinct buffers at the given index plus the current write offset. The returned buffer will retain the read offset and write offset of this buffer but will be truncated to match the capacity provided by the split index, which implies that they might both be set to the capacity if they were previously set to the split index. The returned buffer will set its read and write offsets to zero if they fell prior to the given index otherwise they will be truncated to match the new buffer capacity. Split buffers support the standard buffer operations including resizing to ensure writable regions which implies that a buffer resize on either will cause them to no longer reference the same underlying memory region. If buffer implementations implement pooling then they must ensure proper release of shared buffer regions once both buffers no longer reference them.
offset | The offset to split beyond the current write offset |
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
inline |
Writes the given unsigned byte value into this buffer and increases the write offset.
value | The value to write into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Writes the given four byte unsigned int value into this buffer and increases the write offset.
value | The value to write into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Writes the given eight byte unsigned long value into this buffer and increases the write offset.
value | The value to write into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
inline |
Writes the given two byte unsigned short value into this buffer and increases the write offset.
value | The value to write into this buffer |
IndexOutOfRangeException | If there are not enough writable bytes |
Implements Apache.Qpid.Proton.Buffer.IProtonBufferAccessors.
|
get |
Gets the current capacity of this buffer instance which is the total amount of bytes that could be written before additional buffer capacity would be needed to allow more buffer writes. The remaining amount of writable bytes at any given time is the buffer capacity minus the write offset.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
get |
Returns the number of component buffers in this buffer. If this is not a composite buffer instance then the count will always be one. For a composite buffer this will be the count of the current number of component buffers contained within.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
get |
Returns true if the current read offset is less than the current write offset meaning there are bytes available for reading.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
get |
Returns true if write offset is less than the current buffer capacity limit.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
get |
Returns the number of bytes that can currently be read from this buffer.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
get |
Returns the number of component buffers in this buffer that are readable and would be provided to calls to the for each readable buffer API. If this is not a composite buffer instance then the count will be at most one. For a composite buffer this will be the count of the current number of component buffers contained within that are readable.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
getset |
Gets or sets the current read offset in this buffer. If the read offset is set to a value larger than the current write offset an exception is thrown.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
get |
Returns the number of bytes that can currently be written from this buffer.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
get |
Returns the number of component buffers in this buffer that are writable and would be provided to calls to the for each writable buffer API. If this is not a composite buffer instance then the count will be at most one. For a composite buffer this will be the count of the current number of component buffers contained within that are writable.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.
|
getset |
Gets or sets the current write offset in this buffer. If the write offset is set to a value less than the current read offset or larger than the current buffer capacity an exception is thrown.
Implements Apache.Qpid.Proton.Buffer.IProtonBuffer.