UNPKG

koffi

Version:

Fast and simple C FFI (foreign function interface) for Node.js

409 lines (325 loc) 15.2 kB
# 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