载入中...
搜索中...
未找到
eve::script::ScriptModuleResolver类 参考

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

在文件 ScriptModule.h 第 54 行定义.

构造及析构函数说明

◆ ScriptModuleResolver() [1/2]

eve::script::ScriptModuleResolver::ScriptModuleResolver ( SQVM *  vm)
explicit

Script module resolver.

在文件 ScriptModule.cpp 第 318 行定义.

◆ ~ScriptModuleResolver()

eve::script::ScriptModuleResolver::~ScriptModuleResolver ( )
default

Script module resolver.

◆ ScriptModuleResolver() [2/2]

eve::script::ScriptModuleResolver::ScriptModuleResolver ( const ScriptModuleResolver &  )
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()

bool eve::script::ScriptModuleResolver::canonicalize ( const ScriptModuleRequest &  request,
std::string &  output,
std::string &  error 
)
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 行定义.

引用了 found , 以及 uri.

◆ operator=()

ScriptModuleResolver & eve::script::ScriptModuleResolver::operator= ( const ScriptModuleResolver &  )
delete

◆ prepareDependencies()

void eve::script::ScriptModuleResolver::prepareDependencies ( std::string_view  importerUri)

Compiles all imports discovered while compiling an importer.

在文件 ScriptModule.cpp 第 352 行定义.

引用了 begin, edges, root , 以及 uri.

◆ 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 行定义.

引用了 a, b, id , 以及 priority.

被这些函数引用 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 行定义.


该类的文档由以下文件生成: