feudal/subjects/subjects.go

42 lines
721 B
Go
Raw Permalink Normal View History

2024-05-05 07:33:44 +00:00
package subjects
import (
"feudal/feudal"
"feudal/message"
)
type WorkerCollection map[string]feudal.WorkerRouter
func New() feudal.Subjects {
var c WorkerCollection = make(map[string]feudal.WorkerRouter)
return &c
}
func (c *WorkerCollection) Send(m message.Envelope) {
for _, w := range *c {
w.Send(m)
}
}
func (c *WorkerCollection) Add(name string, worker feudal.WorkerRouter) {
(*c)[name] = worker
}
func (c *WorkerCollection) Remove(name string) {
}
func (c *WorkerCollection) Disolve() {
for _, w := range *c {
w.Stop()
}
}
func (c *WorkerCollection) Address() string {
return ""
}
func (c *WorkerCollection) Get(name string) feudal.WorkerRouter {
return (*c)[name]
}