/src/node/deps/v8/include/v8-extension.h
Line | Count | Source (jump to first uncovered line) |
1 | | // Copyright 2021 the V8 project authors. All rights reserved. |
2 | | // Use of this source code is governed by a BSD-style license that can be |
3 | | // found in the LICENSE file. |
4 | | |
5 | | #ifndef INCLUDE_V8_EXTENSION_H_ |
6 | | #define INCLUDE_V8_EXTENSION_H_ |
7 | | |
8 | | #include <memory> |
9 | | |
10 | | #include "v8-local-handle.h" // NOLINT(build/include_directory) |
11 | | #include "v8-primitive.h" // NOLINT(build/include_directory) |
12 | | #include "v8config.h" // NOLINT(build/include_directory) |
13 | | |
14 | | namespace v8 { |
15 | | |
16 | | class FunctionTemplate; |
17 | | |
18 | | // --- Extensions --- |
19 | | |
20 | | /** |
21 | | * Ignore |
22 | | */ |
23 | | class V8_EXPORT Extension { |
24 | | public: |
25 | | // Note that the strings passed into this constructor must live as long |
26 | | // as the Extension itself. |
27 | | Extension(const char* name, const char* source = nullptr, int dep_count = 0, |
28 | | const char** deps = nullptr, int source_length = -1); |
29 | 0 | virtual ~Extension() { delete source_; } |
30 | | virtual Local<FunctionTemplate> GetNativeFunctionTemplate( |
31 | 0 | Isolate* isolate, Local<String> name) { |
32 | 0 | return Local<FunctionTemplate>(); |
33 | 0 | } |
34 | | |
35 | 0 | const char* name() const { return name_; } |
36 | 0 | size_t source_length() const { return source_length_; } |
37 | 0 | const String::ExternalOneByteStringResource* source() const { |
38 | 0 | return source_; |
39 | 0 | } |
40 | 0 | int dependency_count() const { return dep_count_; } |
41 | 0 | const char** dependencies() const { return deps_; } |
42 | 0 | void set_auto_enable(bool value) { auto_enable_ = value; } |
43 | 0 | bool auto_enable() { return auto_enable_; } |
44 | | |
45 | | // Disallow copying and assigning. |
46 | | Extension(const Extension&) = delete; |
47 | | void operator=(const Extension&) = delete; |
48 | | |
49 | | private: |
50 | | const char* name_; |
51 | | size_t source_length_; // expected to initialize before source_ |
52 | | String::ExternalOneByteStringResource* source_; |
53 | | int dep_count_; |
54 | | const char** deps_; |
55 | | bool auto_enable_; |
56 | | }; |
57 | | |
58 | | void V8_EXPORT RegisterExtension(std::unique_ptr<Extension>); |
59 | | |
60 | | } // namespace v8 |
61 | | |
62 | | #endif // INCLUDE_V8_EXTENSION_H_ |