Documentation
¶
Index ¶
- Constants
- Variables
- type Config
- func (m *Config) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *Config) CloneVT() *Config
- func (this *Config) EqualMessageVT(thatMsg any) bool
- func (this *Config) EqualVT(that *Config) bool
- func (c *Config) EqualsConfig(other config.Config) bool
- func (c *Config) GetConfigID() string
- func (x *Config) GetHelperBinaryName() string
- func (x *Config) GetIconPath() string
- func (x *Config) GetProjectId() string
- func (x *Config) GetWatchPluginIds() []string
- func (x *Config) MarshalJSON() ([]byte, error)
- func (x *Config) MarshalProtoJSON(s *json.MarshalState)
- func (x *Config) MarshalProtoText() string
- func (m *Config) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Config) MarshalToVT(dAtA []byte) (int, error)
- func (m *Config) MarshalVT() (dAtA []byte, err error)
- func (*Config) ProtoMessage()
- func (x *Config) Reset()
- func (c *Config) ResolvedProjectID() string
- func (c *Config) ResolvedWatchPluginIDs() []string
- func (m *Config) SizeVT() (n int)
- func (x *Config) String() string
- func (x *Config) UnmarshalJSON(b []byte) error
- func (x *Config) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *Config) UnmarshalVT(dAtA []byte) error
- func (c *Config) Validate() error
- type Controller
- type Factory
- func (t *Factory) Construct(ctx context.Context, conf config.Config, opts controller.ConstructOpts) (controller.Controller, error)
- func (t *Factory) ConstructConfig() config.Config
- func (t *Factory) GetConfigID() string
- func (t *Factory) GetControllerID() string
- func (t *Factory) GetVersion() controller.Version
Constants ¶
const ConfigID = ControllerID
ConfigID is the config identifier.
const ControllerID = "spacewave/loader/controller"
ControllerID is the controller ID.
Variables ¶
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) EqualMessageVT ¶
func (*Config) EqualsConfig ¶
EqualsConfig checks if the config is equal to another.
func (*Config) GetConfigID ¶
GetConfigID returns the unique string for this configuration type.
func (*Config) GetHelperBinaryName ¶
func (*Config) GetIconPath ¶
func (*Config) GetProjectId ¶
func (*Config) GetWatchPluginIds ¶
func (*Config) MarshalJSON ¶
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 (*Config) MarshalToSizedBufferVT ¶
func (*Config) ProtoMessage ¶
func (*Config) ProtoMessage()
func (*Config) ResolvedProjectID ¶
ResolvedProjectID returns ProjectId or the default.
func (*Config) ResolvedWatchPluginIDs ¶
ResolvedWatchPluginIDs returns WatchPluginIds or the default set.
func (*Config) UnmarshalJSON ¶
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 ¶
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 ¶
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 (*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 ¶
ConstructConfig constructs an instance of the controller configuration.
func (*Factory) GetConfigID ¶
GetConfigID returns the configuration ID for the controller.
func (*Factory) GetControllerID ¶
GetControllerID returns the unique ID for the controller.
func (*Factory) GetVersion ¶
func (t *Factory) GetVersion() controller.Version
GetVersion returns the version of this controller.