Where Online Learning is simpler!
The C and C++ Include Header Files
cat -n /usr/include/nodejs/src/node_api_internals.h
1 #ifndef SRC_NODE_API_INTERNALS_H_ 2 #define SRC_NODE_API_INTERNALS_H_ 3 4 #include "v8.h" 5 #ifndef NAPI_EXPERIMENTAL 6 #define NAPI_EXPERIMENTAL 7 #endif 8 #include "env-inl.h" 9 #include "js_native_api_v8.h" 10 #include "node_api.h" 11 #include "util-inl.h" 12 13 struct node_napi_env__ : public napi_env__ { 14 static napi_env New(v8::Local<v8::Context> context, 15 const std::string& module_filename, 16 int32_t module_api_version); 17 18 node_napi_env__(v8::Local<v8::Context> context, 19 const std::string& module_filename, 20 int32_t module_api_version); 21 22 bool can_call_into_js() const override; 23 void CallFinalizer(napi_finalize cb, void* data, void* hint) override; 24 template <bool enforceUncaughtExceptionPolicy> 25 void CallFinalizer(napi_finalize cb, void* data, void* hint); 26 27 void EnqueueFinalizer(v8impl::RefTracker* finalizer) override; 28 void DrainFinalizerQueue(); 29 30 void trigger_fatal_exception(v8::Local<v8::Value> local_err); 31 template <bool enforceUncaughtExceptionPolicy, typename T> 32 void CallbackIntoModule(T&& call); 33 34 void DeleteMe() override; 35 36 inline node::Environment* node_env() const { 37 return node::Environment::GetCurrent(context()); 38 } 39 inline const char* GetFilename() const { return filename.c_str(); } 40 41 std::string filename; 42 bool destructing = false; 43 bool finalization_scheduled = false; 44 }; 45 46 using node_napi_env = node_napi_env__*; 47 48 #endif // SRC_NODE_API_INTERNALS_H_