Table of Contents

Class Buffer

名前空間
easyar

Bufferは生のバイト配列を格納し、画像データにアクセスするために使用できます。 Java APIでは、Imageからbufferを取得し、データをJavaバイト配列にコピーできます。 EasyAR Senseの全バージョンで画像データにアクセス可能です。参照: Image

Buffer

メソッド

wrap

指定長の生メモリブロックをラップします。Bufferが完全解放されるとき、デリータコールバックが呼び出され、ユーザー定義のメモリ破棄処理が実行されます。デリータはスレッドセーフである必要があります。

void easyar_Buffer_wrap(void * ptr, int size, easyar_FunctorOfVoid deleter, easyar_Buffer * * Return)
static std::shared_ptr<Buffer> wrap(void * ptr, int size, std::function<void()> deleter)
public static @Nonnull Buffer wrap(long ptr, int size, @Nonnull FunctorOfVoid deleter)
companion object fun wrap(ptr: Long, size: Int, deleter: FunctorOfVoid): Buffer
+ (easyar_Buffer *)wrap:(void *)ptr size:(int)size deleter:(void (^)())deleter
public static func wrap(_ ptr: OpaquePointer?, _ size: Int32, _ deleter: @escaping () -> Void) -> Buffer
public static Buffer wrap(IntPtr ptr, int size, Action deleter)

パラメーター

名前 説明
ptr IntPtr
size Int32
deleter Action

戻り値

説明
Buffer

create

指定バイト長のBufferを作成します。

void easyar_Buffer_create(int size, easyar_Buffer * * Return)
static std::shared_ptr<Buffer> create(int size)
public static @Nonnull Buffer create(int size)
companion object fun create(size: Int): Buffer
+ (easyar_Buffer *)create:(int)size
public static func create(_ size: Int32) -> Buffer
public static Buffer create(int size)

パラメーター

名前 説明
size Int32

戻り値

説明
Buffer

data

生メモリアドレスを返します。

void * easyar_Buffer_data(const easyar_Buffer * This)
void * data()
public long data()
fun data(): Long
- (void *)data
public func data() -> OpaquePointer?
public virtual IntPtr data()

戻り値

説明
IntPtr

size

Bufferのバイト長。

int easyar_Buffer_size(const easyar_Buffer * This)
int size()
public int size()
fun size(): Int
- (int)size
public func size() -> Int32
public virtual int size()

戻り値

説明
Int32

memoryCopy

生メモリをコピーします。主にメモリ操作が不十分な言語や環境で使用します。

void easyar_Buffer_memoryCopy(void * src, void * dest, int length)
static void memoryCopy(void * src, void * dest, int length)
public static void memoryCopy(long src, long dest, int length)
companion object fun memoryCopy(src: Long, dest: Long, length: Int): Unit
+ (void)memoryCopy:(void *)src dest:(void *)dest length:(int)length
public static func memoryCopy(_ src: OpaquePointer?, _ dest: OpaquePointer?, _ length: Int32) -> Void
public static void memoryCopy(IntPtr src, IntPtr dest, int length)

パラメーター

名前 説明
src IntPtr
dest IntPtr
length Int32

戻り値

説明
Void

tryCopyFrom

生メモリアドレスからBufferへのデータコピーを試みます。成功時はtrue、失敗時はfalseを返します。失敗原因: ソース/ターゲットデータ範囲が利用可能範囲を超えている。

bool easyar_Buffer_tryCopyFrom(easyar_Buffer * This, void * src, int srcIndex, int index, int length)
bool tryCopyFrom(void * src, int srcIndex, int index, int length)
public boolean tryCopyFrom(long src, int srcIndex, int index, int length)
fun tryCopyFrom(src: Long, srcIndex: Int, index: Int, length: Int): Boolean
- (bool)tryCopyFrom:(void *)src srcIndex:(int)srcIndex index:(int)index length:(int)length
public func tryCopyFrom(_ src: OpaquePointer?, _ srcIndex: Int32, _ index: Int32, _ length: Int32) -> Bool
public virtual bool tryCopyFrom(IntPtr src, int srcIndex, int index, int length)

