Interface IBufferAllocator
Interface of a buffer allocator, customizing the allocation of the memory used by ImageBuffer objects.
Namespace: ic4
Assembly: ic4dotnet.dll
Syntax
public interface IBufferAllocator
Remarks
Objects of classes implementing this interface can be passed into multiple library functions:
- When creating a BufferPool:
- When creating a SnapSink
- When creating a QueueSink
Methods
Allocate(ulong, ulong, out IntPtr, out object)
Allocates the requested number of bytes of memory for an image buffer.
Declaration
bool Allocate(ulong bufferSize, ulong alignment, out IntPtr buffer, out object tag)
Parameters
Type | Name | Description |
---|---|---|
ulong | bufferSize | The size of the memory buffer |
ulong | alignment | Requested alignment for the allocation. |
IntPtr | buffer | Output parameter receiving the memory address, filled by the function. The memory address must be evenly divisible by alignment. |
object | tag | Output parameter receiving the reference to an object that is stored as part of the image buffer and passed to Free(IntPtr, object) when the memory is to be released. |
Returns
Type | Description |
---|---|
bool |
|
Free(IntPtr, object)
Frees a memory block that was previously allocated by a successful call of Allocate(ulong, ulong, out IntPtr, out object).
Declaration
void Free(IntPtr buffer, object tag)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | buffer | The memory address of the allocated buffer |
object | tag | The object that was returned through the |