| Index: include/dart_api.h
|
| ===================================================================
|
| --- include/dart_api.h (revision 17884)
|
| +++ include/dart_api.h (working copy)
|
| @@ -1631,8 +1631,23 @@
|
| uint8_t* native_array,
|
| intptr_t length);
|
|
|
| -// --- Byte Arrays ---
|
| +// --- Scalar Lists ---
|
|
|
| +typedef enum {
|
| + kByteArray = 0,
|
| + kInt8,
|
| + kUint8,
|
| + kUint8Clamped,
|
| + kInt16,
|
| + kUint16,
|
| + kInt32,
|
| + kUint32,
|
| + kInt64,
|
| + kUint64,
|
| + kFloat32,
|
| + kFloat64
|
| +} Dart_Scalar_Type;
|
| +
|
| /**
|
| * Is this object a ByteArray?
|
| */
|
| @@ -1704,305 +1719,39 @@
|
| void** peer);
|
|
|
| /**
|
| - * Gets an int8_t at some byte offset in a ByteArray.
|
| + * Acquires access to the internal data address of a scalar list object.
|
| *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| + * \param array The scalar list object whose internal data address is to
|
| + * be accessed.
|
| + * \param type The scalar type of the object is returned here.
|
| + * \param data The internal data address is returned here.
|
| + * \param len Size of the byte array is returned here.
|
| *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the List.
|
| - * \param value Returns the value of the int8_t.
|
| + * Note: When the internal address of the object is acquired any calls to a
|
| + * Dart API function that could potentially allocate an object or run
|
| + * any Dart code will return an error.
|
| *
|
| - * \return A valid handle if no error occurs during the operation.
|
| + * \return Success if the internal data address is acquired successfully.
|
| + * Otherwise, returns an error handle.
|
| */
|
| -DART_EXPORT Dart_Handle Dart_ByteArrayGetInt8At(Dart_Handle array,
|
| - intptr_t offset,
|
| - int8_t* value);
|
| +DART_EXPORT Dart_Handle Dart_ScalarListAcquireData(Dart_Handle array,
|
| + Dart_Scalar_Type* type,
|
| + void** data,
|
| + intptr_t* len);
|
|
|
| /**
|
| - * Sets an int8_t at some byte offset in a ByteArray.
|
| + * Releases access to the internal data address that was acquired earlier using
|
| + * Dart_ByteArrayAcquireData.
|
| *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| + * \param array The scalar list object whose internal data address is to be
|
| + * released.
|
| *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the ByteArray.
|
| - * \param value The int8_t to put into the ByteArray.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| + * \return Success if the internal data address is released successfully.
|
| + * Otherwise, returns an error handle.
|
| */
|
| -DART_EXPORT Dart_Handle Dart_ByteArraySetInt8At(Dart_Handle array,
|
| - intptr_t offset,
|
| - int8_t value);
|
| +DART_EXPORT Dart_Handle Dart_ScalarListReleaseData(Dart_Handle array);
|
|
|
| -/**
|
| - * Gets a uint8_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the List.
|
| - * \param value Returns the value of the uint8_t.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArrayGetUint8At(Dart_Handle array,
|
| - intptr_t offset,
|
| - uint8_t* value);
|
|
|
| -/**
|
| - * Sets a uint8_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the ByteArray.
|
| - * \param value The uint8_t to put into the ByteArray.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArraySetUint8At(Dart_Handle array,
|
| - intptr_t offset,
|
| - uint8_t value);
|
| -
|
| -/**
|
| - * Gets an int16_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the List.
|
| - * \param value Returns the value of the int16_t.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArrayGetInt16At(Dart_Handle array,
|
| - intptr_t offset,
|
| - int16_t* value);
|
| -
|
| -/**
|
| - * Sets an int16_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the ByteArray.
|
| - * \param value The int16_t to put into the ByteArray.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArraySetInt16At(Dart_Handle array,
|
| - intptr_t offset,
|
| - int16_t value);
|
| -
|
| -/**
|
| - * Gets a uint16_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the List.
|
| - * \param value Returns the value of the uint16_t.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArrayGetUint16At(Dart_Handle array,
|
| - intptr_t offset,
|
| - uint16_t* value);
|
| -
|
| -/**
|
| - * Sets a uint16_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the ByteArray.
|
| - * \param value The uint16_t to put into the ByteArray.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArraySetUint16At(Dart_Handle array,
|
| - intptr_t offset,
|
| - uint16_t value);
|
| -
|
| -/**
|
| - * Gets an int32_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the List.
|
| - * \param value Returns the value of the int32_t.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArrayGetInt32At(Dart_Handle array,
|
| - intptr_t offset,
|
| - int32_t* value);
|
| -
|
| -/**
|
| - * Sets an int32_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the ByteArray.
|
| - * \param value The int32_t to put into the ByteArray.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArraySetInt32At(Dart_Handle array,
|
| - intptr_t offset,
|
| - int32_t value);
|
| -
|
| -/**
|
| - * Gets a uint32_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the List.
|
| - * \param value Returns the value of the uint32_t.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArrayGetUint32At(Dart_Handle array,
|
| - intptr_t offset,
|
| - uint32_t* value);
|
| -
|
| -/**
|
| - * Sets a uint32_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the ByteArray.
|
| - * \param value The uint32_t to put into the ByteArray.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArraySetUint32At(Dart_Handle array,
|
| - intptr_t offset,
|
| - uint32_t value);
|
| -
|
| -/**
|
| - * Gets an int64_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the List.
|
| - * \param value Returns the value of the int64_t.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArrayGetInt64At(Dart_Handle array,
|
| - intptr_t offset,
|
| - int64_t* value);
|
| -
|
| -/**
|
| - * Sets an int64_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the ByteArray.
|
| - * \param value The int64_t to put into the ByteArray.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArraySetInt64At(Dart_Handle array,
|
| - intptr_t offset,
|
| - int64_t value);
|
| -
|
| -/**
|
| - * Gets a uint64_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the List.
|
| - * \param value Returns the value of the uint64_t.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArrayGetUint64At(Dart_Handle array,
|
| - intptr_t offset,
|
| - uint64_t* value);
|
| -
|
| -/**
|
| - * Sets a uint64_t at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the ByteArray.
|
| - * \param value The uint64_t to put into the ByteArray.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArraySetUint64At(Dart_Handle array,
|
| - intptr_t offset,
|
| - uint64_t value);
|
| -
|
| -/**
|
| - * Gets a float at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the List.
|
| - * \param value Returns the value of the float.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArrayGetFloat32At(Dart_Handle array,
|
| - intptr_t offset,
|
| - float* value);
|
| -
|
| -/**
|
| - * Sets a float at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the ByteArray.
|
| - * \param value The float to put into the ByteArray.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArraySetFloat32At(Dart_Handle array,
|
| - intptr_t offset,
|
| - float value);
|
| -
|
| -/**
|
| - * Gets a double from some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the List.
|
| - * \param value Returns the value of the double.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArrayGetFloat64At(Dart_Handle array,
|
| - intptr_t offset,
|
| - double* value);
|
| -
|
| -/**
|
| - * Sets a double at some byte offset in a ByteArray.
|
| - *
|
| - * If the byte offset is out of bounds, an error occurs.
|
| - *
|
| - * \param array A ByteArray.
|
| - * \param offset A valid byte offset into the ByteArray.
|
| - * \param value The double to put into the ByteArray.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ByteArraySetFloat64At(Dart_Handle array,
|
| - intptr_t offset,
|
| - double value);
|
| -
|
| // --- Closures ---
|
|
|
| /**
|
|
|