パラメーター

名前 説明
src IntPtr
srcIndex Int32
index Int32
length Int32

戻り値

説明
Boolean

tryCopyTo

Bufferから生メモリアドレスへのデータコピーを試みます。成功時はtrue、失敗時はfalseを返します。失敗原因: ソース/ターゲットデータ範囲が利用可能範囲を超えている。

bool easyar_Buffer_tryCopyTo(easyar_Buffer * This, int index, void * dest, int destIndex, int length)
bool tryCopyTo(int index, void * dest, int destIndex, int length)
public boolean tryCopyTo(int index, long dest, int destIndex, int length)
fun tryCopyTo(index: Int, dest: Long, destIndex: Int, length: Int): Boolean
- (bool)tryCopyTo:(int)index dest:(void *)dest destIndex:(int)destIndex length:(int)length
public func tryCopyTo(_ index: Int32, _ dest: OpaquePointer?, _ destIndex: Int32, _ length: Int32) -> Bool
public virtual bool tryCopyTo(int index, IntPtr dest, int destIndex, int length)

パラメーター

名前 説明
index Int32
dest IntPtr
destIndex Int32
length Int32

戻り値

説明
Boolean

partition

元Bufferを参照するサブBufferを作成します。Bufferは全てのサブBuffer解放後に解放されます。

void easyar_Buffer_partition(easyar_Buffer * This, int index, int length, easyar_Buffer * * Return)
std::shared_ptr<Buffer> partition(int index, int length)
public @Nonnull Buffer partition(int index, int length)
fun partition(index: Int, length: Int): Buffer
- (easyar_Buffer *)partition:(int)index length:(int)length
public func partition(_ index: Int32, _ length: Int32) -> Buffer
public virtual Buffer partition(int index, int length)

パラメーター

名前 説明
index Int32
length Int32

戻り値

説明
Buffer

wrapByteArray

バイト配列をラップします。

public static @Nonnull Buffer wrapByteArray(byte @Nonnull[] bytes)
companion object fun wrapByteArray(bytes: Array<Byte>): Buffer
public static Buffer wrapByteArray(byte[] bytes)

パラメーター

名前 説明
bytes

戻り値

説明
Buffer

wrapByteArray

バイト配列をラップします。開始位置/長さの指定、読み取り専用/読み書き可能の設定(読み取り専用Bufferは解放が高速)、デリータコールバックの指定が可能です。Buffer完全解放時にデリータが呼び出され、ユーザー定義メモリ破棄処理を実行します。デリータはスレッドセーフ必須。

public static @Nonnull Buffer wrapByteArray(byte @Nonnull[] bytes, int index, int length, boolean readOnly, @Nonnull FunctorOfVoid deleter)
companion object fun wrapByteArray(bytes: Array<Byte>, index: Int, length: Int, readOnly: Boolean, deleter: FunctorOfVoid): Buffer

パラメーター

名前 説明
bytes
index Int32
length Int32
readOnly Boolean
deleter Action

戻り値

説明
Buffer

wrapByteArray

バイト配列をラップします。開始位置と長さを指定可能。

public static Buffer wrapByteArray(byte[] bytes, int index, int length)

パラメーター

名前 説明
bytes
index Int32
length Int32

戻り値

説明
Buffer

wrapByteArray

バイト配列をラップします。開始位置/長さの指定と、デリータコールバックの指定が可能です。Buffer完全解放時にスレッドセーフなデリータが呼び出されます。

public static Buffer wrapByteArray(byte[] bytes, int index, int length, Action deleter)

パラメーター

名前 説明
bytes
index Int32
length Int32
deleter Action

戻り値

説明
Buffer

wrapBuffer

java.nio.Bufferをラップします。

public static @Nonnull Buffer wrapBuffer(java.nio.@Nonnull Buffer directBuffer)
companion object fun wrapBuffer(directBuffer: java.nio.Buffer): Buffer

パラメーター

名前 説明
directBuffer

戻り値

説明
Buffer

wrapBuffer

