Owns providers, the static dependency graph, compiled closures, and module instances. 更多...
#include <ScriptModule.h>
类 | |
| struct | Impl |
Public 类型 | |
| using | ProviderId = uint64_t |
Public 成员函数 | |
| ScriptModuleResolver (SQVM *vm) | |
| Script module resolver. | |
| ~ScriptModuleResolver () | |
| Script module resolver. | |
| ScriptModuleResolver (const ScriptModuleResolver &)=delete | |
| ScriptModuleResolver & | operator= (const ScriptModuleResolver &)=delete |
| ProviderId | registerProvider (std::shared_ptr< IScriptModuleProvider > provider, int priority=0) |
| Registers a provider. Higher priorities are tried first. | |
| bool | unregisterProvider (ProviderId id) |
| Removes a provider; existing compiled module records remain valid. | |
| void | registerDefaultProviders () |
| Installs the default game:/ provider backed by IFileSystem and disk fallback. | |
| void | beginCompilation (std::string_view importerUri) |
| Clears prior diagnostics and dependency edges before compiling an importer. | |
| std::optional< std::string > | takeCompilationFailure () |
| Consumes the native failure captured while resolving the current compilation. | |
| void | prepareDependencies (std::string_view importerUri) |
| Compiles all imports discovered while compiling an importer. | |
| void | instantiateDependencies (std::string_view importerUri) |
| Instantiates the importer's dependencies in topological order. | |
| void | invalidate (std::string_view canonicalUri) |
| Invalidates a module and all reverse dependencies. | |
| void | reload (std::string_view canonicalUri) |
| Transactionally reloads one module, retaining the prior generation on failure. | |
| std::vector< std::string > | reloadAffected (std::string_view canonicalUri) |
| Transactionally reloads a module and every cached module that imports it. | |
| std::vector< std::string > | dependencies (std::string_view importerUri) const |
| Returns canonical direct dependencies for an importer. | |
| std::vector< std::string > | reverseDependencies (std::string_view canonicalUri) const |
| Returns canonical importers that directly depend on a module. | |
静态 Public 成员函数 | |
| static bool | canonicalize (const ScriptModuleRequest &request, std::string &output, std::string &error) |
| Normalizes a logical module URI and rejects root traversal. | |
详细描述
Owns providers, the static dependency graph, compiled closures, and module instances.
Providers never execute Squirrel. Dependencies are compiled before their importer executes; the VM import opcode therefore performs a cache-only lookup.
在文件 ScriptModule.h 第 52 行定义.
成员类型定义说明
◆ ProviderId
| using eve::script::ScriptModuleResolver::ProviderId = uint64_t |
在文件 ScriptModule.h 第 54 行定义.
构造及析构函数说明
◆ ScriptModuleResolver() [1/2]
|
explicit |
Script module resolver.
在文件 ScriptModule.cpp 第 318 行定义.
◆ ~ScriptModuleResolver()
|
default |
Script module resolver.
◆ ScriptModuleResolver() [2/2]
|
delete |
成员函数说明
◆ beginCompilation()
| void eve::script::ScriptModuleResolver::beginCompilation | ( | std::string_view | importerUri | ) |
Clears prior diagnostics and dependency edges before compiling an importer.
在文件 ScriptModule.cpp 第 341 行定义.
◆ canonicalize()
|
static |
Normalizes a logical module URI and rejects root traversal.
在文件 ScriptModule.cpp 第 442 行定义.
引用了 error, output, path , 以及 request.
被这些函数引用 eve::cmd::Cmdline::Run().
◆ dependencies()
| std::vector< std::string > eve::script::ScriptModuleResolver::dependencies | ( | std::string_view | importerUri | ) | const |
Returns canonical direct dependencies for an importer.
在文件 ScriptModule.cpp 第 427 行定义.
引用了 found.
被这些函数引用 reverseDependencies().
◆ instantiateDependencies()
| void eve::script::ScriptModuleResolver::instantiateDependencies | ( | std::string_view | importerUri | ) |
Instantiates the importer's dependencies in topological order.
在文件 ScriptModule.cpp 第 389 行定义.
引用了 found.
◆ invalidate()
| void eve::script::ScriptModuleResolver::invalidate | ( | std::string_view | canonicalUri | ) |
Invalidates a module and all reverse dependencies.
在文件 ScriptModule.cpp 第 395 行定义.
◆ operator=()
|
delete |
◆ prepareDependencies()
| void eve::script::ScriptModuleResolver::prepareDependencies | ( | std::string_view | importerUri | ) |
◆ registerDefaultProviders()
| void eve::script::ScriptModuleResolver::registerDefaultProviders | ( | ) |
Installs the default game:/ provider backed by IFileSystem and disk fallback.
在文件 ScriptModule.cpp 第 339 行定义.
引用了 registerProvider().
◆ registerProvider()
| ScriptModuleResolver::ProviderId eve::script::ScriptModuleResolver::registerProvider | ( | std::shared_ptr< IScriptModuleProvider > | provider, |
| int | priority = 0 |
||
| ) |
Registers a provider. Higher priorities are tried first.
在文件 ScriptModule.cpp 第 321 行定义.
被这些函数引用 eve::dev::LanguageServer::Impl::Impl() , 以及 registerDefaultProviders().
◆ reload()
| void eve::script::ScriptModuleResolver::reload | ( | std::string_view | canonicalUri | ) |
Transactionally reloads one module, retaining the prior generation on failure.
在文件 ScriptModule.cpp 第 418 行定义.
◆ reloadAffected()
| std::vector< std::string > eve::script::ScriptModuleResolver::reloadAffected | ( | std::string_view | canonicalUri | ) |
Transactionally reloads a module and every cached module that imports it.
在文件 ScriptModule.cpp 第 423 行定义.
◆ reverseDependencies()
| std::vector< std::string > eve::script::ScriptModuleResolver::reverseDependencies | ( | std::string_view | canonicalUri | ) | const |
Returns canonical importers that directly depend on a module.
在文件 ScriptModule.cpp 第 432 行定义.
引用了 dependencies().
◆ takeCompilationFailure()
| std::optional< std::string > eve::script::ScriptModuleResolver::takeCompilationFailure | ( | ) |
Consumes the native failure captured while resolving the current compilation.
Squirrel's compiler reports only a generic import failure after a native resolver callback returns an error. This one-shot diagnostic bridge lets ScriptCompiler preserve the actionable resolver message without exposing a persistent last-error side channel.
在文件 ScriptModule.cpp 第 346 行定义.
◆ unregisterProvider()
| bool eve::script::ScriptModuleResolver::unregisterProvider | ( | ProviderId | id | ) |
Removes a provider; existing compiled module records remain valid.
在文件 ScriptModule.cpp 第 331 行定义.
该类的文档由以下文件生成:
- src/engine/common/ScriptModule.h
- src/engine/common/ScriptModule.cpp