XeNote/.yarn/unplugged/node-addon-api-npm-3.0.2-4c22ea0673/node_modules/node-addon-api/doc/instance_wrap.md

409 lines
15 KiB
Markdown
Raw Normal View History

2021-05-17 01:16:19 +00:00
# InstanceWrap<T>
This class serves as the base class for [`Napi::ObjectWrap<T>`][] and
[`Napi::Addon<T>`][].
In the case of [`Napi::Addon<T>`][] it provides the
methods for exposing functions to JavaScript on instances of an add-on.
As a base class for [`Napi::ObjectWrap<T>`][] it provides the methods for
exposing instance methods of JavaScript objects instantiated from the JavaScript
class corresponding to the subclass of [`Napi::ObjectWrap<T>`][].
## Methods
### InstanceMethod
Creates a property descriptor that represents a method exposed on JavaScript
instances of this class.
```cpp
template <typename T>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap<T>::InstanceMethod(const char* utf8name,
InstanceVoidMethodCallback method,
napi_property_attributes attributes = napi_default,
void* data = nullptr);
```
- `[in] utf8name`: Null-terminated string that represents the name of the method
provided by instances of the class.
- `[in] method`: The native function that represents a method provided by the
add-on.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
- `[in] data`: User-provided data passed into the method when it is invoked.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method
provided by instances of the class. The method must be of the form
```cpp
void MethodName(const Napi::CallbackInfo& info);
```
### InstanceMethod
Creates a property descriptor that represents a method exposed on JavaScript
instances of this class.
```cpp
template <typename T>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap<T>::InstanceMethod(const char* utf8name,
InstanceMethodCallback method,
napi_property_attributes attributes = napi_default,
void* data = nullptr);
```
- `[in] utf8name`: Null-terminated string that represents the name of the method
provided by instances of the class.
- `[in] method`: The native function that represents a method provided by the
add-on.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
- `[in] data`: User-provided data passed into the method when it is invoked.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method
provided by instances of the class. The method must be of the form
```cpp
Napi::Value MethodName(const Napi::CallbackInfo& info);
```
### InstanceMethod
Creates a property descriptor that represents a method exposed on JavaScript
instances of this class.
```cpp
template <typename T>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap<T>::InstanceMethod(Napi::Symbol name,
InstanceVoidMethodCallback method,
napi_property_attributes attributes = napi_default,
void* data = nullptr);
```
- `[in] name`: JavaScript symbol that represents the name of the method provided
by instances of the class.
- `[in] method`: The native function that represents a method provided by the
add-on.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
- `[in] data`: User-provided data passed into the method when it is invoked.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method
provided by instances of the class. The method must be of the form
```cpp
void MethodName(const Napi::CallbackInfo& info);
```
### InstanceMethod
Creates a property descriptor that represents a method exposed on JavaScript
instances of this class.
```cpp
template <typename T>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap<T>::InstanceMethod(Napi::Symbol name,
InstanceMethodCallback method,
napi_property_attributes attributes = napi_default,
void* data = nullptr);
```
- `[in] name`: JavaScript symbol that represents the name of the method provided
by instances of the class.
- `[in] method`: The native function that represents a method provided by the
add-on.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
- `[in] data`: User-provided data passed into the method when it is invoked.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method
provided by instances of the class. The method must be of the form
```cpp
Napi::Value MethodName(const Napi::CallbackInfo& info);
```
### InstanceMethod
Creates a property descriptor that represents a method exposed on JavaScript
instances of this class.
```cpp
<template typename T>
template <typename InstanceWrap<T>::InstanceVoidMethodCallback method>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap::InstanceMethod(const char* utf8name,
napi_property_attributes attributes = napi_default,
void* data = nullptr);
```
- `[in] method`: The native function that represents a method provided by the
add-on.
- `[in] utf8name`: Null-terminated string that represents the name of the method
provided by instances of the class.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
- `[in] data`: User-provided data passed into the method when it is invoked.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method
provided by instances of the class. The method must be of the form
```cpp
void MethodName(const Napi::CallbackInfo& info);
```
### InstanceMethod
Creates a property descriptor that represents a method exposed on JavaScript
instances of this class.
```cpp
template <typename T>
template <typename InstanceWrap<T>::InstanceMethodCallback method>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap<T>::InstanceMethod(const char* utf8name,
napi_property_attributes attributes = napi_default,
void* data = nullptr);
```
- `[in] method`: The native function that represents a method provided by the
add-on.
- `[in] utf8name`: Null-terminated string that represents the name of the method
provided by instances of the class.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
- `[in] data`: User-provided data passed into the method when it is invoked.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method
provided by instances of the class. The method must be of the form
```cpp
Napi::Value MethodName(const Napi::CallbackInfo& info);
```
### InstanceMethod
Creates a property descriptor that represents a method exposed on JavaScript
instances of this class.
```cpp
template <typename T>
template <typename InstanceWrap<T>::InstanceVoidMethodCallback method>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap<T>::InstanceMethod(Napi::Symbol name,
napi_property_attributes attributes = napi_default,
void* data = nullptr);
```
- `[in] method`: The native function that represents a method provided by the
add-on.
- `[in] name`: The `Napi::Symbol` object whose value is used to identify the
instance method for the class.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
- `[in] data`: User-provided data passed into the method when it is invoked.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method
provided by instances of the class. The method must be of the form
```cpp
void MethodName(const Napi::CallbackInfo& info);
```
### InstanceMethod
Creates a property descriptor that represents a method exposed on JavaScript
instances of this class.
```cpp
template <typename T>
template <InstanceWrap<T>::InstanceMethodCallback method>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap<T>::InstanceMethod(Napi::Symbol name,
napi_property_attributes attributes = napi_default,
void* data = nullptr);
```
- `[in] method`: The native function that represents a method provided by the
add-on.
- `[in] name`: The `Napi::Symbol` object whose value is used to identify the
instance method for the class.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
- `[in] data`: User-provided data passed into the method when it is invoked.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method
provided by instances of the class. The method must be of the form
```cpp
Napi::Value MethodName(const Napi::CallbackInfo& info);
```
### InstanceAccessor
Creates a property descriptor that represents a property exposed on JavaScript
instances of this class.
```cpp
template <typename T>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap<T>::InstanceAccessor(const char* utf8name,
InstanceGetterCallback getter,
InstanceSetterCallback setter,
napi_property_attributes attributes = napi_default,
void* data = nullptr);
```
- `[in] utf8name`: Null-terminated string that represents the name of the method
provided by instances of the class.
- `[in] getter`: The native function to call when a get access to the property
is performed.
- `[in] setter`: The native function to call when a set access to the property
is performed.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
- `[in] data`: User-provided data passed into the getter or the setter when it
is invoked.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents an instance
accessor property provided by instances of the class.
### InstanceAccessor
Creates a property descriptor that represents a property exposed on JavaScript
instances of this class.
```cpp
template <typename T>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap<T>::InstanceAccessor(Symbol name,
InstanceGetterCallback getter,
InstanceSetterCallback setter,
napi_property_attributes attributes = napi_default,
void* data = nullptr);
```
- `[in] name`: The `Napi::Symbol` object whose value is used to identify the
instance accessor.
- `[in] getter`: The native function to call when a get access to the property of
a JavaScript class is performed.
- `[in] setter`: The native function to call when a set access to the property of
a JavaScript class is performed.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
- `[in] data`: User-provided data passed into the getter or the setter when it
is invoked.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents an instance
accessor property provided instances of the class.
### InstanceAccessor
Creates a property descriptor that represents a property exposed on JavaScript
instances of this class.
```cpp
template <typename T>
template <typename InstanceWrap<T>::InstanceGetterCallback getter,
typename InstanceWrap<T>::InstanceSetterCallback setter=nullptr>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap<T>::InstanceAccessor(const char* utf8name,
napi_property_attributes attributes = napi_default,
void* data = nullptr);
```
- `[in] getter`: The native function to call when a get access to the property of
a JavaScript class is performed.
- `[in] setter`: The native function to call when a set access to the property of
a JavaScript class is performed.
- `[in] utf8name`: Null-terminated string that represents the name of the method
provided by instances of the class.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
- `[in] data`: User-provided data passed into the getter or the setter when it
is invoked.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents an instance
accessor property provided by instances of the class.
### InstanceAccessor
Creates a property descriptor that represents a property exposed on JavaScript
instances of this class.
```cpp
template <typename T>
template <typename InstanceWrap<T>::InstanceGetterCallback getter,
typename InstanceWrap<T>::InstanceSetterCallback setter=nullptr>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap<T>::InstanceAccessor(Symbol name,
napi_property_attributes attributes = napi_default,
void* data = nullptr);
```
- `[in] getter`: The native function to call when a get access to the property of
a JavaScript class is performed.
- `[in] setter`: The native function to call when a set access to the property of
a JavaScript class is performed.
- `[in] name`: The `Napi::Symbol` object whose value is used to identify the
instance accessor.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
- `[in] data`: User-provided data passed into the getter or the setter when it
is invoked.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents an instance
accessor property provided by instances of the class.
### InstanceValue
Creates property descriptor that represents a value exposed on JavaScript
instances of this class.
```cpp
template <typename T>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap<T>::InstanceValue(const char* utf8name,
Napi::Value value,
napi_property_attributes attributes = napi_default);
```
- `[in] utf8name`: Null-terminated string that represents the name of the
property.
- `[in] value`: The value that's retrieved by a get access of the property.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents an instance
value property of an add-on.
### InstanceValue
Creates property descriptor that represents a value exposed on JavaScript
instances of this class.
```cpp
template <typename T>
static Napi::ClassPropertyDescriptor<T>
Napi::InstanceWrap<T>::InstanceValue(Symbol name,
Napi::Value value,
napi_property_attributes attributes = napi_default);
```
- `[in] name`: The `Napi::Symbol` object whose value is used to identify the
name of the property.
- `[in] value`: The value that's retrieved by a get access of the property.
- `[in] attributes`: The attributes associated with the property. One or more of
`napi_property_attributes`.
Returns a `Napi::ClassPropertyDescriptor<T>` object that represents an instance
value property of an add-on.
[`Napi::Addon<T>`]: ./addon.md
[`Napi::ObjectWrap<T>`]: ./object_wrap.md