• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef FOUNDATION_ACE_NAPI_INTERFACES_KITS_NAPI_NATIVE_API_H
17 #define FOUNDATION_ACE_NAPI_INTERFACES_KITS_NAPI_NATIVE_API_H
18 
19 #ifndef NAPI_VERSION
20 #define NAPI_VERSION 8
21 #endif
22 
23 #ifndef NAPI_EXPERIMENTAL
24 #define NAPI_EXPERIMENTAL
25 #endif
26 
27 #include <node_api.h>
28 
29 #ifdef NAPI_TEST
30 #ifdef _WIN32
31 #define NAPI_INNER_EXTERN __declspec(dllexport)
32 #else
33 #define NAPI_INNER_EXTERN __attribute__((visibility("default")))
34 #endif
35 #else
36 #ifdef _WIN32
37 #define NAPI_INNER_EXTERN __declspec(deprecated)
38 #else
39 #define NAPI_INNER_EXTERN __attribute__((__deprecated__))
40 #endif
41 #endif
42 
43 NAPI_INNER_EXTERN napi_status napi_set_instance_data(napi_env env,
44                                                      void* data,
45                                                      napi_finalize finalize_cb,
46                                                      void* finalize_hint);
47 
48 NAPI_INNER_EXTERN napi_status napi_get_instance_data(napi_env env,
49                                                      void** data);
50 
51 NAPI_INNER_EXTERN napi_status napi_fatal_exception(napi_env env, napi_value err);
52 
53 NAPI_INNER_EXTERN napi_status napi_add_env_cleanup_hook(napi_env env,
54                                                         void (*fun)(void* arg),
55                                                         void* arg);
56 
57 NAPI_INNER_EXTERN napi_status napi_remove_env_cleanup_hook(napi_env env,
58                                                            void (*fun)(void* arg),
59                                                            void* arg);
60 
61 NAPI_INNER_EXTERN napi_status napi_add_async_cleanup_hook(
62     napi_env env,
63     napi_async_cleanup_hook hook,
64     void* arg,
65     napi_async_cleanup_hook_handle* remove_handle);
66 
67 NAPI_INNER_EXTERN napi_status napi_remove_async_cleanup_hook(
68     napi_async_cleanup_hook_handle remove_handle);
69 
70 NAPI_INNER_EXTERN napi_status napi_create_buffer(napi_env env,
71                                                  size_t length,
72                                                  void** data,
73                                                  napi_value* result);
74 
75 NAPI_INNER_EXTERN napi_status napi_create_buffer_copy(napi_env env,
76                                                       size_t length,
77                                                       const void* data,
78                                                       void** result_data,
79                                                       napi_value* result);
80 
81 
82 NAPI_INNER_EXTERN napi_status napi_create_external_buffer(napi_env env,
83                                                           size_t length,
84                                                           void* data,
85                                                           napi_finalize finalize_cb,
86                                                           void* finalize_hint,
87                                                           napi_value* result);
88 
89 NAPI_INNER_EXTERN napi_status napi_create_string_utf16(napi_env env,
90                                                        const char16_t* str,
91                                                        size_t length,
92                                                        napi_value* result);
93 
94 NAPI_INNER_EXTERN napi_status napi_get_buffer_info(napi_env env,
95                                                    napi_value value,
96                                                    void** data,
97                                                    size_t* length);
98 
99 NAPI_INNER_EXTERN napi_status napi_get_value_string_utf16(napi_env env,
100                                                           napi_value value,
101                                                           char16_t* buf,
102                                                           size_t bufsize,
103                                                           size_t* result);
104 
105 NAPI_INNER_EXTERN napi_status napi_is_buffer(napi_env env,
106                                              napi_value value,
107                                              bool* result);
108 
109 NAPI_INNER_EXTERN napi_status napi_detach_arraybuffer(napi_env env,
110                                                       napi_value arraybuffer);
111 
112 NAPI_INNER_EXTERN napi_status napi_is_detached_arraybuffer(napi_env env,
113                                                            napi_value value,
114                                                            bool* result);
115 
116 NAPI_INNER_EXTERN napi_status napi_get_all_property_names(napi_env env,
117                                                           napi_value object,
118                                                           napi_key_collection_mode key_mode,
119                                                           napi_key_filter key_filter,
120                                                           napi_key_conversion key_conversion,
121                                                           napi_value* result);
122 
123 NAPI_EXTERN napi_status napi_object_freeze(napi_env env, napi_value object);
124 
125 NAPI_INNER_EXTERN napi_status napi_object_seal(napi_env env,
126                                                napi_value object);
127 
128 NAPI_INNER_EXTERN napi_status napi_type_tag_object(napi_env env,
129                                                    napi_value value,
130                                                    const napi_type_tag* type_tag);
131 
132 NAPI_INNER_EXTERN napi_status napi_check_object_type_tag(napi_env env,
133                                                          napi_value value,
134                                                          const napi_type_tag* type_tag,
135                                                          bool* result);
136 
137 NAPI_INNER_EXTERN napi_status napi_add_finalizer(napi_env env,
138                                                  napi_value js_object,
139                                                  void* native_object,
140                                                  napi_finalize finalize_cb,
141                                                  void* finalize_hint,
142                                                  napi_ref* result);
143 
144 NAPI_INNER_EXTERN napi_status napi_async_init(napi_env env,
145                                               napi_value async_resource,
146                                               napi_value async_resource_name,
147                                               napi_async_context* result);
148 
149 NAPI_INNER_EXTERN napi_status napi_async_destroy(napi_env env,
150                                                  napi_async_context async_context);
151 
152 NAPI_INNER_EXTERN napi_status napi_open_callback_scope(napi_env env,
153                                                        napi_value resource_object,
154                                                        napi_async_context context,
155                                                        napi_callback_scope* result);
156 
157 NAPI_INNER_EXTERN napi_status napi_close_callback_scope(napi_env env,
158                                                         napi_callback_scope scope);
159 
160 NAPI_INNER_EXTERN napi_status napi_adjust_external_memory(napi_env env,
161                                                           int64_t change_in_bytes,
162                                                           int64_t* adjusted_value);
163 
164 NAPI_INNER_EXTERN napi_status node_api_get_module_file_name(napi_env env, const char** result);
165 
166 NAPI_EXTERN napi_status napi_run_script_path(napi_env env, const char* path, napi_value* result);
167 
168 #endif /* FOUNDATION_ACE_NAPI_INTERFACES_KITS_NAPI_NATIVE_API_H */
169