matrix: send 'connect' message upon cell creation
This commit is contained in:
parent
5a7cbba536
commit
0f054c36e8
3 changed files with 19 additions and 10 deletions
|
@ -5,6 +5,7 @@ import (
|
|||
"git.sr.ht/~cco/go-scopes/config"
|
||||
"git.sr.ht/~cco/go-scopes/core"
|
||||
"git.sr.ht/~cco/go-scopes/core/action"
|
||||
"git.sr.ht/~cco/go-scopes/core/message"
|
||||
)
|
||||
|
||||
func Start(ctx lib.Context) {
|
||||
|
@ -13,16 +14,18 @@ func Start(ctx lib.Context) {
|
|||
core.Start(ctx)
|
||||
}
|
||||
|
||||
type celLConfig struct {
|
||||
*config.BaseCfg
|
||||
}
|
||||
|
||||
func create(act lib.Action) bool {
|
||||
ctx := act.Context()
|
||||
//msg := act.Message()
|
||||
msg := act.Message()
|
||||
//spec := act.ActionSpec()
|
||||
cctx := ctx.ChildContext(config.Base("", core.Start))
|
||||
core.Start(cctx)
|
||||
// msg.Sender().Cell().Send(message.New("matrix", "connect").WithSender(cctx))
|
||||
cctx := createCell(act.Context())
|
||||
nmsg := message.New("matrix", "connect").WithSender(cctx)
|
||||
msg.Sender().Cell().Send(nmsg)
|
||||
return true
|
||||
}
|
||||
|
||||
func createCell(ctx lib.Context) lib.Context {
|
||||
cfg := config.Base("", core.Start)
|
||||
cctx := ctx.ChildContext(cfg)
|
||||
cfg.Starter()(cctx)
|
||||
return cctx
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ type ContextState interface{}
|
|||
|
||||
type Context interface {
|
||||
stdlib_context.Context
|
||||
Addressable
|
||||
Config() Config
|
||||
Name() string
|
||||
Parent() Context
|
||||
|
@ -56,6 +57,7 @@ type Addressable interface {
|
|||
|
||||
type Address interface {
|
||||
fmt.Stringer
|
||||
Addressable
|
||||
Url() string
|
||||
Service() string
|
||||
Interaction() (string, string)
|
||||
|
@ -131,10 +133,14 @@ func HandleMsg(ctx Context, msg Message) bool {
|
|||
}
|
||||
|
||||
func Send(ctx Context, addr Address, msg Message) {
|
||||
if msg.Sender() == nil {
|
||||
msg.WithSender(ctx)
|
||||
}
|
||||
if svc, ok := ctx.Services()[addr.Service()]; ok {
|
||||
// TODO: check Address for sid, iid
|
||||
svc.Send(msg)
|
||||
}
|
||||
// TODO: Warn().Msg("receiver not found")
|
||||
}
|
||||
|
||||
func GetState[St ContextState](ctx Context) St {
|
||||
|
|
|
@ -16,7 +16,7 @@ func TestMatrixApp(tb *tbase.T) {
|
|||
t := testing.SetUpApp(tb, etc.ConfigMx())
|
||||
t.Run("app-matrix", MxTest)
|
||||
t.TearDownApp("matrix")
|
||||
t.AssertEqual(t.LogCheck(logfile, true), 7)
|
||||
t.AssertEqual(t.LogCheck(logfile, true), 8)
|
||||
}
|
||||
|
||||
func MxTest(t *testing.T) {
|
||||
|
|
Loading…
Add table
Reference in a new issue