409 lines
15 KiB
Markdown
409 lines
15 KiB
Markdown
|
# 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
|