Viewing file: v8-extension.h (1.83 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
// Copyright 2021 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file.
#ifndef INCLUDE_V8_EXTENSION_H_ #define INCLUDE_V8_EXTENSION_H_
#include <memory>
#include "v8-local-handle.h" // NOLINT(build/include_directory) #include "v8-primitive.h" // NOLINT(build/include_directory) #include "v8config.h" // NOLINT(build/include_directory)
namespace v8 {
class FunctionTemplate;
// --- Extensions ---
/** * Ignore */ class V8_EXPORT Extension { public: // Note that the strings passed into this constructor must live as long // as the Extension itself. Extension(const char* name, const char* source = nullptr, int dep_count = 0, const char** deps = nullptr, int source_length = -1); virtual ~Extension() { delete source_; } virtual Local<FunctionTemplate> GetNativeFunctionTemplate( Isolate* isolate, Local<String> name) { return Local<FunctionTemplate>(); }
const char* name() const { return name_; } size_t source_length() const { return source_length_; } const String::ExternalOneByteStringResource* source() const { return source_; } int dependency_count() const { return dep_count_; } const char** dependencies() const { return deps_; } void set_auto_enable(bool value) { auto_enable_ = value; } bool auto_enable() { return auto_enable_; }
// Disallow copying and assigning. Extension(const Extension&) = delete; void operator=(const Extension&) = delete;
private: const char* name_; size_t source_length_; // expected to initialize before source_ String::ExternalOneByteStringResource* source_; int dep_count_; const char** deps_; bool auto_enable_; };
void V8_EXPORT RegisterExtension(std::unique_ptr<Extension>);
} // namespace v8
#endif // INCLUDE_V8_EXTENSION_H_
|