java.nio.Bufferをラップします。デリータコールバックを指定可能で、Buffer完全解放時にスレッドセーフなデリータが呼び出されます。

public static @Nonnull Buffer wrapBuffer(java.nio.@Nonnull Buffer directBuffer, @Nonnull FunctorOfVoid deleter)
companion object fun wrapBuffer(directBuffer: java.nio.Buffer, deleter: Action): Buffer

パラメーター

名前 説明
directBuffer
deleter Action

戻り値

説明
Buffer

copyFromByteArray

バイト配列からBufferへのデータコピーを実行します。失敗時は例外をスローします。失敗原因: ソース/ターゲットデータ範囲が利用可能範囲を超えている。

public void copyFromByteArray(byte @Nonnull[] src)
fun copyFromByteArray(src: Array<Byte>): Unit
public void copyFromByteArray(byte[] src)

パラメーター

名前 説明
src

copyFromByteArray

バイト配列からBufferへのデータコピーを実行します。失敗時は例外をスローします。失敗原因: ソース/ターゲットデータ範囲が利用可能範囲を超えている。

public void copyFromByteArray(byte @Nonnull[] src, int srcIndex, int index, int length)
fun copyFromByteArray(src: Array<Byte>, srcIndex: Int, index: Int, length: Int): Unit
public void copyFromByteArray(byte[] src, int srcIndex, int index, int length)

パラメーター

名前 説明
src
srcIndex Int32
index Int32
length Int32

copyToByteArray

Bufferからバイト配列へのデータコピーを実行します。失敗時は例外をスローします。失敗原因: ソース/ターゲットデータ範囲が利用可能範囲を超えている。

public void copyToByteArray(byte @Nonnull[] dest)
fun copyToByteArray(dest: Array<Byte>): Unit
public void copyToByteArray(byte[] dest)

パラメーター

名前 説明
dest

copyToByteArray

Bufferからバイト配列へのデータコピーを実行します。失敗時は例外をスローします。失敗原因: ソース/ターゲットデータ範囲が利用可能範囲を超えている。

public void copyToByteArray(int index, byte @Nonnull[] dest, int destIndex, int length)
fun copyToByteArray(index: Int, dest: Array<Byte>, destIndex: Int, length: Int): Unit
public void copyToByteArray(int index, byte[] dest, int destIndex, int length)

パラメーター

名前 説明
index Int32
dest
destIndex Int32
length Int32

tryCopyFromByteArray

バイト配列からBufferへのデータコピーを試みます。成功時はtrue、失敗時はfalseを返します。失敗原因: ソース/ターゲットデータ範囲が利用可能範囲を超えている。

public func tryCopyFromByteArray(_ src: [UInt8]) -> Bool

パラメーター

名前 説明
src

戻り値

説明
Boolean

tryCopyFromByteArray

バイト配列からBufferへのデータコピーを試みます。成功時はtrue、失敗時はfalseを返します。失敗原因: ソース/ターゲットデータ範囲が利用可能範囲を超えている。

public func tryCopyFromByteArray(_ src: [UInt8], _ srcIndex: Int32, _ index: Int32, _ length: Int32) -> Bool

パラメーター

名前 説明
src
srcIndex Int32
index Int32
length Int32

戻り値

説明
Boolean

tryCopyToByteArray

Bufferからバイト配列へのデータコピーを試みます。成功時はtrue、失敗時はfalseを返します。失敗原因: ソース/ターゲットデータ範囲が利用可能範囲を超えている。

public func tryCopyToByteArray(_ dest: [UInt8]) -> Bool

パラメーター

名前 説明
dest

戻り値

説明
Boolean

tryCopyToByteArray

Bufferからバイト配列へのデータコピーを試みます。成功時はtrue、失敗時はfalseを返します。失敗原因: ソース/ターゲットデータ範囲が利用可能範囲を超えている。

public func tryCopyToByteArray(_ index: Int32, _ dest: [UInt8], _ destIndex: Int32, _ length: Int32) -> Bool

パラメーター

名前 説明
index Int32
dest
destIndex Int32
length Int32

戻り値

説明
Boolean