Documentation ¶
Index ¶
- type ConstructOpts
- type Controller
- type Factory
- type FactoryResolver
- type FactoryWithContext
- type Info
- func (i *Info) Clone() *Info
- func (m *Info) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *Info) CloneVT() *Info
- func (this *Info) EqualMessageVT(thatMsg any) bool
- func (this *Info) EqualVT(that *Info) bool
- func (x *Info) GetDescription() string
- func (x *Info) GetId() string
- func (x *Info) GetVersion() string
- func (x *Info) MarshalJSON() ([]byte, error)
- func (x *Info) MarshalProtoJSON(s *json.MarshalState)
- func (x *Info) MarshalProtoText() string
- func (m *Info) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Info) MarshalToVT(dAtA []byte) (int, error)
- func (m *Info) MarshalVT() (dAtA []byte, err error)
- func (*Info) ProtoMessage()
- func (x *Info) Reset()
- func (m *Info) SizeVT() (n int)
- func (x *Info) String() string
- func (x *Info) UnmarshalJSON(b []byte) error
- func (x *Info) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *Info) UnmarshalVT(dAtA []byte) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConstructOpts ¶
ConstructOpts contains optional parameters when constructing a controller.
func (*ConstructOpts) GetLogger ¶
func (c *ConstructOpts) GetLogger() *logrus.Entry
GetLogger returns the specified logger or a default one if nil.
type Controller ¶
type Controller interface { // Handler handles directives. directive.Handler // GetControllerInfo returns information about the controller. GetControllerInfo() *Info // Execute executes the controller goroutine. // Returning nil ends execution. // Returning an error triggers a retry with backoff. // Retry will NOT re-construct the controller, just re-start Execute. Execute(ctx context.Context) error // Close releases any resources used by the controller. // Error indicates any issue encountered releasing. Close() error }
Controller tracks a particular process.
type Factory ¶
type Factory interface { // GetConfigID returns the unique config ID for the controller. GetConfigID() string // ConstructConfig constructs an instance of the controller configuration. ConstructConfig() config.Config // Construct constructs the associated controller given configuration. Construct(context.Context, config.Config, ConstructOpts) (Controller, error) // GetVersion returns the version of this controller. GetVersion() semver.Version }
Factory represents an available controller implementation. The factory can construct instances of the controller given configuration.
type FactoryResolver ¶
type FactoryResolver interface { // GetResolverID returns the resolver identifier. // Ex: static, go-plugin GetResolverID() string // GetResolverVersion returns the resolver version. GetResolverVersion() semver.Version // GetConfigCtorByID returns a config constructor by ID. // If none found, return nil, nil GetConfigCtorByID(ctx context.Context, id string) (config.Constructor, error) // GetFactoryMatchingConfig returns the factory that matches the config. // If no factory is found, return nil. // If an unexpected error occurs, return it. GetFactoryMatchingConfig(ctx context.Context, conf config.Config) (Factory, error) }
FactoryResolver looks up factories that match configurations.
type FactoryWithContext ¶
type FactoryWithContext interface { Factory // GetFactoryContext returns a context that is canceled if the factory is unloaded. GetFactoryContext() context.Context }
FactoryWithContext is a factory with a cancelation context.
type Info ¶
type Info struct { // Id contains the identifier of the controller. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Version contains the version string for the controller. Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // Description contains a descriptive string about the controller. Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` // contains filtered or unexported fields }
Info contains information about a controller.
func (*Info) CloneMessageVT ¶ added in v0.23.6
func (m *Info) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*Info) EqualMessageVT ¶ added in v0.23.6
func (*Info) GetDescription ¶
func (*Info) GetVersion ¶
func (*Info) MarshalJSON ¶ added in v0.41.0
MarshalJSON marshals the Info to JSON.
func (*Info) MarshalProtoJSON ¶ added in v0.41.0
func (x *Info) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the Info message to JSON.
func (*Info) MarshalProtoText ¶ added in v0.42.0
func (*Info) MarshalToSizedBufferVT ¶ added in v0.10.0
func (*Info) ProtoMessage ¶
func (*Info) ProtoMessage()
func (*Info) UnmarshalJSON ¶ added in v0.41.0
UnmarshalJSON unmarshals the Info from JSON.
func (*Info) UnmarshalProtoJSON ¶ added in v0.41.0
func (x *Info) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the Info message from JSON.