ffi_proxy library

Spine Runtimes License Agreement Last updated July 28, 2023. Replaces all prior versions.

Copyright (c) 2013-2023, Esoteric Software LLC

Integration of the Spine Runtimes into software or otherwise creating derivative works of the Spine Runtimes is permitted under the terms and conditions of Section 2 of the Spine Editor License Agreement: http://esotericsoftware.com/spine-editor-license

Otherwise, it is permitted to integrate the Spine Runtimes into software or otherwise create derivative works of the Spine Runtimes (collectively, "Products"), provided that each user of the Products must obtain their own Spine Editor license and redistribution of the Products in any form must include this license and copyright notice.

THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Classes

Abi
An application binary interface (ABI).
AbiSpecificInteger
The supertype of all Abi-specific integer types.
AbiSpecificIntegerMapping
Mapping for a subtype of AbiSpecificInteger.
Allocator
Manages memory on the native heap.
Arena
An Allocator which frees all allocations at the same time.
Array<T extends NativeType>
A fixed-sized array of Ts.
Bool
Represents a native bool in C.
Char
The C char type.
Dart_CObject
Opaque, not exposing it's members.
DartRepresentationOf
DefaultAsset
Annotation specifying the default asset ID for the current library.
Double
Represents a native 64 bit double in C.
DynamicLibrary
A dynamically loaded native library.
Finalizable
Marker interface for objects which should not be finalized too soon.
Float
Represents a native 32 bit float in C.
Handle
Represents Dart_Handle from dart_api.h in C.
Int
The C int type.
Int16
Represents a native signed 16 bit integer in C.
Int32
Represents a native signed 32 bit integer in C.
Int64
Represents a native signed 64 bit integer in C.
Int8
Represents a native signed 8 bit integer in C.
IntPtr
The C intptr_t type.
Long
The C long int, aka. long, type.
LongLong
The C long long type.
Native<T>
Annotation binding an external declaration to its native implementation.
NativeApi
Utilities for accessing the Dart VM API from Dart code or from C code via dart_api_dl.h.
NativeCallable<T extends Function>
A native callable which listens for calls to a native function.
NativeFinalizer
A native finalizer which can be attached to Dart objects.
NativeFunction<T extends Function>
Represents a function type in C.
NativeType
NativeType's subtypes represent a native type in C.
Opaque
Opaque's subtypes represent opaque types in C.
Packed
Annotation to specify on Struct subtypes to indicate that its members need to be packed.
Pointer<T extends NativeType>
Represents a pointer into the native C memory. Cannot be extended.
Short
The C short type.
SignedChar
The C signed char type.
Size
The C size_t type.
SizedNativeType
A NativeType with a known size.
Struct
The supertype of all FFI struct types.
Uint16
Represents a native unsigned 16 bit integer in C.
Uint32
Represents a native unsigned 32 bit integer in C.
Uint64
Represents a native unsigned 64 bit integer in C.
Uint8
Represents a native unsigned 8 bit integer in C.
UintPtr
The C uintptr_t type.
Union
The supertype of all FFI union types.
UnsignedChar
The C unsigned char type.
UnsignedInt
The C unsigned int type.
UnsignedLong
The C unsigned long int, aka. unsigned long, type.
UnsignedLongLong
The C unsigned long long type.
UnsignedShort
The C unsigned short type.
Utf16
The contents of a native zero-terminated array of UTF-16 code units.
Utf8
The contents of a native zero-terminated array of UTF-8 code units.
VarArgs<T extends Record>
The types of variadic arguments passed in C.
Void
Represents a void type in C.
WChar
The C wchar_t type.

Extensions

