Documentation ¶
Overview ¶
Package service 运行时环境提供的一些接口与函数。
- 服务上下文(context)
- 并发实体管理器(EntityMgr)
Index ¶
- Variables
- func UnsafeContext(ctx Context) _UnsafeContextdeprecated
- type Caller
- type Context
- type ContextBehavior
- func (ctx *ContextBehavior) Call(entityId uid.Id, fun generic.FuncVar1[ec.Entity, any, async.Ret], args ...any) async.AsyncRet
- func (ctx *ContextBehavior) CallDelegate(entityId uid.Id, fun generic.DelegateFuncVar1[ec.Entity, any, async.Ret], ...) async.AsyncRet
- func (ctx *ContextBehavior) CallVoid(entityId uid.Id, fun generic.ActionVar1[ec.Entity, any], args ...any) async.AsyncRet
- func (ctx *ContextBehavior) CallVoidDelegate(entityId uid.Id, fun generic.DelegateActionVar1[ec.Entity, any], args ...any) async.AsyncRet
- func (ctx *ContextBehavior) GetCompositeFaceCache() iface.Cache
- func (ctx *ContextBehavior) GetEntityLib() pt.EntityLib
- func (ctx *ContextBehavior) GetEntityMgr() EntityMgr
- func (ctx *ContextBehavior) GetId() uid.Id
- func (ctx *ContextBehavior) GetName() string
- func (ctx *ContextBehavior) GetPluginBundle() plugin.PluginBundle
- func (ctx *ContextBehavior) GetReflected() reflect.Value
- func (ctx *ContextBehavior) String() string
- type ContextOptions
- type EntityMgr
- type RunningHandler
- type RunningState
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrContext = fmt.Errorf("%w: service-context", exception.ErrCore) // 服务上下文错误 ErrEntityMgr = fmt.Errorf("%w: entity-mgr", ErrContext) // 实体管理器错误 )
View Source
var With _Option
Functions ¶
func UnsafeContext
deprecated
func UnsafeContext(ctx Context) _UnsafeContext
Deprecated: UnsafeContext 访问服务上下文内部方法
Types ¶
type Caller ¶
type Caller interface { // Call 查找实体并异步调用函数,有返回值。不会阻塞当前线程,会返回AsyncRet。 // // 注意: // - 代码片段中的线程安全问题,如临界区访问、线程死锁等。 // - 调用过程中的panic信息,均会转换为error返回。 Call(entityId uid.Id, fun generic.FuncVar1[ec.Entity, any, async.Ret], args ...any) async.AsyncRet // CallDelegate 查找实体并异步调用委托,有返回值。不会阻塞当前线程,会返回AsyncRet。 // // 注意: // - 代码片段中的线程安全问题,如临界区访问、线程死锁等。 // - 调用过程中的panic信息,均会转换为error返回。 CallDelegate(entityId uid.Id, fun generic.DelegateFuncVar1[ec.Entity, any, async.Ret], args ...any) async.AsyncRet // CallVoid 查找实体并异步调用函数,无返回值。在运行时中。不会阻塞当前线程,会返回AsyncRet。 // // 注意: // - 代码片段中的线程安全问题,如临界区访问、线程死锁等。 // - 调用过程中的panic信息,均会转换为error返回。 CallVoid(entityId uid.Id, fun generic.ActionVar1[ec.Entity, any], args ...any) async.AsyncRet // CallVoidDelegate 查找实体并异步调用委托,无返回值。在运行时中。不会阻塞当前线程,会返回AsyncRet。 // // 注意: // - 代码片段中的线程安全问题,如临界区访问、线程死锁等。 // - 调用过程中的panic信息,均会转换为error返回。 CallVoidDelegate(entityId uid.Id, fun generic.DelegateActionVar1[ec.Entity, any], args ...any) async.AsyncRet }
Caller 异步调用发起者
type Context ¶
type Context interface { ictx.Context reinterpret.CompositeProvider plugin.PluginProvider pt.EntityPTProvider Caller fmt.Stringer // GetName 获取名称 GetName() string // GetId 获取服务Id GetId() uid.Id // GetReflected 获取反射值 GetReflected() reflect.Value // GetEntityMgr 获取实体管理器 GetEntityMgr() EntityMgr // contains filtered or unexported methods }
Context 服务上下文
func NewContext ¶
func NewContext(settings ...option.Setting[ContextOptions]) Context
NewContext 创建服务上下文
func UnsafeNewContext
deprecated
func UnsafeNewContext(options ContextOptions) Context
Deprecated: UnsafeNewContext 内部创建服务上下文
type ContextBehavior ¶
type ContextBehavior struct { ictx.ContextBehavior // contains filtered or unexported fields }
ContextBehavior 服务上下文行为,在需要扩展服务上下文能力时,匿名嵌入至服务上下文结构体中
func (*ContextBehavior) Call ¶
func (ctx *ContextBehavior) Call(entityId uid.Id, fun generic.FuncVar1[ec.Entity, any, async.Ret], args ...any) async.AsyncRet
Call 查找实体并异步调用函数,有返回值。不会阻塞当前线程,会返回AsyncRet。
注意: - 代码片段中的线程安全问题,如临界区访问、线程死锁等。 - 调用过程中的panic信息,均会转换为error返回。
func (*ContextBehavior) CallDelegate ¶
func (ctx *ContextBehavior) CallDelegate(entityId uid.Id, fun generic.DelegateFuncVar1[ec.Entity, any, async.Ret], args ...any) async.AsyncRet
CallDelegate 查找实体并异步调用委托,有返回值。不会阻塞当前线程,会返回AsyncRet。
注意: - 代码片段中的线程安全问题,如临界区访问、线程死锁等。 - 调用过程中的panic信息,均会转换为error返回。
func (*ContextBehavior) CallVoid ¶
func (ctx *ContextBehavior) CallVoid(entityId uid.Id, fun generic.ActionVar1[ec.Entity, any], args ...any) async.AsyncRet
CallVoid 查找实体并异步调用函数,无返回值。在运行时中。不会阻塞当前线程,会返回AsyncRet。
注意: - 代码片段中的线程安全问题,如临界区访问、线程死锁等。 - 调用过程中的panic信息,均会转换为error返回。
func (*ContextBehavior) CallVoidDelegate ¶
func (ctx *ContextBehavior) CallVoidDelegate(entityId uid.Id, fun generic.DelegateActionVar1[ec.Entity, any], args ...any) async.AsyncRet
CallVoidDelegate 查找实体并异步调用委托,无返回值。在运行时中。不会阻塞当前线程,会返回AsyncRet。
注意: - 代码片段中的线程安全问题,如临界区访问、线程死锁等。 - 调用过程中的panic信息,均会转换为error返回。
func (*ContextBehavior) GetCompositeFaceCache ¶ added in v0.2.34
func (ctx *ContextBehavior) GetCompositeFaceCache() iface.Cache
GetCompositeFaceCache 支持重新解释类型
func (*ContextBehavior) GetEntityLib ¶
func (ctx *ContextBehavior) GetEntityLib() pt.EntityLib
GetEntityLib 获取实体原型库
func (*ContextBehavior) GetEntityMgr ¶
func (ctx *ContextBehavior) GetEntityMgr() EntityMgr
GetEntityMgr 获取实体管理器
func (*ContextBehavior) GetPluginBundle ¶
func (ctx *ContextBehavior) GetPluginBundle() plugin.PluginBundle
GetPluginBundle 获取插件包
func (*ContextBehavior) GetReflected ¶ added in v0.2.58
func (ctx *ContextBehavior) GetReflected() reflect.Value
GetReflected 获取反射值
func (*ContextBehavior) String ¶
func (ctx *ContextBehavior) String() string
String implements fmt.Stringer
type ContextOptions ¶
type ContextOptions struct { CompositeFace iface.Face[Context] // 扩展者,在扩展服务上下文自身能力时使用 Context context.Context // 父Context AutoRecover bool // 是否开启panic时自动恢复 ReportError chan error // panic时错误写入的error channel Name string // 服务名称 PersistId uid.Id // 服务持久化Id EntityLib pt.EntityLib // 实体原型库 PluginBundle plugin.PluginBundle // 插件包 RunningHandler RunningHandler // 运行状态变化处理器 }
ContextOptions 创建服务上下文的所有选项
type EntityMgr ¶
type EntityMgr interface { // GetContext 获取服务上下文 GetContext() Context // GetEntity 查询实体 GetEntity(id uid.Id) (ec.ConcurrentEntity, bool) // GetOrAddEntity 查询或添加实体 GetOrAddEntity(entity ec.ConcurrentEntity) (ec.ConcurrentEntity, bool, error) // AddEntity 添加实体 AddEntity(entity ec.ConcurrentEntity) error // GetAndRemoveEntity 查询并删除实体 GetAndRemoveEntity(id uid.Id) (ec.ConcurrentEntity, bool) // RemoveEntity 删除实体 RemoveEntity(id uid.Id) }
EntityMgr 实体管理器接口
type RunningHandler ¶
type RunningHandler = generic.DelegateAction2[Context, RunningState] // 运行状态变化处理器
type RunningState ¶
type RunningState int32
RunningState 运行状态
const ( RunningState_Birth RunningState = iota // 出生 RunningState_Starting // 开始启动 RunningState_Started // 已启动 RunningState_Terminating // 开始停止 RunningState_Terminated // 已停止 )
func (RunningState) String ¶
func (i RunningState) String() string
Click to show internal directories.
Click to hide internal directories.