Documentation
¶
Index ¶
- type Category
- func (c *Category) EnqueueWithFanout(make func(name string) loops.EventInstance)
- func (c *Category) Handle(ctx context.Context, e loops.EventCategory) error
- func (c *Category) Instances() map[string]loop.Interface[loops.EventInstance]
- func (c *Category) Loop() loop.Interface[loops.EventCategory]
- func (c *Category) Run(ctx context.Context) error
- type InstanceFactory
- type Options
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Category ¶
type Category struct {
// contains filtered or unexported fields
}
Category is the per-resource-category loop handler.
func New ¶
New builds a Category. The returned Category's loop must be started by the caller (e.g. inside concurrency.NewRunnerManager).
func (*Category) EnqueueWithFanout ¶
func (c *Category) EnqueueWithFanout(make func(name string) loops.EventInstance)
EnqueueWithFanout enqueues the same event to every existing instance loop. Useful for category broadcasts (StartReadingFromBindings sends a StartInput to every binding instance).
func (*Category) Instances ¶
Instances returns a snapshot of currently active instance names. Only safe to call from inside the category loop's Handle.
type InstanceFactory ¶
type InstanceFactory func(name string) loop.Interface[loops.EventInstance]
InstanceFactory builds an Instance loop for a given named component. The factory may return a category-specialised handler that satisfies loop.Interface[loops.EventInstance].
type Options ¶
type Options struct {
Name string
Manager instance.Manager
CompStore *compstore.ComponentStore
Reporter registry.Reporter
Security security.Handler
// InstanceFactory, if non-nil, overrides the default per-name instance
// loop construction. Specialised categories (bindings) use this to inject
// per-instance handlers that hold local state.
InstanceFactory InstanceFactory
}