Documentation ¶
Index ¶
Constants ¶
View Source
const DefaultMemoryLimitPages = 256
View Source
const MemoryPageSize = 65536
Variables ¶
View Source
var DefaultExtEngineConfig = ExtEngineConfig{ MemoryLimitPages: DefaultMemoryLimitPages, }
Functions ¶
This section is empty.
Types ¶
type BuiltInAppExtFuncs ¶
type BuiltInAppExtFuncs map[appdef.FullQName]BuiltInExtFunc
type BuiltInExtFunc ¶
type BuiltInExtFunc func(ctx context.Context, io IExtensionIO) error
type BuiltInExtFuncs ¶
type BuiltInExtFuncs map[istructs.AppQName]BuiltInAppExtFuncs // Provided to construct factory of engines
type ExtEngineConfig ¶
type ExtEngineConfig struct { // MemoryLimitPages limits the maximum memory pages available to the extension // 1 page = 2^16 bytes. // // Default value is 2^8 so the total available memory is 2^24 bytes MemoryLimitPages uint }
type ExtensionEngineFactories ¶
type ExtensionEngineFactories map[appdef.ExtensionEngineKind]IExtensionEngineFactory
type ExtensionLimits ¶
type ExtensionPackage ¶
type IExtensionEngine ¶
type IExtensionEngine interface { SetLimits(limits ExtensionLimits) Invoke(ctx context.Context, extName appdef.FullQName, io IExtensionIO) (err error) Close(ctx context.Context) }
1 package = 1 ext engine instance
Extension engine is not thread safe
var NullExtensionEngine IExtensionEngine = nullExtensionEngine{}
type IExtensionEngineFactory ¶
type IExtensionEngineFactory interface { // LocalPath is a path package data can be got from // - packages is not used for ExtensionEngineKind_BuiltIn // - config is not used for ExtensionEngineKind_BuiltIn New(ctx context.Context, app istructs.AppQName, packages []ExtensionPackage, config *ExtEngineConfig, numEngines int) ([]IExtensionEngine, error) }
var NullExtensionEngineFactory IExtensionEngineFactory = nullExtensionEngineFactory{}
type IExtensionIO ¶
func NewExtensionIO ¶
func NewExtensionIO(appdef appdef.IAppDef, state istructs.IState, intents istructs.IIntents) IExtensionIO
creates and returns new instance of IExtensionIO
type IExtensionsModule ¶
type IExtensionsModule interface { // Returns URL to a resource // // Example: file:///home/user1/myextension.wasm GetURL() string }
Click to show internal directories.
Click to hide internal directories.