5.3 KiB
5.3 KiB
Add-on Arguments
C API for validating, extracting, and transforming (to native C types) function arguments provided to an ndarray Node-API add-on interface.
Usage
var headerDir = require( '@stdlib/ndarray/base/napi/addon-arguments' );
headerDir
Absolute file path for the directory containing header files for C APIs.
var dir = headerDir;
// returns <string>
Examples
var headerDir = require( '@stdlib/ndarray/base/napi/addon-arguments' );
console.log( headerDir );
// => <string>
C APIs
Usage
#include "stdlib/ndarray/base/napi/addon_arguments.h"
stdlib_ndarray_napi_addon_arguments( env, argv, nargs, nin, *arrays[], *err )
Validates, extracts, and transforms (to native C types) function arguments provided to an ndarray Node-API add-on interface.
#include <node_api.h>
#include <stdint.h>
#include <assert.h>
// ...
/**
* Receives JavaScript callback invocation data.
*
* @param env environment under which the function is invoked
* @param info callback data
* @return Node-API value
*/
napi_value addon( napi_env env, napi_callback_info info ) {
napi_status status;
// ...
int64_t nargs = 6;
int64_t nin = 2;
// Get callback arguments:
size_t argc = 6;
napi_value argv[ 6 ];
status = napi_get_cb_info( env, info, &argc, argv, nullptr, nullptr );
assert( status == napi_ok );
// ...
// Process the provided arguments:
struct ndarray *arrays[ 3 ];
napi_value err;
status = stdlib_ndarray_napi_addon_arguments( env, argv, nargs, nin, arrays, &err );
assert( status == napi_ok );
// ...
}
// ...
The function accepts the following arguments:
- env:
[in] napi_env
environment under which the function is invoked. - argv:
[in] napi_value*
ndarray function arguments. - nargs:
[in] int64_t
total number of expected arguments. - nin:
[in] int64_t
number of input ndarray arguments. - arrays:
[out] struct ndarrays**
destination array for storing pointers to both input and output ndarrays. - err:
[out] napi_value*
pointer for storing a JavaScript error.
napi_status stdlib_ndarray_napi_addon_arguments( const napi_env env, const napi_value *argv, const int64_t nargs, const int64_t nin, struct ndarray *arrays[], napi_value *err );
The function returns a napi_status
status code indicating success or failure (returns napi_ok
if success).
Notes
-
The function assumes the following argument order:
[ ib1, im1, ib2, im2, ..., ob1, om1, ob2, om2, ... ]
where
ib#
is a data buffer for an input ndarray.im#
is meta data for an input ndarray.ob#
is a data buffer for an output ndarray.om#
is meta data for an output ndarray.
-
The function may return one of the following JavaScript errors:
Error
: unable to allocate memory when processing input ndarray.Error
: unable to allocate memory when processing output ndarray.