@encharm/cws 4.4.1 → 4.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bindings/cws_darwin_arm64_node115.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
- package/dist/bindings/cws_linux_arm64_node115.node +0 -0
- package/dist/bindings/cws_linux_arm64_node127.node +0 -0
- package/dist/bindings/cws_linux_x64_node115.node +0 -0
- package/dist/bindings/cws_linux_x64_node127.node +0 -0
- package/dist/bindings/cws_win32_x64_node108.node +0 -0
- package/dist/bindings/cws_win32_x64_node115.node +0 -0
- package/dist/bindings/cws_win32_x64_node127.node +0 -0
- package/dist/bindings/cws_win32_x64_node83.node +0 -0
- package/dist/bindings/cws_win32_x64_node93.node +0 -0
- package/package.json +1 -1
- package/src/Addon.h +8 -23
- package/src/Socket.h +0 -1
- package/src/headers/22/acorn_version.h +6 -0
- package/src/headers/22/aliased_buffer-inl.h +243 -0
- package/src/headers/22/aliased_buffer.h +206 -0
- package/src/headers/{18 → 22}/async_wrap-inl.h +8 -6
- package/src/headers/{18 → 22}/async_wrap.h +65 -59
- package/src/headers/{16 → 22}/base_object-inl.h +57 -117
- package/src/headers/{18 → 22}/base_object.h +58 -30
- package/src/headers/22/base_object_types.h +74 -0
- package/src/headers/22/blob_serializer_deserializer-inl.h +385 -0
- package/src/headers/22/blob_serializer_deserializer.h +132 -0
- package/src/headers/{16 → 22}/callback_queue.h +1 -0
- package/src/headers/{16 → 22}/cares_wrap.h +27 -20
- package/src/headers/22/cjs_module_lexer_version.h +6 -0
- package/src/headers/22/cleanup_queue-inl.h +62 -0
- package/src/headers/22/cleanup_queue.h +85 -0
- package/src/headers/22/compile_cache.h +104 -0
- package/src/headers/{18 → 22}/crypto/crypto_clienthello.h +1 -1
- package/src/headers/{18 → 22}/crypto/crypto_context.h +31 -7
- package/src/headers/{18 → 22}/crypto/crypto_keys.h +118 -148
- package/src/headers/{18 → 22}/crypto/crypto_tls.h +20 -5
- package/src/headers/{18 → 22}/crypto/crypto_util.h +219 -263
- package/src/headers/22/crypto/ncrypto.h +752 -0
- package/src/headers/{16 → 22}/debug_utils-inl.h +15 -7
- package/src/headers/{18 → 22}/debug_utils.h +25 -19
- package/src/headers/22/encoding_binding.h +59 -0
- package/src/headers/{14 → 22}/env-inl.h +276 -409
- package/src/headers/22/env.h +1266 -0
- package/src/headers/22/env_properties.h +497 -0
- package/src/headers/{18 → 22}/handle_wrap.h +2 -0
- package/src/headers/{18 → 22}/histogram.h +88 -48
- package/src/headers/{16 → 22}/inspector_agent.h +17 -1
- package/src/headers/{16 → 22}/inspector_profiler.h +15 -13
- package/src/headers/{18 → 22}/js_native_api.h +78 -30
- package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
- package/src/headers/{18 → 22}/js_native_api_v8.h +206 -161
- package/src/headers/{18 → 22}/js_native_api_v8_internals.h +6 -0
- package/src/headers/22/json_parser.h +40 -0
- package/src/headers/{16 → 22}/json_utils.h +19 -8
- package/src/headers/{18 → 22}/memory_tracker-inl.h +16 -13
- package/src/headers/{14 → 22}/memory_tracker.h +13 -8
- package/src/headers/{16 → 22}/module_wrap.h +49 -19
- package/src/headers/22/ncrypto/ncrypto.h +752 -0
- package/src/headers/{18 → 22}/node.h +465 -68
- package/src/headers/{18 → 22}/node_api.h +66 -81
- package/src/headers/{18 → 22}/node_api_internals.h +8 -4
- package/src/headers/{18 → 22}/node_api_types.h +5 -0
- package/src/headers/22/node_binding.h +154 -0
- package/src/headers/{18 → 22}/node_blob.h +46 -78
- package/src/headers/{18 → 22}/node_bob-inl.h +1 -2
- package/src/headers/{18 → 22}/node_bob.h +2 -6
- package/src/headers/{18 → 22}/node_buffer.h +1 -1
- package/src/headers/22/node_builtins.h +220 -0
- package/src/headers/{18 → 22}/node_constants.h +3 -5
- package/src/headers/22/node_context_data.h +168 -0
- package/src/headers/22/node_contextify.h +199 -0
- package/src/headers/{16 → 22}/node_crypto.h +1 -2
- package/src/headers/22/node_dotenv.h +45 -0
- package/src/headers/{18 → 22}/node_errors.h +86 -27
- package/src/headers/22/node_exit_code.h +54 -0
- package/src/headers/22/node_external_reference.h +249 -0
- package/src/headers/{18 → 22}/node_file-inl.h +127 -30
- package/src/headers/{16 → 22}/node_file.h +122 -11
- package/src/headers/{18 → 22}/node_http2.h +28 -11
- package/src/headers/{16 → 22}/node_http2_state.h +34 -25
- package/src/headers/{18 → 22}/node_http_common-inl.h +2 -1
- package/src/headers/{18 → 22}/node_http_common.h +56 -55
- package/src/headers/{16 → 22}/node_i18n.h +5 -18
- package/src/headers/{18 → 22}/node_internals.h +121 -59
- package/src/headers/{18 → 22}/node_main_instance.h +4 -31
- package/src/headers/{18 → 22}/node_messaging.h +27 -10
- package/src/headers/{18 → 22}/node_metadata.h +23 -1
- package/src/headers/{18 → 22}/node_options-inl.h +24 -11
- package/src/headers/{18 → 22}/node_options.h +124 -39
- package/src/headers/{18 → 22}/node_perf.h +0 -2
- package/src/headers/{18 → 22}/node_perf_common.h +20 -9
- package/src/headers/{18 → 22}/node_platform.h +11 -5
- package/src/headers/{18 → 22}/node_process.h +26 -14
- package/src/headers/22/node_realm-inl.h +145 -0
- package/src/headers/22/node_realm.h +184 -0
- package/src/headers/{16 → 22}/node_report.h +13 -17
- package/src/headers/{16 → 22}/node_revert.h +3 -3
- package/src/headers/{16 → 22}/node_root_certs.h +902 -461
- package/src/headers/22/node_sea.h +64 -0
- package/src/headers/22/node_shadow_realm.h +46 -0
- package/src/headers/22/node_snapshot_builder.h +57 -0
- package/src/headers/22/node_snapshotable.h +174 -0
- package/src/headers/{18 → 22}/node_sockaddr.h +2 -2
- package/src/headers/{16 → 22}/node_stat_watcher.h +2 -1
- package/src/headers/22/node_threadsafe_cow-inl.h +54 -0
- package/src/headers/22/node_threadsafe_cow.h +105 -0
- package/src/headers/22/node_union_bytes.h +81 -0
- package/src/headers/22/node_url.h +96 -0
- package/src/headers/22/node_v8.h +77 -0
- package/src/headers/{14 → 22}/node_v8_platform-inl.h +17 -6
- package/src/headers/{18 → 22}/node_version.h +20 -8
- package/src/headers/22/node_wasi.h +185 -0
- package/src/headers/{14 → 22}/node_watchdog.h +2 -0
- package/src/headers/{18 → 22}/node_worker.h +7 -2
- package/src/headers/22/permission/child_process_permission.h +31 -0
- package/src/headers/22/permission/fs_permission.h +167 -0
- package/src/headers/22/permission/inspector_permission.h +31 -0
- package/src/headers/22/permission/permission.h +99 -0
- package/src/headers/22/permission/permission_base.h +60 -0
- package/src/headers/22/permission/wasi_permission.h +31 -0
- package/src/headers/22/permission/worker_permission.h +31 -0
- package/src/headers/{16 → 22}/req_wrap-inl.h +7 -6
- package/src/headers/{14 → 22}/spawn_sync.h +3 -3
- package/src/headers/{18 → 22}/stream_base-inl.h +0 -135
- package/src/headers/{18 → 22}/stream_base.h +35 -16
- package/src/headers/{18 → 22}/stream_pipe.h +3 -4
- package/src/headers/{16 → 22}/stream_wrap.h +2 -1
- package/src/headers/{18 → 22}/string_bytes.h +5 -14
- package/src/headers/{14 → 22}/string_decoder-inl.h +0 -6
- package/src/headers/{16 → 22}/string_decoder.h +0 -1
- package/src/headers/{18 → 22}/tcp_wrap.h +1 -1
- package/src/headers/{18 → 22}/threadpoolwork-inl.h +14 -1
- package/src/headers/22/timers.h +76 -0
- package/src/headers/{18 → 22}/tracing/trace_event.h +7 -5
- package/src/headers/{16 → 22}/udp_wrap.h +8 -5
- package/src/headers/22/undici_version.h +6 -0
- package/src/headers/{18 → 22}/util-inl.h +97 -127
- package/src/headers/{18 → 22}/util.h +293 -106
- package/src/headers/{18 → 22}/v8-fast-api-calls.h +103 -58
- package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
- package/dist/bindings/cws_darwin_x64_node83.node +0 -0
- package/dist/bindings/cws_darwin_x64_node93.node +0 -0
- package/dist/bindings/cws_linux_arm64_node83.node +0 -0
- package/dist/bindings/cws_linux_arm64_node93.node +0 -0
- package/dist/bindings/cws_linux_x64_node83.node +0 -0
- package/dist/bindings/cws_linux_x64_node93.node +0 -0
- package/src/headers/14/aliased_buffer.h +0 -263
- package/src/headers/14/allocated_buffer-inl.h +0 -110
- package/src/headers/14/allocated_buffer.h +0 -73
- package/src/headers/14/async_wrap-inl.h +0 -94
- package/src/headers/14/async_wrap.h +0 -230
- package/src/headers/14/base64.h +0 -183
- package/src/headers/14/base_object-inl.h +0 -371
- package/src/headers/14/base_object.h +0 -281
- package/src/headers/14/callback_queue-inl.h +0 -97
- package/src/headers/14/callback_queue.h +0 -78
- package/src/headers/14/debug_utils-inl.h +0 -223
- package/src/headers/14/debug_utils.h +0 -181
- package/src/headers/14/env.h +0 -1388
- package/src/headers/14/handle_wrap.h +0 -117
- package/src/headers/14/histogram-inl.h +0 -83
- package/src/headers/14/histogram.h +0 -98
- package/src/headers/14/inspector_agent.h +0 -149
- package/src/headers/14/inspector_profiler.h +0 -137
- package/src/headers/14/js_native_api.h +0 -544
- package/src/headers/14/js_native_api_types.h +0 -143
- package/src/headers/14/js_native_api_v8.h +0 -301
- package/src/headers/14/js_native_api_v8_internals.h +0 -38
- package/src/headers/14/json_utils.h +0 -161
- package/src/headers/14/memory_tracker-inl.h +0 -355
- package/src/headers/14/module_wrap.h +0 -99
- package/src/headers/14/node.h +0 -1032
- package/src/headers/14/node_api.h +0 -255
- package/src/headers/14/node_api_types.h +0 -44
- package/src/headers/14/node_binding.h +0 -99
- package/src/headers/14/node_buffer.h +0 -92
- package/src/headers/14/node_constants.h +0 -84
- package/src/headers/14/node_context_data.h +0 -44
- package/src/headers/14/node_contextify.h +0 -161
- package/src/headers/14/node_crypto.h +0 -865
- package/src/headers/14/node_crypto_bio.h +0 -195
- package/src/headers/14/node_crypto_clienthello-inl.h +0 -91
- package/src/headers/14/node_crypto_clienthello.h +0 -132
- package/src/headers/14/node_crypto_common.h +0 -138
- package/src/headers/14/node_crypto_groups.h +0 -415
- package/src/headers/14/node_dtrace.h +0 -86
- package/src/headers/14/node_errors.h +0 -214
- package/src/headers/14/node_file-inl.h +0 -306
- package/src/headers/14/node_file.h +0 -417
- package/src/headers/14/node_http2.h +0 -1191
- package/src/headers/14/node_http2_state.h +0 -149
- package/src/headers/14/node_http_common-inl.h +0 -194
- package/src/headers/14/node_http_common.h +0 -529
- package/src/headers/14/node_i18n.h +0 -144
- package/src/headers/14/node_internals.h +0 -405
- package/src/headers/14/node_main_instance.h +0 -96
- package/src/headers/14/node_mem.h +0 -45
- package/src/headers/14/node_messaging.h +0 -303
- package/src/headers/14/node_metadata.h +0 -109
- package/src/headers/14/node_mutex.h +0 -247
- package/src/headers/14/node_native_module.h +0 -101
- package/src/headers/14/node_native_module_env.h +0 -66
- package/src/headers/14/node_options-inl.h +0 -451
- package/src/headers/14/node_options.h +0 -481
- package/src/headers/14/node_perf.h +0 -181
- package/src/headers/14/node_perf_common.h +0 -97
- package/src/headers/14/node_platform.h +0 -189
- package/src/headers/14/node_process.h +0 -40
- package/src/headers/14/node_report.h +0 -47
- package/src/headers/14/node_revert.h +0 -72
- package/src/headers/14/node_root_certs.h +0 -3458
- package/src/headers/14/node_sockaddr-inl.h +0 -170
- package/src/headers/14/node_sockaddr.h +0 -123
- package/src/headers/14/node_stat_watcher.h +0 -70
- package/src/headers/14/node_union_bytes.h +0 -103
- package/src/headers/14/node_url.h +0 -188
- package/src/headers/14/node_version.h +0 -98
- package/src/headers/14/node_wasi.h +0 -108
- package/src/headers/14/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/14/node_win32_etw_provider.h +0 -99
- package/src/headers/14/node_worker.h +0 -141
- package/src/headers/14/pipe_wrap.h +0 -78
- package/src/headers/14/req_wrap-inl.h +0 -170
- package/src/headers/14/req_wrap.h +0 -77
- package/src/headers/14/stream_base-inl.h +0 -275
- package/src/headers/14/stream_base.h +0 -434
- package/src/headers/14/stream_pipe.h +0 -73
- package/src/headers/14/stream_wrap.h +0 -130
- package/src/headers/14/string_bytes.h +0 -129
- package/src/headers/14/string_decoder.h +0 -50
- package/src/headers/14/string_search.h +0 -638
- package/src/headers/14/tcp_wrap.h +0 -101
- package/src/headers/14/threadpoolwork-inl.h +0 -57
- package/src/headers/14/tls_wrap.h +0 -222
- package/src/headers/14/tracing/agent.h +0 -195
- package/src/headers/14/tracing/node_trace_buffer.h +0 -83
- package/src/headers/14/tracing/node_trace_writer.h +0 -75
- package/src/headers/14/tracing/trace_event.h +0 -720
- package/src/headers/14/tracing/traced_value.h +0 -70
- package/src/headers/14/tty_wrap.h +0 -64
- package/src/headers/14/udp_wrap.h +0 -227
- package/src/headers/14/util-inl.h +0 -566
- package/src/headers/14/util.h +0 -804
- package/src/headers/14/v8abbr.h +0 -124
- package/src/headers/16/aliased_buffer.h +0 -315
- package/src/headers/16/aliased_struct-inl.h +0 -54
- package/src/headers/16/aliased_struct.h +0 -63
- package/src/headers/16/allocated_buffer-inl.h +0 -110
- package/src/headers/16/allocated_buffer.h +0 -73
- package/src/headers/16/async_wrap-inl.h +0 -94
- package/src/headers/16/async_wrap.h +0 -246
- package/src/headers/16/base64-inl.h +0 -189
- package/src/headers/16/base64.h +0 -69
- package/src/headers/16/base_object.h +0 -294
- package/src/headers/16/connect_wrap.h +0 -26
- package/src/headers/16/connection_wrap.h +0 -30
- package/src/headers/16/crypto/crypto_aes.h +0 -89
- package/src/headers/16/crypto/crypto_bio.h +0 -194
- package/src/headers/16/crypto/crypto_cipher.h +0 -286
- package/src/headers/16/crypto/crypto_clienthello-inl.h +0 -90
- package/src/headers/16/crypto/crypto_clienthello.h +0 -131
- package/src/headers/16/crypto/crypto_common.h +0 -187
- package/src/headers/16/crypto/crypto_context.h +0 -147
- package/src/headers/16/crypto/crypto_dh.h +0 -157
- package/src/headers/16/crypto/crypto_dsa.h +0 -76
- package/src/headers/16/crypto/crypto_ec.h +0 -169
- package/src/headers/16/crypto/crypto_groups.h +0 -415
- package/src/headers/16/crypto/crypto_hash.h +0 -89
- package/src/headers/16/crypto/crypto_hkdf.h +0 -66
- package/src/headers/16/crypto/crypto_hmac.h +0 -94
- package/src/headers/16/crypto/crypto_keygen.h +0 -301
- package/src/headers/16/crypto/crypto_keys.h +0 -412
- package/src/headers/16/crypto/crypto_pbkdf2.h +0 -76
- package/src/headers/16/crypto/crypto_random.h +0 -130
- package/src/headers/16/crypto/crypto_rsa.h +0 -141
- package/src/headers/16/crypto/crypto_scrypt.h +0 -87
- package/src/headers/16/crypto/crypto_sig.h +0 -167
- package/src/headers/16/crypto/crypto_spkac.h +0 -20
- package/src/headers/16/crypto/crypto_timing.h +0 -20
- package/src/headers/16/crypto/crypto_tls.h +0 -292
- package/src/headers/16/crypto/crypto_util.h +0 -736
- package/src/headers/16/crypto/crypto_x509.h +0 -141
- package/src/headers/16/debug_utils.h +0 -184
- package/src/headers/16/diagnosticfilename-inl.h +0 -33
- package/src/headers/16/env-inl.h +0 -1277
- package/src/headers/16/env.h +0 -1629
- package/src/headers/16/handle_wrap.h +0 -121
- package/src/headers/16/histogram-inl.h +0 -88
- package/src/headers/16/histogram.h +0 -216
- package/src/headers/16/inspector_io.h +0 -78
- package/src/headers/16/inspector_socket.h +0 -60
- package/src/headers/16/inspector_socket_server.h +0 -110
- package/src/headers/16/js_native_api.h +0 -561
- package/src/headers/16/js_native_api_types.h +0 -160
- package/src/headers/16/js_native_api_v8.h +0 -451
- package/src/headers/16/js_native_api_v8_internals.h +0 -39
- package/src/headers/16/js_stream.h +0 -52
- package/src/headers/16/memory_tracker-inl.h +0 -356
- package/src/headers/16/memory_tracker.h +0 -284
- package/src/headers/16/node.d +0 -315
- package/src/headers/16/node.h +0 -1132
- package/src/headers/16/node.stp +0 -146
- package/src/headers/16/node_api.h +0 -275
- package/src/headers/16/node_api_internals.h +0 -30
- package/src/headers/16/node_api_types.h +0 -50
- package/src/headers/16/node_binding.h +0 -99
- package/src/headers/16/node_blob.h +0 -191
- package/src/headers/16/node_bob-inl.h +0 -37
- package/src/headers/16/node_bob.h +0 -111
- package/src/headers/16/node_buffer.h +0 -92
- package/src/headers/16/node_constants.h +0 -84
- package/src/headers/16/node_context_data.h +0 -44
- package/src/headers/16/node_contextify.h +0 -196
- package/src/headers/16/node_dir.h +0 -52
- package/src/headers/16/node_dtrace.h +0 -86
- package/src/headers/16/node_errors.h +0 -277
- package/src/headers/16/node_external_reference.h +0 -129
- package/src/headers/16/node_file-inl.h +0 -306
- package/src/headers/16/node_http2.h +0 -1140
- package/src/headers/16/node_http_common-inl.h +0 -200
- package/src/headers/16/node_http_common.h +0 -531
- package/src/headers/16/node_internals.h +0 -421
- package/src/headers/16/node_main_instance.h +0 -103
- package/src/headers/16/node_mem-inl.h +0 -112
- package/src/headers/16/node_messaging.h +0 -373
- package/src/headers/16/node_metadata.h +0 -122
- package/src/headers/16/node_native_module.h +0 -101
- package/src/headers/16/node_native_module_env.h +0 -68
- package/src/headers/16/node_object_wrap.h +0 -132
- package/src/headers/16/node_options-inl.h +0 -477
- package/src/headers/16/node_options.h +0 -494
- package/src/headers/16/node_perf.h +0 -185
- package/src/headers/16/node_perf_common.h +0 -89
- package/src/headers/16/node_platform.h +0 -192
- package/src/headers/16/node_process.h +0 -43
- package/src/headers/16/node_provider.d +0 -80
- package/src/headers/16/node_snapshotable.h +0 -137
- package/src/headers/16/node_sockaddr-inl.h +0 -266
- package/src/headers/16/node_sockaddr.h +0 -405
- package/src/headers/16/node_union_bytes.h +0 -103
- package/src/headers/16/node_url.h +0 -205
- package/src/headers/16/node_v8.h +0 -41
- package/src/headers/16/node_v8_platform-inl.h +0 -194
- package/src/headers/16/node_version.h +0 -98
- package/src/headers/16/node_wasi.h +0 -108
- package/src/headers/16/node_watchdog.h +0 -152
- package/src/headers/16/node_win32_etw_provider-inl.h +0 -288
- package/src/headers/16/node_win32_etw_provider.h +0 -99
- package/src/headers/16/node_worker.h +0 -145
- package/src/headers/16/req_wrap.h +0 -77
- package/src/headers/16/spawn_sync.h +0 -242
- package/src/headers/16/stream_base-inl.h +0 -303
- package/src/headers/16/stream_base.h +0 -454
- package/src/headers/16/stream_pipe.h +0 -73
- package/src/headers/16/string_bytes.h +0 -122
- package/src/headers/16/string_decoder-inl.h +0 -37
- package/src/headers/16/string_search.h +0 -638
- package/src/headers/16/tcp_wrap.h +0 -103
- package/src/headers/16/threadpoolwork-inl.h +0 -57
- package/src/headers/16/timer_wrap.h +0 -84
- package/src/headers/16/tracing/agent.h +0 -195
- package/src/headers/16/tracing/node_trace_buffer.h +0 -83
- package/src/headers/16/tracing/node_trace_writer.h +0 -75
- package/src/headers/16/tracing/trace_event.h +0 -720
- package/src/headers/16/tracing/trace_event_common.h +0 -1109
- package/src/headers/16/tracing/traced_value.h +0 -70
- package/src/headers/16/tty_wrap.h +0 -66
- package/src/headers/16/util-inl.h +0 -575
- package/src/headers/16/util.h +0 -824
- package/src/headers/16/v8abbr.h +0 -123
- package/src/headers/16/v8ustack.d +0 -695
- package/src/headers/18/aliased_buffer.h +0 -315
- package/src/headers/18/aliased_struct-inl.h +0 -54
- package/src/headers/18/aliased_struct.h +0 -63
- package/src/headers/18/base64-inl.h +0 -189
- package/src/headers/18/base64.h +0 -69
- package/src/headers/18/base_object-inl.h +0 -374
- package/src/headers/18/callback_queue-inl.h +0 -97
- package/src/headers/18/callback_queue.h +0 -78
- package/src/headers/18/cares_wrap.h +0 -523
- package/src/headers/18/connect_wrap.h +0 -26
- package/src/headers/18/connection_wrap.h +0 -30
- package/src/headers/18/crypto/crypto_aes.h +0 -89
- package/src/headers/18/crypto/crypto_bio.h +0 -194
- package/src/headers/18/crypto/crypto_cipher.h +0 -291
- package/src/headers/18/crypto/crypto_clienthello-inl.h +0 -90
- package/src/headers/18/crypto/crypto_common.h +0 -151
- package/src/headers/18/crypto/crypto_dh.h +0 -156
- package/src/headers/18/crypto/crypto_dsa.h +0 -77
- package/src/headers/18/crypto/crypto_ec.h +0 -170
- package/src/headers/18/crypto/crypto_groups.h +0 -415
- package/src/headers/18/crypto/crypto_hash.h +0 -89
- package/src/headers/18/crypto/crypto_hkdf.h +0 -65
- package/src/headers/18/crypto/crypto_hmac.h +0 -94
- package/src/headers/18/crypto/crypto_keygen.h +0 -305
- package/src/headers/18/crypto/crypto_pbkdf2.h +0 -76
- package/src/headers/18/crypto/crypto_random.h +0 -130
- package/src/headers/18/crypto/crypto_rsa.h +0 -141
- package/src/headers/18/crypto/crypto_scrypt.h +0 -87
- package/src/headers/18/crypto/crypto_sig.h +0 -168
- package/src/headers/18/crypto/crypto_spkac.h +0 -21
- package/src/headers/18/crypto/crypto_timing.h +0 -20
- package/src/headers/18/crypto/crypto_x509.h +0 -143
- package/src/headers/18/debug_utils-inl.h +0 -223
- package/src/headers/18/diagnosticfilename-inl.h +0 -33
- package/src/headers/18/env-inl.h +0 -1308
- package/src/headers/18/env.h +0 -1667
- package/src/headers/18/inspector_agent.h +0 -144
- package/src/headers/18/inspector_io.h +0 -78
- package/src/headers/18/inspector_profiler.h +0 -149
- package/src/headers/18/inspector_socket.h +0 -60
- package/src/headers/18/inspector_socket_server.h +0 -110
- package/src/headers/18/js_stream.h +0 -52
- package/src/headers/18/json_utils.h +0 -161
- package/src/headers/18/memory_tracker.h +0 -284
- package/src/headers/18/module_wrap.h +0 -116
- package/src/headers/18/node_binding.h +0 -99
- package/src/headers/18/node_context_data.h +0 -44
- package/src/headers/18/node_contextify.h +0 -196
- package/src/headers/18/node_crypto.h +0 -57
- package/src/headers/18/node_dir.h +0 -52
- package/src/headers/18/node_dtrace.h +0 -86
- package/src/headers/18/node_external_reference.h +0 -145
- package/src/headers/18/node_file.h +0 -426
- package/src/headers/18/node_http2_state.h +0 -149
- package/src/headers/18/node_i18n.h +0 -145
- package/src/headers/18/node_mem-inl.h +0 -112
- package/src/headers/18/node_mem.h +0 -45
- package/src/headers/18/node_mutex.h +0 -323
- package/src/headers/18/node_native_module.h +0 -109
- package/src/headers/18/node_native_module_env.h +0 -71
- package/src/headers/18/node_object_wrap.h +0 -132
- package/src/headers/18/node_process-inl.h +0 -26
- package/src/headers/18/node_report.h +0 -47
- package/src/headers/18/node_revert.h +0 -82
- package/src/headers/18/node_root_certs.h +0 -3246
- package/src/headers/18/node_snapshot_builder.h +0 -43
- package/src/headers/18/node_snapshotable.h +0 -130
- package/src/headers/18/node_stat_watcher.h +0 -72
- package/src/headers/18/node_union_bytes.h +0 -103
- package/src/headers/18/node_url.h +0 -205
- package/src/headers/18/node_v8.h +0 -41
- package/src/headers/18/node_v8_platform-inl.h +0 -194
- package/src/headers/18/node_wasi.h +0 -108
- package/src/headers/18/node_watchdog.h +0 -152
- package/src/headers/18/node_win32_etw_provider-inl.h +0 -288
- package/src/headers/18/node_win32_etw_provider.h +0 -99
- package/src/headers/18/pipe_wrap.h +0 -80
- package/src/headers/18/req_wrap-inl.h +0 -170
- package/src/headers/18/spawn_sync.h +0 -242
- package/src/headers/18/stream_wrap.h +0 -133
- package/src/headers/18/string_decoder-inl.h +0 -37
- package/src/headers/18/string_decoder.h +0 -50
- package/src/headers/18/string_search.h +0 -638
- package/src/headers/18/tracing/node_trace_buffer.h +0 -83
- package/src/headers/18/tracing/node_trace_writer.h +0 -75
- package/src/headers/18/tracing/trace_event_common.h +0 -1109
- package/src/headers/18/tracing/traced_value.h +0 -70
- package/src/headers/18/udp_wrap.h +0 -227
- package/src/headers/18/v8abbr.h +0 -123
- /package/src/headers/{14 → 22}/aliased_struct-inl.h +0 -0
- /package/src/headers/{14 → 22}/aliased_struct.h +0 -0
- /package/src/headers/{16 → 22}/callback_queue-inl.h +0 -0
- /package/src/headers/{14 → 22}/connect_wrap.h +0 -0
- /package/src/headers/{14 → 22}/connection_wrap.h +0 -0
- /package/src/headers/{14 → 22}/diagnosticfilename-inl.h +0 -0
- /package/src/headers/{18 → 22}/histogram-inl.h +0 -0
- /package/src/headers/{14 → 22}/inspector_io.h +0 -0
- /package/src/headers/{14 → 22}/inspector_socket.h +0 -0
- /package/src/headers/{14 → 22}/inspector_socket_server.h +0 -0
- /package/src/headers/{14 → 22}/js_stream.h +0 -0
- /package/src/headers/{14 → 22}/node_dir.h +0 -0
- /package/src/headers/{14 → 22}/node_mem-inl.h +0 -0
- /package/src/headers/{16 → 22}/node_mem.h +0 -0
- /package/src/headers/{16 → 22}/node_mutex.h +0 -0
- /package/src/headers/{14 → 22}/node_object_wrap.h +0 -0
- /package/src/headers/{16 → 22}/node_process-inl.h +0 -0
- /package/src/headers/{18 → 22}/node_sockaddr-inl.h +0 -0
- /package/src/headers/{18 → 22}/node_wasm_web_api.h +0 -0
- /package/src/headers/{16 → 22}/pipe_wrap.h +0 -0
- /package/src/headers/{18 → 22}/req_wrap.h +0 -0
- /package/src/headers/{18 → 22}/timer_wrap-inl.h +0 -0
- /package/src/headers/{18 → 22}/timer_wrap.h +0 -0
- /package/src/headers/{18 → 22}/tracing/agent.h +0 -0
- /package/src/headers/{14 → 22}/tracing/trace_event_common.h +0 -0
- /package/src/headers/{18 → 22}/tty_wrap.h +0 -0
|
@@ -1,374 +0,0 @@
|
|
|
1
|
-
// Copyright Joyent, Inc. and other Node contributors.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
4
|
-
// copy of this software and associated documentation files (the
|
|
5
|
-
// "Software"), to deal in the Software without restriction, including
|
|
6
|
-
// without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
8
|
-
// persons to whom the Software is furnished to do so, subject to the
|
|
9
|
-
// following conditions:
|
|
10
|
-
//
|
|
11
|
-
// The above copyright notice and this permission notice shall be included
|
|
12
|
-
// in all copies or substantial portions of the Software.
|
|
13
|
-
//
|
|
14
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
15
|
-
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
17
|
-
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
18
|
-
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
19
|
-
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
20
|
-
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
21
|
-
|
|
22
|
-
#ifndef SRC_BASE_OBJECT_INL_H_
|
|
23
|
-
#define SRC_BASE_OBJECT_INL_H_
|
|
24
|
-
|
|
25
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
26
|
-
|
|
27
|
-
#include "base_object.h"
|
|
28
|
-
#include "env-inl.h"
|
|
29
|
-
#include "util.h"
|
|
30
|
-
|
|
31
|
-
#include "v8.h"
|
|
32
|
-
|
|
33
|
-
namespace node {
|
|
34
|
-
|
|
35
|
-
BaseObject::BaseObject(Environment* env, v8::Local<v8::Object> object)
|
|
36
|
-
: persistent_handle_(env->isolate(), object), env_(env) {
|
|
37
|
-
CHECK_EQ(false, object.IsEmpty());
|
|
38
|
-
CHECK_GT(object->InternalFieldCount(), 0);
|
|
39
|
-
object->SetAlignedPointerInInternalField(
|
|
40
|
-
BaseObject::kSlot,
|
|
41
|
-
static_cast<void*>(this));
|
|
42
|
-
env->AddCleanupHook(DeleteMe, static_cast<void*>(this));
|
|
43
|
-
env->modify_base_object_count(1);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
BaseObject::~BaseObject() {
|
|
47
|
-
env()->modify_base_object_count(-1);
|
|
48
|
-
env()->RemoveCleanupHook(DeleteMe, static_cast<void*>(this));
|
|
49
|
-
|
|
50
|
-
if (UNLIKELY(has_pointer_data())) {
|
|
51
|
-
PointerData* metadata = pointer_data();
|
|
52
|
-
CHECK_EQ(metadata->strong_ptr_count, 0);
|
|
53
|
-
metadata->self = nullptr;
|
|
54
|
-
if (metadata->weak_ptr_count == 0)
|
|
55
|
-
delete metadata;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
if (persistent_handle_.IsEmpty()) {
|
|
59
|
-
// This most likely happened because the weak callback below cleared it.
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
{
|
|
64
|
-
v8::HandleScope handle_scope(env()->isolate());
|
|
65
|
-
object()->SetAlignedPointerInInternalField(BaseObject::kSlot, nullptr);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
void BaseObject::Detach() {
|
|
70
|
-
CHECK_GT(pointer_data()->strong_ptr_count, 0);
|
|
71
|
-
pointer_data()->is_detached = true;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
v8::Global<v8::Object>& BaseObject::persistent() {
|
|
75
|
-
return persistent_handle_;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
v8::Local<v8::Object> BaseObject::object() const {
|
|
80
|
-
return PersistentToLocal::Default(env()->isolate(), persistent_handle_);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
v8::Local<v8::Object> BaseObject::object(v8::Isolate* isolate) const {
|
|
84
|
-
v8::Local<v8::Object> handle = object();
|
|
85
|
-
|
|
86
|
-
DCHECK_EQ(handle->GetCreationContext().ToLocalChecked()->GetIsolate(),
|
|
87
|
-
isolate);
|
|
88
|
-
DCHECK_EQ(env()->isolate(), isolate);
|
|
89
|
-
|
|
90
|
-
return handle;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
Environment* BaseObject::env() const {
|
|
94
|
-
return env_;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
BaseObject* BaseObject::FromJSObject(v8::Local<v8::Value> value) {
|
|
98
|
-
v8::Local<v8::Object> obj = value.As<v8::Object>();
|
|
99
|
-
DCHECK_GE(obj->InternalFieldCount(), BaseObject::kSlot);
|
|
100
|
-
return static_cast<BaseObject*>(
|
|
101
|
-
obj->GetAlignedPointerFromInternalField(BaseObject::kSlot));
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
template <typename T>
|
|
106
|
-
T* BaseObject::FromJSObject(v8::Local<v8::Value> object) {
|
|
107
|
-
return static_cast<T*>(FromJSObject(object));
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
void BaseObject::MakeWeak() {
|
|
112
|
-
if (has_pointer_data()) {
|
|
113
|
-
pointer_data()->wants_weak_jsobj = true;
|
|
114
|
-
if (pointer_data()->strong_ptr_count > 0) return;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
persistent_handle_.SetWeak(
|
|
118
|
-
this,
|
|
119
|
-
[](const v8::WeakCallbackInfo<BaseObject>& data) {
|
|
120
|
-
BaseObject* obj = data.GetParameter();
|
|
121
|
-
// Clear the persistent handle so that ~BaseObject() doesn't attempt
|
|
122
|
-
// to mess with internal fields, since the JS object may have
|
|
123
|
-
// transitioned into an invalid state.
|
|
124
|
-
// Refs: https://github.com/nodejs/node/issues/18897
|
|
125
|
-
obj->persistent_handle_.Reset();
|
|
126
|
-
CHECK_IMPLIES(obj->has_pointer_data(),
|
|
127
|
-
obj->pointer_data()->strong_ptr_count == 0);
|
|
128
|
-
obj->OnGCCollect();
|
|
129
|
-
}, v8::WeakCallbackType::kParameter);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
void BaseObject::OnGCCollect() {
|
|
133
|
-
delete this;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
void BaseObject::ClearWeak() {
|
|
137
|
-
if (has_pointer_data())
|
|
138
|
-
pointer_data()->wants_weak_jsobj = false;
|
|
139
|
-
|
|
140
|
-
persistent_handle_.ClearWeak();
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
bool BaseObject::IsWeakOrDetached() const {
|
|
144
|
-
if (persistent_handle_.IsWeak()) return true;
|
|
145
|
-
|
|
146
|
-
if (!has_pointer_data()) return false;
|
|
147
|
-
const PointerData* pd = const_cast<BaseObject*>(this)->pointer_data();
|
|
148
|
-
return pd->wants_weak_jsobj || pd->is_detached;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
void BaseObject::LazilyInitializedJSTemplateConstructor(
|
|
152
|
-
const v8::FunctionCallbackInfo<v8::Value>& args) {
|
|
153
|
-
DCHECK(args.IsConstructCall());
|
|
154
|
-
DCHECK_GT(args.This()->InternalFieldCount(), 0);
|
|
155
|
-
args.This()->SetAlignedPointerInInternalField(BaseObject::kSlot, nullptr);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
v8::Local<v8::FunctionTemplate>
|
|
159
|
-
BaseObject::MakeLazilyInitializedJSTemplate(Environment* env) {
|
|
160
|
-
v8::Local<v8::FunctionTemplate> t =
|
|
161
|
-
env->NewFunctionTemplate(LazilyInitializedJSTemplateConstructor);
|
|
162
|
-
t->Inherit(BaseObject::GetConstructorTemplate(env));
|
|
163
|
-
t->InstanceTemplate()->SetInternalFieldCount(
|
|
164
|
-
BaseObject::kInternalFieldCount);
|
|
165
|
-
return t;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
template <int Field>
|
|
169
|
-
void BaseObject::InternalFieldGet(
|
|
170
|
-
v8::Local<v8::String> property,
|
|
171
|
-
const v8::PropertyCallbackInfo<v8::Value>& info) {
|
|
172
|
-
info.GetReturnValue().Set(info.This()->GetInternalField(Field));
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
template <int Field, bool (v8::Value::* typecheck)() const>
|
|
176
|
-
void BaseObject::InternalFieldSet(v8::Local<v8::String> property,
|
|
177
|
-
v8::Local<v8::Value> value,
|
|
178
|
-
const v8::PropertyCallbackInfo<void>& info) {
|
|
179
|
-
// This could be e.g. value->IsFunction().
|
|
180
|
-
CHECK(((*value)->*typecheck)());
|
|
181
|
-
info.This()->SetInternalField(Field, value);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
bool BaseObject::has_pointer_data() const {
|
|
185
|
-
return pointer_data_ != nullptr;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
BaseObject::PointerData* BaseObject::pointer_data() {
|
|
189
|
-
if (!has_pointer_data()) {
|
|
190
|
-
PointerData* metadata = new PointerData();
|
|
191
|
-
metadata->wants_weak_jsobj = persistent_handle_.IsWeak();
|
|
192
|
-
metadata->self = this;
|
|
193
|
-
pointer_data_ = metadata;
|
|
194
|
-
}
|
|
195
|
-
CHECK(has_pointer_data());
|
|
196
|
-
return pointer_data_;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
void BaseObject::decrease_refcount() {
|
|
200
|
-
CHECK(has_pointer_data());
|
|
201
|
-
PointerData* metadata = pointer_data();
|
|
202
|
-
CHECK_GT(metadata->strong_ptr_count, 0);
|
|
203
|
-
unsigned int new_refcount = --metadata->strong_ptr_count;
|
|
204
|
-
if (new_refcount == 0) {
|
|
205
|
-
if (metadata->is_detached) {
|
|
206
|
-
OnGCCollect();
|
|
207
|
-
} else if (metadata->wants_weak_jsobj && !persistent_handle_.IsEmpty()) {
|
|
208
|
-
MakeWeak();
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
void BaseObject::increase_refcount() {
|
|
214
|
-
unsigned int prev_refcount = pointer_data()->strong_ptr_count++;
|
|
215
|
-
if (prev_refcount == 0 && !persistent_handle_.IsEmpty())
|
|
216
|
-
persistent_handle_.ClearWeak();
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
template <typename T, bool kIsWeak>
|
|
220
|
-
BaseObject::PointerData*
|
|
221
|
-
BaseObjectPtrImpl<T, kIsWeak>::pointer_data() const {
|
|
222
|
-
if (kIsWeak) {
|
|
223
|
-
return data_.pointer_data;
|
|
224
|
-
}
|
|
225
|
-
if (get_base_object() == nullptr) {
|
|
226
|
-
return nullptr;
|
|
227
|
-
}
|
|
228
|
-
return get_base_object()->pointer_data();
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
template <typename T, bool kIsWeak>
|
|
232
|
-
BaseObject* BaseObjectPtrImpl<T, kIsWeak>::get_base_object() const {
|
|
233
|
-
if (kIsWeak) {
|
|
234
|
-
if (pointer_data() == nullptr) {
|
|
235
|
-
return nullptr;
|
|
236
|
-
}
|
|
237
|
-
return pointer_data()->self;
|
|
238
|
-
}
|
|
239
|
-
return data_.target;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
template <typename T, bool kIsWeak>
|
|
243
|
-
BaseObjectPtrImpl<T, kIsWeak>::~BaseObjectPtrImpl() {
|
|
244
|
-
if (kIsWeak) {
|
|
245
|
-
if (pointer_data() != nullptr &&
|
|
246
|
-
--pointer_data()->weak_ptr_count == 0 &&
|
|
247
|
-
pointer_data()->self == nullptr) {
|
|
248
|
-
delete pointer_data();
|
|
249
|
-
}
|
|
250
|
-
} else if (get() != nullptr) {
|
|
251
|
-
get()->decrease_refcount();
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
template <typename T, bool kIsWeak>
|
|
256
|
-
BaseObjectPtrImpl<T, kIsWeak>::BaseObjectPtrImpl() {
|
|
257
|
-
data_.target = nullptr;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
template <typename T, bool kIsWeak>
|
|
261
|
-
BaseObjectPtrImpl<T, kIsWeak>::BaseObjectPtrImpl(T* target)
|
|
262
|
-
: BaseObjectPtrImpl() {
|
|
263
|
-
if (target == nullptr) return;
|
|
264
|
-
if (kIsWeak) {
|
|
265
|
-
data_.pointer_data = target->pointer_data();
|
|
266
|
-
CHECK_NOT_NULL(pointer_data());
|
|
267
|
-
pointer_data()->weak_ptr_count++;
|
|
268
|
-
} else {
|
|
269
|
-
data_.target = target;
|
|
270
|
-
CHECK_NOT_NULL(pointer_data());
|
|
271
|
-
get()->increase_refcount();
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
template <typename T, bool kIsWeak>
|
|
276
|
-
template <typename U, bool kW>
|
|
277
|
-
BaseObjectPtrImpl<T, kIsWeak>::BaseObjectPtrImpl(
|
|
278
|
-
const BaseObjectPtrImpl<U, kW>& other)
|
|
279
|
-
: BaseObjectPtrImpl(other.get()) {}
|
|
280
|
-
|
|
281
|
-
template <typename T, bool kIsWeak>
|
|
282
|
-
BaseObjectPtrImpl<T, kIsWeak>::BaseObjectPtrImpl(const BaseObjectPtrImpl& other)
|
|
283
|
-
: BaseObjectPtrImpl(other.get()) {}
|
|
284
|
-
|
|
285
|
-
template <typename T, bool kIsWeak>
|
|
286
|
-
template <typename U, bool kW>
|
|
287
|
-
BaseObjectPtrImpl<T, kIsWeak>& BaseObjectPtrImpl<T, kIsWeak>::operator=(
|
|
288
|
-
const BaseObjectPtrImpl<U, kW>& other) {
|
|
289
|
-
if (other.get() == get()) return *this;
|
|
290
|
-
this->~BaseObjectPtrImpl();
|
|
291
|
-
return *new (this) BaseObjectPtrImpl(other);
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
template <typename T, bool kIsWeak>
|
|
295
|
-
BaseObjectPtrImpl<T, kIsWeak>& BaseObjectPtrImpl<T, kIsWeak>::operator=(
|
|
296
|
-
const BaseObjectPtrImpl& other) {
|
|
297
|
-
if (other.get() == get()) return *this;
|
|
298
|
-
this->~BaseObjectPtrImpl();
|
|
299
|
-
return *new (this) BaseObjectPtrImpl(other);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
template <typename T, bool kIsWeak>
|
|
303
|
-
BaseObjectPtrImpl<T, kIsWeak>::BaseObjectPtrImpl(BaseObjectPtrImpl&& other)
|
|
304
|
-
: data_(other.data_) {
|
|
305
|
-
if (kIsWeak)
|
|
306
|
-
other.data_.target = nullptr;
|
|
307
|
-
else
|
|
308
|
-
other.data_.pointer_data = nullptr;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
template <typename T, bool kIsWeak>
|
|
312
|
-
BaseObjectPtrImpl<T, kIsWeak>& BaseObjectPtrImpl<T, kIsWeak>::operator=(
|
|
313
|
-
BaseObjectPtrImpl&& other) {
|
|
314
|
-
if (&other == this) return *this;
|
|
315
|
-
this->~BaseObjectPtrImpl();
|
|
316
|
-
return *new (this) BaseObjectPtrImpl(std::move(other));
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
template <typename T, bool kIsWeak>
|
|
320
|
-
void BaseObjectPtrImpl<T, kIsWeak>::reset(T* ptr) {
|
|
321
|
-
*this = BaseObjectPtrImpl(ptr);
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
template <typename T, bool kIsWeak>
|
|
325
|
-
T* BaseObjectPtrImpl<T, kIsWeak>::get() const {
|
|
326
|
-
return static_cast<T*>(get_base_object());
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
template <typename T, bool kIsWeak>
|
|
330
|
-
T& BaseObjectPtrImpl<T, kIsWeak>::operator*() const {
|
|
331
|
-
return *get();
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
template <typename T, bool kIsWeak>
|
|
335
|
-
T* BaseObjectPtrImpl<T, kIsWeak>::operator->() const {
|
|
336
|
-
return get();
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
template <typename T, bool kIsWeak>
|
|
340
|
-
BaseObjectPtrImpl<T, kIsWeak>::operator bool() const {
|
|
341
|
-
return get() != nullptr;
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
template <typename T, bool kIsWeak>
|
|
345
|
-
template <typename U, bool kW>
|
|
346
|
-
bool BaseObjectPtrImpl<T, kIsWeak>::operator ==(
|
|
347
|
-
const BaseObjectPtrImpl<U, kW>& other) const {
|
|
348
|
-
return get() == other.get();
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
template <typename T, bool kIsWeak>
|
|
352
|
-
template <typename U, bool kW>
|
|
353
|
-
bool BaseObjectPtrImpl<T, kIsWeak>::operator !=(
|
|
354
|
-
const BaseObjectPtrImpl<U, kW>& other) const {
|
|
355
|
-
return get() != other.get();
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
template <typename T, typename... Args>
|
|
359
|
-
BaseObjectPtr<T> MakeBaseObject(Args&&... args) {
|
|
360
|
-
return BaseObjectPtr<T>(new T(std::forward<Args>(args)...));
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
template <typename T, typename... Args>
|
|
364
|
-
BaseObjectPtr<T> MakeDetachedBaseObject(Args&&... args) {
|
|
365
|
-
BaseObjectPtr<T> target = MakeBaseObject<T>(std::forward<Args>(args)...);
|
|
366
|
-
target->Detach();
|
|
367
|
-
return target;
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
} // namespace node
|
|
371
|
-
|
|
372
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
373
|
-
|
|
374
|
-
#endif // SRC_BASE_OBJECT_INL_H_
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_CALLBACK_QUEUE_INL_H_
|
|
2
|
-
#define SRC_CALLBACK_QUEUE_INL_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "callback_queue.h"
|
|
7
|
-
|
|
8
|
-
namespace node {
|
|
9
|
-
|
|
10
|
-
template <typename R, typename... Args>
|
|
11
|
-
template <typename Fn>
|
|
12
|
-
std::unique_ptr<typename CallbackQueue<R, Args...>::Callback>
|
|
13
|
-
CallbackQueue<R, Args...>::CreateCallback(Fn&& fn, CallbackFlags::Flags flags) {
|
|
14
|
-
return std::make_unique<CallbackImpl<Fn>>(std::move(fn), flags);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
template <typename R, typename... Args>
|
|
18
|
-
std::unique_ptr<typename CallbackQueue<R, Args...>::Callback>
|
|
19
|
-
CallbackQueue<R, Args...>::Shift() {
|
|
20
|
-
std::unique_ptr<Callback> ret = std::move(head_);
|
|
21
|
-
if (ret) {
|
|
22
|
-
head_ = ret->get_next();
|
|
23
|
-
if (!head_)
|
|
24
|
-
tail_ = nullptr; // The queue is now empty.
|
|
25
|
-
size_--;
|
|
26
|
-
}
|
|
27
|
-
return ret;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
template <typename R, typename... Args>
|
|
31
|
-
void CallbackQueue<R, Args...>::Push(std::unique_ptr<Callback> cb) {
|
|
32
|
-
Callback* prev_tail = tail_;
|
|
33
|
-
|
|
34
|
-
size_++;
|
|
35
|
-
tail_ = cb.get();
|
|
36
|
-
if (prev_tail != nullptr)
|
|
37
|
-
prev_tail->set_next(std::move(cb));
|
|
38
|
-
else
|
|
39
|
-
head_ = std::move(cb);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
template <typename R, typename... Args>
|
|
43
|
-
void CallbackQueue<R, Args...>::ConcatMove(CallbackQueue<R, Args...>&& other) {
|
|
44
|
-
size_ += other.size_;
|
|
45
|
-
if (tail_ != nullptr)
|
|
46
|
-
tail_->set_next(std::move(other.head_));
|
|
47
|
-
else
|
|
48
|
-
head_ = std::move(other.head_);
|
|
49
|
-
tail_ = other.tail_;
|
|
50
|
-
other.tail_ = nullptr;
|
|
51
|
-
other.size_ = 0;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
template <typename R, typename... Args>
|
|
55
|
-
size_t CallbackQueue<R, Args...>::size() const {
|
|
56
|
-
return size_.load();
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
template <typename R, typename... Args>
|
|
60
|
-
CallbackQueue<R, Args...>::Callback::Callback(CallbackFlags::Flags flags)
|
|
61
|
-
: flags_(flags) {}
|
|
62
|
-
|
|
63
|
-
template <typename R, typename... Args>
|
|
64
|
-
CallbackFlags::Flags CallbackQueue<R, Args...>::Callback::flags() const {
|
|
65
|
-
return flags_;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
template <typename R, typename... Args>
|
|
69
|
-
std::unique_ptr<typename CallbackQueue<R, Args...>::Callback>
|
|
70
|
-
CallbackQueue<R, Args...>::Callback::get_next() {
|
|
71
|
-
return std::move(next_);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
template <typename R, typename... Args>
|
|
75
|
-
void CallbackQueue<R, Args...>::Callback::set_next(
|
|
76
|
-
std::unique_ptr<Callback> next) {
|
|
77
|
-
next_ = std::move(next);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
template <typename R, typename... Args>
|
|
81
|
-
template <typename Fn>
|
|
82
|
-
CallbackQueue<R, Args...>::CallbackImpl<Fn>::CallbackImpl(
|
|
83
|
-
Fn&& callback, CallbackFlags::Flags flags)
|
|
84
|
-
: Callback(flags),
|
|
85
|
-
callback_(std::move(callback)) {}
|
|
86
|
-
|
|
87
|
-
template <typename R, typename... Args>
|
|
88
|
-
template <typename Fn>
|
|
89
|
-
R CallbackQueue<R, Args...>::CallbackImpl<Fn>::Call(Args... args) {
|
|
90
|
-
return callback_(std::forward<Args>(args)...);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
} // namespace node
|
|
94
|
-
|
|
95
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
96
|
-
|
|
97
|
-
#endif // SRC_CALLBACK_QUEUE_INL_H_
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_CALLBACK_QUEUE_H_
|
|
2
|
-
#define SRC_CALLBACK_QUEUE_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include <atomic>
|
|
7
|
-
|
|
8
|
-
namespace node {
|
|
9
|
-
|
|
10
|
-
namespace CallbackFlags {
|
|
11
|
-
enum Flags {
|
|
12
|
-
kUnrefed = 0,
|
|
13
|
-
kRefed = 1,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
// A queue of C++ functions that take Args... as arguments and return R
|
|
18
|
-
// (this is similar to the signature of std::function).
|
|
19
|
-
// New entries are added using `CreateCallback()`/`Push()`, and removed using
|
|
20
|
-
// `Shift()`.
|
|
21
|
-
// The `refed` flag is left for easier use in situations in which some of these
|
|
22
|
-
// should be run even if nothing else is keeping the event loop alive.
|
|
23
|
-
template <typename R, typename... Args>
|
|
24
|
-
class CallbackQueue {
|
|
25
|
-
public:
|
|
26
|
-
class Callback {
|
|
27
|
-
public:
|
|
28
|
-
explicit inline Callback(CallbackFlags::Flags flags);
|
|
29
|
-
|
|
30
|
-
virtual ~Callback() = default;
|
|
31
|
-
virtual R Call(Args... args) = 0;
|
|
32
|
-
|
|
33
|
-
inline CallbackFlags::Flags flags() const;
|
|
34
|
-
|
|
35
|
-
private:
|
|
36
|
-
inline std::unique_ptr<Callback> get_next();
|
|
37
|
-
inline void set_next(std::unique_ptr<Callback> next);
|
|
38
|
-
|
|
39
|
-
CallbackFlags::Flags flags_;
|
|
40
|
-
std::unique_ptr<Callback> next_;
|
|
41
|
-
|
|
42
|
-
friend class CallbackQueue;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
template <typename Fn>
|
|
46
|
-
inline std::unique_ptr<Callback> CreateCallback(
|
|
47
|
-
Fn&& fn, CallbackFlags::Flags);
|
|
48
|
-
|
|
49
|
-
inline std::unique_ptr<Callback> Shift();
|
|
50
|
-
inline void Push(std::unique_ptr<Callback> cb);
|
|
51
|
-
// ConcatMove adds elements from 'other' to the end of this list, and clears
|
|
52
|
-
// 'other' afterwards.
|
|
53
|
-
inline void ConcatMove(CallbackQueue&& other);
|
|
54
|
-
|
|
55
|
-
// size() is atomic and may be called from any thread.
|
|
56
|
-
inline size_t size() const;
|
|
57
|
-
|
|
58
|
-
private:
|
|
59
|
-
template <typename Fn>
|
|
60
|
-
class CallbackImpl final : public Callback {
|
|
61
|
-
public:
|
|
62
|
-
CallbackImpl(Fn&& callback, CallbackFlags::Flags flags);
|
|
63
|
-
R Call(Args... args) override;
|
|
64
|
-
|
|
65
|
-
private:
|
|
66
|
-
Fn callback_;
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
std::atomic<size_t> size_ {0};
|
|
70
|
-
std::unique_ptr<Callback> head_;
|
|
71
|
-
Callback* tail_ = nullptr;
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
} // namespace node
|
|
75
|
-
|
|
76
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
77
|
-
|
|
78
|
-
#endif // SRC_CALLBACK_QUEUE_H_
|