BufferPool Class

Description

BufferPool 实现了一个内存池,可用于自定义摄像头接入等需要反复分配相同大小内存的功能,降低内存分配耗时。

Constructor

block_size为每个 Buffer 的字节大小。

capacity为最大 Buffer 数量。

C

void easyar_BufferPool__ctor(int block_size, int capacity, easyar_BufferPool * * Return)

C++

BufferPool(int block_size, int capacity)

Java

public BufferPool(int block_size, int capacity)

Kotlin

constructor(block_size: Int, capacity: Int)

Objective-C

+ (easyar_BufferPool *) create:(int)block_size capacity:(int)capacity

Swift

public convenience init(_ block_size: Int32, _ capacity: Int32)

C#

public BufferPool(int block_size, int capacity)

block_size

每个 Buffer 的字节大小。

C

int easyar_BufferPool_block_size(const easyar_BufferPool * This)

C++

int block_size()

Java

public int block_size()

Kotlin

fun block_size(): Int

Objective-C

- (int)block_size

Swift

public func block_size() -> Int32

C#

public virtual int block_size()

capacity

最大 Buffer 数量。

C

int easyar_BufferPool_capacity(const easyar_BufferPool * This)

C++

int capacity()

Java

public int capacity()

Kotlin

fun capacity(): Int

Objective-C

- (int)capacity

Swift

public func capacity() -> Int32

C#

public virtual int capacity()

size

当前外部获得的 Buffer 数量。

C

int easyar_BufferPool_size(const easyar_BufferPool * This)

C++

int size()

Java

public int size()

Kotlin

fun size(): Int

Objective-C

- (int)size

Swift

public func size() -> Int32

C#

public virtual int size()

tryAcquire

尝试获得内存块。如果当前外部获得的 Buffer 数量没有达到最大 Buffer 数量,则取出或分配一个新的 Buffer ,否则返回空。

C

void easyar_BufferPool_tryAcquire(easyar_BufferPool * This, easyar_OptionalOfBuffer * Return)

C++

std::optional<std::shared_ptr<Buffer>> tryAcquire()

Java

public @Nullable Buffer tryAcquire()

Kotlin

fun tryAcquire(): Buffer?

Objective-C

- (easyar_Buffer *)tryAcquire

Swift

public func tryAcquire() -> Buffer?

C#

public virtual Optional<Buffer> tryAcquire()