spacewave_loader_controller

package
v0.53.0 Latest Latest
Warning

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

Go to latest
Published: Jul 5, 2026 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const ConfigID = ControllerID

ConfigID is the config identifier.

View Source
const ControllerID = "spacewave/loader/controller"

ControllerID is the controller ID.

Variables

View Source
var Version = controller.MustParseVersion("0.0.1")

Version is the controller version.

Functions

This section is empty.

Types

type Config

type Config struct {

	// ProjectId is the project identifier used to locate the
	// platform-appropriate storage root for the helper's pipesock endpoint.
	// Defaults to "spacewave" when empty.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"projectId,omitempty"`
	// HelperBinaryName overrides the helper binary lookup name. Defaults to
	// "spacewave-helper" (".exe" on Windows).
	HelperBinaryName string `protobuf:"bytes,2,opt,name=helper_binary_name,json=helperBinaryName,proto3" json:"helperBinaryName,omitempty"`
	// WatchPluginIds are the plugin ids whose LoadPlugin directive state is
	// observed to drive the loading progress bar. When all listed plugins
	// become running, the helper is dismissed. When empty, defaults to the
	// stock Spacewave set (spacewave-core, spacewave-web, spacewave-app, web).
	WatchPluginIds []string `protobuf:"bytes,3,rep,name=watch_plugin_ids,json=watchPluginIds,proto3" json:"watchPluginIds,omitempty"`
	// IconPath is an optional path to a platform icon file. When empty, the
	// helper window renders without an app icon.
	IconPath string `protobuf:"bytes,4,opt,name=icon_path,json=iconPath,proto3" json:"iconPath,omitempty"`
	// contains filtered or unexported fields
}

Config configures the loader controller.

The loader controller spawns the cross-platform spacewave-helper binary in --loading mode during plugin bootstrap and terminates it when the app is ready or the controller's context is canceled. It is expected to run embedded in the shipped launcher binary so the loading UI is visible from the first moments after launch while plugins stream in from the remote world.

func (*Config) CloneMessageVT

func (m *Config) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*Config) CloneVT

func (m *Config) CloneVT() *Config

func (*Config) EqualMessageVT

func (this *Config) EqualMessageVT(thatMsg any) bool

func (*Config) EqualVT

func (this *Config) EqualVT(that *Config) bool

func (*Config) EqualsConfig

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

EqualsConfig checks if the config is equal to another.

func (*Config) GetConfigID

func (c *Config) GetConfigID() string

GetConfigID returns the unique string for this configuration type.

func (*Config) GetHelperBinaryName

func (x *Config) GetHelperBinaryName() string

func (*Config) GetIconPath

func (x *Config) GetIconPath() string

func (*Config) GetProjectId

func (x *Config) GetProjectId() string

func (*Config) GetWatchPluginIds

func (x *Config) GetWatchPluginIds() []string

func (*Config) MarshalJSON

func (x *Config) MarshalJSON() ([]byte, error)

MarshalJSON marshals the Config to JSON.

func (*Config) MarshalProtoJSON

func (x *Config) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the Config message to JSON.

func (*Config) MarshalProtoText

func (x *Config) MarshalProtoText() string

func (*Config) MarshalToSizedBufferVT

func (m *Config) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*Config) MarshalToVT

func (m *Config) MarshalToVT(dAtA []byte) (int, error)

func (*Config) MarshalVT

func (m *Config) MarshalVT() (dAtA []byte, err error)

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) Reset

func (x *Config) Reset()

func (*Config) ResolvedProjectID

func (c *Config) ResolvedProjectID() string

ResolvedProjectID returns ProjectId or the default.

func (*Config) ResolvedWatchPluginIDs

func (c *Config) ResolvedWatchPluginIDs() []string

ResolvedWatchPluginIDs returns WatchPluginIds or the default set.

func (*Config) SizeVT

func (m *Config) SizeVT() (n int)

func (*Config) String

func (x *Config) String() string

func (*Config) UnmarshalJSON

func (x *Config) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the Config from JSON.

func (*Config) UnmarshalProtoJSON

func (x *Config) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the Config message from JSON.

func (*Config) UnmarshalVT

func (m *Config) UnmarshalVT(dAtA []byte) error

func (*Config) Validate

func (c *Config) Validate() error

Validate checks the config. Both fields are optional with sensible defaults, so Validate always passes.

type Controller

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

Controller spawns the spacewave-helper in --loading mode and drives its progress bar by observing LoadPlugin directive state for each configured watch plugin. The helper is terminated on context cancellation.

func NewController

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

NewController constructs a new loader controller.

func (*Controller) Close

func (c *Controller) Close() error

Close releases controller-held resources. Nothing to release yet.

func (*Controller) Execute

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

Execute spawns the helper in --loading mode, watches LoadPlugin directive state for the configured plugin set, and forwards progress to the helper as each plugin transitions to Running. Blocks until the context is canceled. Missing helper binaries are logged and tolerated so the rest of the plugin stack still boots on platforms without a helper.

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,
	di directive.Instance,
) ([]directive.Resolver, error)

HandleDirective is not implemented: the loader controller does not currently expose directive resolvers.

type Factory

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

Factory constructs a loader controller factory.

func NewFactory

func NewFactory(bus bus.Bus) *Factory

NewFactory builds the factory.

func (*Factory) Construct

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

Construct constructs the associated controller given configuration.

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() controller.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