Documentation ¶
Index ¶
- Constants
- func Exit(context Context) (int, error)
- func Loop(context Context) error
- func RunAndLoop(config Configuration) (int, error)
- type ComponentFactory
- type ComponentHolder
- type ComponentHolderFilter
- type ComponentInfo
- type ComponentInstance
- type ComponentLoader
- type ComponentLoading
- type ComponentScope
- type Components
- type ConfigBuilder
- type Configuration
- type Context
- type ContextCollections
- type ContextGetter
- type ContextInfo
- type ContextLoader
- type DefineModule
- type ExitCodeGenerator
- type FunctionInjectionTarget
- type FunctionInjectionTargetFn
- type Initializer
- type Injection
- type InjectionSource
- type InjectionTarget
- type Injector
- type Looper
- type Module
- type OnMountFunc
- type Runnable
- type SimpleContext
Constants ¶
View Source
const ExitCodeGeneratorClassName = "exit-code-generator"
View Source
const LooperClassName = "looper"
Variables ¶
This section is empty.
Functions ¶
func RunAndLoop ¶ added in v0.0.33
func RunAndLoop(config Configuration) (int, error)
依次调用 Run(), Loop(), Exit()
Types ¶
type ComponentFactory ¶
type ComponentFactory interface {
NewInstance() ComponentInstance
}
ComponentFactory 一个组件的工厂
type ComponentHolder ¶
type ComponentHolder interface { GetInstance() ComponentInstance IsOriginalName(name string) bool GetInfo() ComponentInfo GetPrototype() lang.Object GetContext() Context MakeChild(context Context) ComponentHolder }
ComponentHolder 一个具体的组件的代理
type ComponentHolderFilter ¶
type ComponentHolderFilter func(name string, holder ComponentHolder) bool
type ComponentInfo ¶
type ComponentInfo interface { GetID() string GetClass() string GetAliases() []string GetClasses() []string GetScope() ComponentScope GetFactory() ComponentFactory GetPrototype() lang.Object IsTypeOf(typeName string) bool IsNameOf(alias string) bool }
ComponentInfo 一个组件的配置
type ComponentInstance ¶
type ComponentInstance interface { Get() lang.Object IsLoaded() bool Inject(context Context) error Init() error Destroy() error }
ComponentInstance 一个具体的组件的实例的引用
type ComponentLoader ¶
type ComponentLoader interface {
OpenLoading(context Context) (ComponentLoading, error)
}
ComponentLoader 用于加载组件的实例
type ComponentLoading ¶ added in v0.0.9
type ComponentLoading interface { io.Closer lang.ErrorHandler Pool() lang.ReleasePool Context() Context Load(h ComponentHolder) (lang.Object, error) LoadAll(h []ComponentHolder) ([]lang.Object, error) }
ComponentLoading 表示加载组件的会话
type ComponentScope ¶
type ComponentScope uint32
ComponentScope 枚举表示组件的作用域
const ( // ScopeMin 是作用域的最小值 ScopeMin ComponentScope = 0 // 最小 // ScopeSingleton 表示单例模式 ScopeSingleton ComponentScope = 1 // ScopeContext 表示上下文模式 ScopeContext ComponentScope = 2 // ScopePrototype 表示原型模式 ScopePrototype ComponentScope = 3 // ScopeMax 是作用域的最大值 ScopeMax ComponentScope = 4 // 最大 )
type Components ¶
type Components interface { // ids GetComponentNameList(includeAliases bool) []string // getters GetComponent(selector string) (ComponentHolder, error) GetComponents(selector string) []ComponentHolder GetComponentsByFilter(f ComponentHolderFilter) []ComponentHolder // export & import Export(map[string]ComponentHolder) map[string]ComponentHolder Import(map[string]ComponentHolder) }
Components 接口表示一个组件的集合
type ConfigBuilder ¶
type ConfigBuilder interface { AddComponent(info ComponentInfo) SetResources(res collection.Resources) SetAttribute(name string, value interface{}) SetEnableLoadPropertiesFromArguments(enable bool) IsEnableLoadPropertiesFromArguments() bool DefaultProperties() collection.Properties Create() Configuration }
ConfigBuilder 表示应用程序配置
type Configuration ¶
type Configuration interface { GetLoader() ContextLoader GetComponents() []ComponentInfo GetResources() collection.Resources GetAttributes() collection.Attributes GetEnvironment() collection.Environment GetDefaultProperties() collection.Properties IsEnableLoadPropertiesFromArguments() bool }
Configuration 表示应用程序配置
type Context ¶
type Context interface { ContextCollections ContextInfo // helper SetErrorHandler(h lang.ErrorHandler) GetErrorHandler() lang.ErrorHandler NewChild() Context GetComponent(selector string) (lang.Object, error) GetComponentList(selector string) ([]lang.Object, error) Injector() Injector ComponentLoader() ComponentLoader }
Context 表示一个通用的上下文对象
type ContextCollections ¶
type ContextCollections interface { GetReleasePool() lang.ReleasePool GetComponents() Components GetArguments() collection.Arguments GetAttributes() collection.Attributes GetEnvironment() collection.Environment GetProperties() collection.Properties GetParameters() collection.Parameters GetResources() collection.Resources }
type ContextGetter ¶
type ContextGetter interface { // for property GetProperty(name string) (string, error) GetPropertySafely(name string, _default string) string GetPropertyString(name string, _default string) string GetPropertyInt(name string, _default int) int }
ContextGetter 接口向 Context 的使用者提供简易的 getter 方法
type ContextInfo ¶
type ContextLoader ¶
type ContextLoader interface {
Load(config Configuration, args []string) (Context, error)
}
ContextLoader 用于加载进程上下文
type DefineModule ¶ added in v0.0.33
type DefineModule struct { Name string Version string Revision int Dependencies []Module OnMount OnMountFunc }
func (*DefineModule) Apply ¶ added in v0.0.33
func (inst *DefineModule) Apply(cb ConfigBuilder) error
func (*DefineModule) GetDependencies ¶ added in v0.0.33
func (inst *DefineModule) GetDependencies() []Module
func (*DefineModule) GetName ¶ added in v0.0.33
func (inst *DefineModule) GetName() string
func (*DefineModule) GetRevision ¶ added in v0.0.33
func (inst *DefineModule) GetRevision() int
func (*DefineModule) GetVersion ¶ added in v0.0.33
func (inst *DefineModule) GetVersion() string
type ExitCodeGenerator ¶
type ExitCodeGenerator interface {
ExitCode() int
}
type FunctionInjectionTarget ¶ added in v0.0.9
type FunctionInjectionTarget struct {
// contains filtered or unexported fields
}
func (*FunctionInjectionTarget) Close ¶ added in v0.0.9
func (inst *FunctionInjectionTarget) Close() error
func (*FunctionInjectionTarget) Init ¶ added in v0.0.9
func (inst *FunctionInjectionTarget) Init(fn FunctionInjectionTargetFn) InjectionTarget
type FunctionInjectionTargetFn ¶ added in v0.0.9
type Initializer ¶ added in v0.0.33
type Initializer interface { EmbedResources(fs *embed.FS, path string) Initializer MountResources(res collection.Resources) Initializer SetAttribute(name string, value interface{}) Initializer Use(module Module) Initializer Run() }
Initializer 是应用程序的启动器
type Injection ¶
type Injection interface { io.Closer lang.ErrorHandler Context() Context Pool() lang.ReleasePool // 类选择器: ".class" // ID选择器: "#id" // 属性选择器: "${prop.name}" // value选择器: "foo" // context选择器: "context" Select(selector string) InjectionSource }
type InjectionSource ¶ added in v0.0.9
type InjectionSource interface { io.Closer Count() int Selector() string HasMore() bool Read() (lang.Object, error) ReadString() (string, error) ReadInt() (int, error) ReadInt32() (int32, error) ReadInt64() (int64, error) ReadFloat32() (float32, error) ReadFloat64() (float64, error) ReadBool() (bool, error) }
type InjectionTarget ¶ added in v0.0.9
type OnMountFunc ¶ added in v0.0.33
type OnMountFunc func(cb ConfigBuilder) error
type SimpleContext ¶
type SimpleContext interface { collection.Atts }
Source Files ¶
Click to show internal directories.
Click to hide internal directories.