Table of Contents

Class Buffer

Espace de noms
easyar

Buffer stocke un tableau d'octets brut, qui peut être utilisé pour accéder aux données d'image.
Dans l'API Java, le buffer peut être obtenu à partir de Image puis les données sont copiées dans un tableau d'octets Java.
Dans toutes les versions d'EasyAR Sense, vous pouvez accéder aux données d'image. Voir Image.

Buffer

Méthodes

wrap

Encapsuler un bloc de mémoire brute de longueur spécifiée. Lorsque le Buffer est entièrement libéré, le callback deleter est appelé pour exécuter la destruction personnalisée de la mémoire par l'utilisateur. Le deleter doit être thread-safe.

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)

Paramètres

Nom Type Description
ptr IntPtr
size Int32
deleter Action

Retours

Type Description
Buffer

create

Créer un Buffer de longueur en octets spécifiée.

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)

Paramètres

Nom Type Description
size Int32

Retours

Type Description
Buffer

data

Retourner l'adresse mémoire d'origine.

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()

Retours

Type Description
IntPtr

size

Longueur en octets du 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()

Retours

Type Description
Int32

memoryCopy

Copier la mémoire brute. Principalement utilisé dans les langages ou environnements avec des opérations mémoire imparfaites.

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)

Paramètres

Nom Type Description
src IntPtr
dest IntPtr
length Int32

Retours

Type Description
Void

tryCopyFrom

Tente de copier des données à partir d'une adresse mémoire brute dans un Buffer. Retourne true si la copie a réussi, sinon false. Les raisons de l'échec incluent : la plage de données source ou la plage de données cible est hors limites.

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)

Paramètres

Nom Type Description
src IntPtr
srcIndex Int32
index Int32
length Int32

Retours

Type Description
Boolean

tryCopyTo

Tenter de copier des données depuis le Buffer vers l'adresse mémoire brute. Si la copie réussit, alors retourne true, sinon retourne false. Les raisons de l'échec sont : la plage de données source ou la plage de données cible dépasse la plage disponible.

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)

Paramètres

Nom Type Description
index Int32
dest IntPtr
destIndex Int32
length Int32

Retours

Type Description
Boolean

partition

Créer un sous-tampon qui référence le tampon d'origine. Un tampon ne sera libéré que lorsque tous ses sous-tampons sont libérés.

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)

Paramètres

Nom Type Description
index Int32
length Int32

Retours

Type Description
Buffer

wrapByteArray

Encapsuler un tableau d'octets.

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

Paramètres

Nom Type Description
bytes

Retours

Type Description
Buffer

wrapByteArray

Encapsuler un tableau d'octets. La position de départ et la longueur peuvent être spécifiées. Il est possible de définir si le Buffer est en lecture seule ou en lecture-écriture (les Buffers en lecture seule peuvent être libérés plus rapidement). Un rappel deleter peut être spécifié ; lorsque le Buffer est entièrement libéré, le rappel deleter sera invoqué pour exécuter des actions personnalisées de destruction de mémoire. Le deleter doit être thread-safe.

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

Paramètres

Nom Type Description
bytes
index Int32
length Int32
readOnly Boolean
deleter Action

Retours

Type Description
Buffer

wrapByteArray

Encapsuler un tableau d'octets. Permet de spécifier la position de départ et la longueur.

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

Paramètres

Nom Type Description
bytes
index Int32
length Int32

Retours

Type Description
Buffer

wrapByteArray

Encapsuler un tableau d'octets. Permet de spécifier la position de départ et la longueur. Permet de spécifier un rappel deleter qui sera invoqué lorsque le Buffer est entièrement libéré, pour exécuter un comportement personnalisé de destruction de mémoire. Le deleter doit être thread-safe.

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

Paramètres

Nom Type Description
bytes
index Int32
length Int32
deleter Action

Retours

Type Description
Buffer

wrapBuffer

encapsuler un java.nio.Buffer.

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

Paramètres

Nom Type Description
directBuffer

Retours

Type Description
Buffer

wrapBuffer

Encapsule un java.nio.Buffer. Permet de spécifier un rappel deleter qui sera invoqué lorsque le Buffer est complètement libéré, exécutant ainsi le comportement de destruction de mémoire personnalisé par l'utilisateur. Le deleter doit être thread-safe.

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

Paramètres

Nom Type Description
directBuffer
deleter Action

Retours

Type Description
Buffer

copyFromByteArray

Copier des données d'un tableau d'octets vers un Buffer. Si la copie échoue, une exception est lancée. Les raisons de l'échec incluent : la plage source ou la plage cible dépasse la plage disponible.

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

Paramètres

Nom Type Description
src

copyFromByteArray

Copier des données d'un tableau d'octets vers un Buffer. Si la copie échoue, une exception est lancée. Les raisons de l'échec incluent : la plage source ou la plage cible dépasse la plage disponible.

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)

Paramètres

Nom Type Description
src
srcIndex Int32
index Int32
length Int32

copyToByteArray

Copier les données du tampon vers un tableau de bytes. Si la copie échoue, lancer une exception. Les raisons de l'échec incluent : la plage de données source ou la plage de données cible dépasse la plage disponible.

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

Paramètres

Nom Type Description
dest

copyToByteArray

Copier les données du tampon vers un tableau de bytes. Si la copie échoue, lancer une exception. Les raisons de l'échec incluent : la plage de données source ou la plage de données cible dépasse la plage disponible.

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)

Paramètres

Nom Type Description
index Int32
dest
destIndex Int32
length Int32

tryCopyFromByteArray

Copier des données d'un tableau d'octets vers un Buffer. Si la copie réussit, retourne true, sinon retourne false. Les raisons de l'échec sont : la plage des données source ou la plage des données cible dépasse la plage disponible.

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

Paramètres

Nom Type Description
src

Retours

Type Description
Boolean

tryCopyFromByteArray

Copier des données d'un tableau d'octets vers un Buffer. Si la copie réussit, retourne true, sinon retourne false. Les raisons de l'échec sont : la plage des données source ou la plage des données cible dépasse la plage disponible.

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

Paramètres

Nom Type Description
src
srcIndex Int32
index Int32
length Int32

Retours

Type Description
Boolean

tryCopyToByteArray

Copier les données du Buffer vers le tableau d'octets. Si la copie réussit, retourne true, sinon retourne false. Les raisons d'échec incluent : la plage de données source ou la plage de données cible dépasse la plage disponible.

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

Paramètres

Nom Type Description
dest

Retours

Type Description
Boolean

tryCopyToByteArray

Copier les données du Buffer vers le tableau d'octets. Si la copie réussit, retourne true, sinon retourne false. Les raisons d'échec incluent : la plage de données source ou la plage de données cible dépasse la plage disponible.

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

Paramètres

Nom Type Description
index Int32
dest
destIndex Int32
length Int32

Retours

Type Description
Boolean