Path: blob/main/pkg/flow/internal/testcomponents/singleton.go
4096 views
package testcomponents12import (3"context"45"github.com/go-kit/log"6"github.com/grafana/agent/component"7)89func init() {10component.Register(component.Registration{11Name: "testcomponents.singleton",12Args: SingletonArguments{},13Exports: SingletonExports{},14Singleton: true,1516Build: func(opts component.Options, args component.Arguments) (component.Component, error) {17return NewSingleton(opts, args.(SingletonArguments))18},19})20}2122// SingletonArguments configures the testcomponents.singleton component.23type SingletonArguments struct{}2425// SingletonExports describes exported fields for the26// testcomponents.singleton component.27type SingletonExports struct{}2829// Singleton implements the testcomponents.singleton component, which is a30// no-op component.31type Singleton struct {32opts component.Options33log log.Logger34}3536// NewSingleton creates a new singleton component.37func NewSingleton(o component.Options, cfg SingletonArguments) (*Singleton, error) {38t := &Singleton{opts: o, log: o.Logger}39if err := t.Update(cfg); err != nil {40return nil, err41}42return t, nil43}4445var (46_ component.Component = (*Passthrough)(nil)47)4849// Run implements Component.50func (t *Singleton) Run(ctx context.Context) error {51<-ctx.Done()52return nil53}5455// Update implements Component.56func (t *Singleton) Update(args component.Arguments) error {57return nil58}596061