minor renamings; use generic functions for access to state and config data via type assertions
This commit is contained in:
parent
fb423d795d
commit
bed55a63a2
4 changed files with 20 additions and 13 deletions
|
@ -91,17 +91,17 @@ func Base(name string, starter lib.StartProc) *base {
|
|||
return &base{
|
||||
name: name,
|
||||
starter: starter,
|
||||
step: Step,
|
||||
msgHandler: MsgHandler,
|
||||
doneHandler: DoneHandler,
|
||||
step: DefaultStep,
|
||||
msgHandler: DefaultMsgHandler,
|
||||
doneHandler: DefaultDoneHandler,
|
||||
actions: nil,
|
||||
}
|
||||
}
|
||||
|
||||
// will be set by core.init()
|
||||
var Step lib.StepProc
|
||||
var MsgHandler lib.MessageHandler
|
||||
var DoneHandler lib.StepProc
|
||||
var DefaultStep lib.StepProc
|
||||
var DefaultMsgHandler lib.MessageHandler
|
||||
var DefaultDoneHandler lib.StepProc
|
||||
|
||||
// action configuration
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ func HandleDone(ctx lib.Context) bool {
|
|||
}
|
||||
|
||||
func init() {
|
||||
config.Step = Step // avoid import cycle
|
||||
config.MsgHandler = HandleMessage
|
||||
config.DoneHandler = HandleDone
|
||||
config.DefaultStep = Step // avoid import cycle
|
||||
config.DefaultMsgHandler = HandleMessage
|
||||
config.DefaultDoneHandler = HandleDone
|
||||
}
|
||||
|
|
|
@ -88,3 +88,11 @@ func Send(ctx Context, addr Address, msg Message) {
|
|||
srv.Mailbox() <- msg
|
||||
}
|
||||
}
|
||||
|
||||
func GetState[St ContextState](ctx Context) St {
|
||||
return ctx.State().(St)
|
||||
}
|
||||
|
||||
func GetCfg[C Config](ctx Context) C {
|
||||
return ctx.Config().(C)
|
||||
}
|
||||
|
|
|
@ -19,14 +19,13 @@ type ServerState struct {
|
|||
}
|
||||
|
||||
func Start(ctx lib.Context) {
|
||||
ctx.Config().(*Cfg).BaseCfg.WithDoneHandler(HandleDone)
|
||||
lib.GetCfg[*Cfg](ctx).BaseCfg.WithDoneHandler(HandleDone)
|
||||
Serve(ctx)
|
||||
lib.RunCtx(ctx, core.Listen)
|
||||
}
|
||||
|
||||
func HandleDone(ctx lib.Context) bool {
|
||||
state := ctx.State().(ServerState)
|
||||
state.server.Shutdown(ctx)
|
||||
lib.GetState[*ServerState](ctx).server.Shutdown(ctx)
|
||||
return false
|
||||
}
|
||||
|
||||
|
@ -39,7 +38,7 @@ func Serve(ctx lib.Context) {
|
|||
Addr: ":8123",
|
||||
Handler: r,
|
||||
}
|
||||
ctx.WithState(ServerState{
|
||||
ctx.WithState(&ServerState{
|
||||
server: srv,
|
||||
})
|
||||
lib.RunCtx(ctx, func(ctx lib.Context) {
|
||||
|
|
Loading…
Add table
Reference in a new issue