diff options
| author | 8cy <[email protected]> | 2020-04-03 02:37:42 -0700 |
|---|---|---|
| committer | 8cy <[email protected]> | 2020-04-03 02:37:42 -0700 |
| commit | 60867fb030bae582082340ead7dbc7efdc2f5398 (patch) | |
| tree | 4c6a7356351be2e4914e15c4703172597c45656e /node_modules/node-addon-api/doc/escapable_handle_scope.md | |
| parent | commenting (diff) | |
| download | s5nical-60867fb030bae582082340ead7dbc7efdc2f5398.tar.xz s5nical-60867fb030bae582082340ead7dbc7efdc2f5398.zip | |
2020/04/03, 02:34, v1.2.0
Diffstat (limited to 'node_modules/node-addon-api/doc/escapable_handle_scope.md')
| -rw-r--r-- | node_modules/node-addon-api/doc/escapable_handle_scope.md | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/node_modules/node-addon-api/doc/escapable_handle_scope.md b/node_modules/node-addon-api/doc/escapable_handle_scope.md new file mode 100644 index 0000000..978aab3 --- /dev/null +++ b/node_modules/node-addon-api/doc/escapable_handle_scope.md @@ -0,0 +1,82 @@ +# EscapableHandleScope + +The `Napi::EscapableHandleScope` class is used to manage the lifetime of object handles +which are created through the use of node-addon-api. These handles +keep an object alive in the heap in order to ensure that the objects +are not collected by the garbage collector while native code is using them. +A handle may be created when any new node-addon-api Value or one +of its subclasses is created or returned. + +The `Napi::EscapableHandleScope` is a special type of `Napi::HandleScope` +which allows a single handle to be "promoted" to an outer scope. + +For more details refer to the section titled +[Object lifetime management](object_lifetime_management.md). + +## Methods + +### Constructor + +Creates a new escapable handle scope. + +```cpp +Napi::EscapableHandleScope Napi::EscapableHandleScope::New(Napi:Env env); +``` + +- `[in] Env`: The environment in which to construct the `Napi::EscapableHandleScope` object. + +Returns a new `Napi::EscapableHandleScope` + +### Constructor + +Creates a new escapable handle scope. + +```cpp +Napi::EscapableHandleScope Napi::EscapableHandleScope::New(napi_env env, napi_handle_scope scope); +``` + +- `[in] env`: napi_env in which the scope passed in was created. +- `[in] scope`: pre-existing napi_handle_scope. + +Returns a new `Napi::EscapableHandleScope` instance which wraps the +napi_escapable_handle_scope handle passed in. This can be used +to mix usage of the C N-API and node-addon-api. + +operator EscapableHandleScope::napi_escapable_handle_scope + +```cpp +operator Napi::EscapableHandleScope::napi_escapable_handle_scope() const +``` + +Returns the N-API napi_escapable_handle_scope wrapped by the `Napi::EscapableHandleScope` object. +This can be used to mix usage of the C N-API and node-addon-api by allowing +the class to be used be converted to a napi_escapable_handle_scope. + +### Destructor +```cpp +Napi::EscapableHandleScope::~EscapableHandleScope(); +``` + +Deletes the `Napi::EscapableHandleScope` instance and allows any objects/handles created +in the scope to be collected by the garbage collector. There is no +guarantee as to when the gargbage collector will do this. + +### Escape + +```cpp +napi::Value Napi::EscapableHandleScope::Escape(napi_value escapee); +``` + +- `[in] escapee`: Napi::Value or napi_env to promote to the outer scope + +Returns `Napi::Value` which can be used in the outer scope. This method can +be called at most once on a given `Napi::EscapableHandleScope`. If it is called +more than once an exception will be thrown. + +### Env + +```cpp +Napi::Env Napi::EscapableHandleScope::Env() const; +``` + +Returns the `Napi::Env` associated with the `Napi::EscapableHandleScope`. |