AbiSpecificIntegerArray on Array<T>
Bounds checking indexing methods on Arrays of AbiSpecificInteger.
AbiSpecificIntegerPointer on Pointer<T>
Extension on Pointer specialized for the type argument AbiSpecificInteger.
AllocatorAlloc on Allocator
Extension on Allocator to provide allocation with NativeType.
ArrayAddress on Array<T>
ArrayArray on Array<Array<T>>
Bounds checking indexing methods on Arrays of Array.
BoolAddress on bool
BoolArray on Array<Bool>
Bounds checking indexing methods on Arrays of Bool.
BoolPointer on Pointer<Bool>
Extension on Pointer specialized for the type argument Bool.
DoubleAddress on double
DoubleArray on Array<Double>
Bounds checking indexing methods on Arrays of Double.
DoublePointer on Pointer<Double>
Extension on Pointer specialized for the type argument Double.
DynamicLibraryExtension on DynamicLibrary
Method which must not be invoked dynamically.
Float32ListAddress on Float32List
Float64ListAddress on Float64List
FloatArray on Array<Float>
Bounds checking indexing methods on Arrays of Float.
FloatPointer on Pointer<Float>
Extension on Pointer specialized for the type argument Float.
Int16Array on Array<Int16>
Bounds checking indexing methods on Arrays of Int16.
Int16ListAddress on Int16List
Int16Pointer on Pointer<Int16>
Extension on Pointer specialized for the type argument Int16.
Int32Array on Array<Int32>
Bounds checking indexing methods on Arrays of Int32.
Int32ListAddress on Int32List
Int32Pointer on Pointer<Int32>
Extension on Pointer specialized for the type argument Int32.
Int64Array on Array<Int64>
Bounds checking indexing methods on Arrays of Int64.
Int64ListAddress on Int64List
Int64Pointer on Pointer<Int64>
Extension on Pointer specialized for the type argument Int64.
Int8Array on Array<Int8>
Bounds checking indexing methods on Arrays of Int8.
Int8ListAddress on Int8List
Int8Pointer on Pointer<Int8>
Extension on Pointer specialized for the type argument Int8.
IntAddress on int
NativeFunctionPointer on Pointer<NativeFunction<NF>>
Extension on Pointer specialized for the type argument NativeFunction.
NativePort on SendPort
Extension to retrieve the native Dart_Port from a SendPort.
PointerArray on Array<Pointer<T>>
Bounds checking indexing methods on Arrays of Pointer.
PointerPointer on Pointer<Pointer<T>>
Extension on Pointer specialized for the type argument Pointer.
StringUtf16Pointer on String
Extension method for converting a String to a Pointer<Utf16>.
StringUtf8Pointer on String
Extension method for converting a String to a Pointer<Utf8>.
StructAddress on T
StructArray on Array<T>
Bounds checking indexing methods on Arrays of Struct.
StructPointer on Pointer<T>
Extension on Pointer specialized for the type argument Struct.
Uint16Array on Array<Uint16>
Bounds checking indexing methods on Arrays of Uint16.
Uint16ListAddress on Uint16List
Uint16Pointer on Pointer<Uint16>
Extension on Pointer specialized for the type argument Uint16.
Uint32Array on Array<Uint32>
Bounds checking indexing methods on Arrays of Uint32.
Uint32ListAddress on Uint32List
Uint32Pointer on Pointer<Uint32>
Extension on Pointer specialized for the type argument Uint32.
Uint64Array on Array<Uint64>
Bounds checking indexing methods on Arrays of Uint64.
Uint64ListAddress on Uint64List
Uint64Pointer on Pointer<Uint64>
Extension on Pointer specialized for the type argument Uint64.
Uint8Array on Array<Uint8>
Bounds checking indexing methods on Arrays of Uint8.
Uint8ListAddress on Uint8List
Uint8Pointer on Pointer<Uint8>
Extension on Pointer specialized for the type argument Uint8.
UnionAddress on T
UnionArray on Array<T>
Bounds checking indexing methods on Arrays of Union.
UnionPointer on Pointer<T>
Extension on Pointer specialized for the type argument Union.
Utf16Pointer on Pointer<Utf16>
Extension method for converting aPointer<Utf16> to a String.
Utf8Pointer on Pointer<Utf8>
Extension method for converting aPointer<Utf8> to a String.

Constants

calloc → const CallocAllocator
Manages memory on the native heap.
malloc → const MallocAllocator
Manages memory on the native heap.

Properties

nullptr Pointer<Never>
Represents a pointer into the native C memory corresponding to 'NULL', e.g. a pointer with address 0.
final
zoneArena Arena
A zone-specific Arena.
no setter

Functions

sizeOf<T extends SizedNativeType>() int
Number of bytes used by native type T.
using<R>(R computation(Arena), [Allocator wrappedAllocator = calloc]) → R
Runs computation with a new Arena, and releases all allocations at the end.
withZoneArena<R>(R computation(), [Allocator wrappedAllocator = calloc]) → R
Creates a zoned Arena to manage native resources.

Typedefs

Dart_NativeMessageHandler = Void Function(Int64, Pointer<Dart_CObject>)
NativeFinalizerFunction = NativeFunction<Void Function(Pointer<Void> token)>
The native function type for NativeFinalizers.