entitygraph_controller

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 21, 2022 License: Apache-2.0 Imports: 14 Imported by: 3

Documentation

Index

Constants

View Source
const ConfigID = ControllerID

ConfigID is the string used to identify this config object.

View Source
const ControllerID = "entitygraph/collector/1"

ControllerID is the ID of the controller.

Variables

View Source
var Version = semver.MustParse("0.0.1")

Version is the version of the controller implementation.

Functions

This section is empty.

Types

type CollectEntityGraphDirective

type CollectEntityGraphDirective struct {
}

CollectEntityGraphDirective implements CollectEntityGraph.

func NewCollectEntityGraphDirective

func NewCollectEntityGraphDirective() *CollectEntityGraphDirective

NewCollectEntityGraphDirective constructs a new CollectEntityGraph directive.

func (*CollectEntityGraphDirective) CollectEntityGraphDirective

func (d *CollectEntityGraphDirective) CollectEntityGraphDirective()

CollectEntityGraphDirective is a marker function.

func (*CollectEntityGraphDirective) GetDebugVals

GetDebugVals returns the directive arguments as k/v pairs. This is not necessarily unique, and is primarily intended for display.

func (*CollectEntityGraphDirective) GetName

func (d *CollectEntityGraphDirective) GetName() string

GetName returns the directive's type name. This is not necessarily unique, and is primarily intended for display.

func (*CollectEntityGraphDirective) GetValueOptions

func (d *CollectEntityGraphDirective) GetValueOptions() directive.ValueOptions

GetValueOptions returns options relating to value handling.

func (*CollectEntityGraphDirective) IsEquivalent

func (d *CollectEntityGraphDirective) IsEquivalent(other directive.Directive) bool

IsEquivalent checks if the other directive is equivalent. If two directives are equivalent, and the new directive does not superceed the old, then the new directive will be merged (de-duplicated) into the old.

func (*CollectEntityGraphDirective) Superceeds

func (d *CollectEntityGraphDirective) Superceeds(other directive.Directive) bool

Superceeds checks if the directive overrides another. The other directive will be canceled if superceded.

func (*CollectEntityGraphDirective) Validate

func (d *CollectEntityGraphDirective) Validate() error

Validate validates the directive. This is a cursory validation to see if the values "look correct."

type Config

type Config struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Config is the entity graph aggregation controller config.

func (*Config) Descriptor

func (*Config) Descriptor() ([]byte, []int)

func (*Config) EqualsConfig

func (c *Config) EqualsConfig(other config.Config) bool

EqualsConfig checks if the other config is equal.

func (*Config) GetConfigID

func (c *Config) GetConfigID() string

GetConfigID returns the unique string for this configuration type. This string is stored with the encoded config.

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) Reset

func (m *Config) Reset()

func (*Config) String

func (m *Config) String() string

func (*Config) Validate

func (c *Config) Validate() error

Validate validates the configuration. This is a cursory validation to see if the values "look correct."

func (*Config) XXX_DiscardUnknown

func (m *Config) XXX_DiscardUnknown()

func (*Config) XXX_Marshal

func (m *Config) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Config) XXX_Merge

func (m *Config) XXX_Merge(src proto.Message)

func (*Config) XXX_Size

func (m *Config) XXX_Size() int

func (*Config) XXX_Unmarshal

func (m *Config) XXX_Unmarshal(b []byte) error

type Controller

type Controller struct {
	// contains filtered or unexported fields
}

Controller implements the entity graph aggregation controller. The controller issues a CollectEntityGraph directive, aggregates entities, and fulfills ObserveEntityGraph directives.

func NewController

func NewController(
	le *logrus.Entry,
	bus bus.Bus,
	conf *Config,
) *Controller

NewController constructs a new entity graph controller.

func (*Controller) Close

func (c *Controller) Close() error

Close releases any resources used by the controller. Error indicates any issue encountered releasing.

func (*Controller) Execute

func (c *Controller) Execute(ctx context.Context) error

Execute executes the given controller. Returning nil ends execution. Returning an error triggers a retry with backoff.

func (*Controller) GetControllerInfo

func (c *Controller) GetControllerInfo() controller.Info

GetControllerInfo returns information about the controller.

func (*Controller) HandleDirective

func (c *Controller) HandleDirective(
	ctx context.Context,
	inst directive.Instance,
) (directive.Resolver, error)

HandleDirective asks if the handler can resolve the directive. If it can, it returns a resolver. If not, returns nil. Any exceptional errors are returned for logging. It is safe to add a reference to the directive during this call. The context passed is canceled when the directive instance expires.

type Factory

type Factory struct {
	// contains filtered or unexported fields
}

Factory constructs a entity graph controller.

func NewFactory

func NewFactory(bus bus.Bus) *Factory

NewFactory builds a entity graph controller factory.

func (*Factory) Construct

func (t *Factory) Construct(
	conf config.Config,
	opts controller.ConstructOpts,
) (controller.Controller, error)

Construct constructs the associated controller given configuration. The transport's identity (private key) comes from a GetNode lookup.

func (*Factory) ConstructConfig

func (t *Factory) ConstructConfig() config.Config

ConstructConfig constructs an instance of the controller configuration.

func (*Factory) GetConfigID

func (t *Factory) GetConfigID() string

GetConfigID returns the configuration ID for the controller.

func (*Factory) GetControllerID

func (t *Factory) GetControllerID() string

GetControllerID returns the unique ID for the controller.

func (*Factory) GetVersion

func (t *Factory) GetVersion() semver.Version

GetVersion returns the version of this controller.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL