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 (x *Config) GetBackoff() *backoff.Backoff
- func (c *Config) GetConfigID() string
- func (x *Config) GetReleaseDelay() string
- func (x *Config) GetServiceIdPrefix() string
- func (x *Config) GetWebPkgIdList() []string
- func (x *Config) GetWebPkgIdPrefixes() []string
- func (x *Config) GetWebPkgIdRe() 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 (c *Config) ParseReleaseDelay() (time.Duration, error)
- func (c *Config) ParseWebPkgIdRe() (*regexp.Regexp, error)
- func (*Config) ProtoMessage()
- func (x *Config) Reset()
- 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
- type WebPkgServer
- func (s *WebPkgServer) GetWebPkgFsMux(ctx context.Context, _ string, _ func()) (srpc.Invoker, func(), error)
- func (s *WebPkgServer) GetWebPkgInfo(ctx context.Context, req *web_pkg_rpc.GetInfoRequest) (*web_pkg_rpc.GetInfoResponse, error)
- func (s *WebPkgServer) WebPkgFsRpc(strm web_pkg_rpc.SRPCAccessWebPkg_WebPkgFsRpcStream) error
Constants ¶
const ConfigID = ControllerID
ConfigID is the config identifier.
const ControllerID = "bldr/web/pkg/rpc/server"
ControllerID is the web pkg rpc server 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 {
// ServiceIdPrefix is the service id prefix to listen on.
// If empty, defaults to web.pkg.rpc.AccessWebPkg.
ServiceIdPrefix string `protobuf:"bytes,1,opt,name=service_id_prefix,json=serviceIdPrefix,proto3" json:"serviceIdPrefix,omitempty"`
// WebPkgIdRe is a regex string to match web pkgs IDs.
// Set to '.*' or empty to match all web pkgs ids.
WebPkgIdRe string `protobuf:"bytes,2,opt,name=web_pkg_id_re,json=webPkgIdRe,proto3" json:"webPkgIdRe,omitempty"`
// WebPkgIdPrefixes is a list of web pkg id prefixes to match.
// If the value is in this list, overrides web_pkg_id_re.
// Set to '.*' or empty to match all web pkgs ids.
WebPkgIdPrefixes []string `protobuf:"bytes,3,rep,name=web_pkg_id_prefixes,json=webPkgIdPrefixes,proto3" json:"webPkgIdPrefixes,omitempty"`
// WebPkgIdList is a list of web pkg IDs to resolve.
// If the value is in this list, overrides web_pkg_id_re and web_pkg_id_prefixes.
// Ignored if empty.
WebPkgIdList []string `protobuf:"bytes,4,rep,name=web_pkg_id_list,json=webPkgIdList,proto3" json:"webPkgIdList,omitempty"`
// ReleaseDelay is a delay duration to wait before releasing a unreferenced web pkg.
// If empty string, defaults to 1s (1 second).
ReleaseDelay string `protobuf:"bytes,5,opt,name=release_delay,json=releaseDelay,proto3" json:"releaseDelay,omitempty"`
// Backoff is the backoff config for resolving web pkgs.
// If unset, defaults to reasonable defaults.
Backoff *backoff.Backoff `protobuf:"bytes,6,opt,name=backoff,proto3" json:"backoff,omitempty"`
// contains filtered or unexported fields
}
Config configures the web pkg rpc server. Provides the AccessWebPkg RPC service. Resolves LookupRpcService. Provides one or more services according to the pkg ids:
- web.pkg.rpc.AccessWebPkg/@aperturerobotics/util/ -> LookupWebPkg<@aperturerobotics/util>
- web.pkg.rpc.AccessWebPkg/react -> LookupWebPkg<react>
func NewConfigWithRe ¶
NewConfigWithRe constructs a config with a web pkg id regex.
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) GetBackoff ¶
func (*Config) GetConfigID ¶
GetConfigID returns the unique string for this configuration type.
func (*Config) GetReleaseDelay ¶
func (*Config) GetServiceIdPrefix ¶
func (*Config) GetWebPkgIdList ¶
func (*Config) GetWebPkgIdPrefixes ¶
func (*Config) GetWebPkgIdRe ¶
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) ParseReleaseDelay ¶
ParseReleaseDelay parses the release delay field. Applies the default value if the field is empty.
func (*Config) ParseWebPkgIdRe ¶
ParseWebPkgIdRe parses the web pkg id regex field. Returns nil if the field was empty.
func (*Config) ProtoMessage ¶
func (*Config) ProtoMessage()
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 implements the web pkg rpc server.
func NewController ¶
NewController constructs a new controller.
func (*Controller) Close ¶
func (c *Controller) Close() error
Close releases any resources used by the controller.
func (*Controller) Execute ¶
func (c *Controller) Execute(ctx context.Context) error
Execute executes the controller goroutine.
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 asks if the handler can resolve the directive.
type WebPkgServer ¶
type WebPkgServer struct {
// contains filtered or unexported fields
}
WebPkgServer implements the WebPkg service server. Serves AccessWebPkg and FSCursorService on the same service ID.
func NewWebPkgServer ¶
func NewWebPkgServer(le *logrus.Entry, pkg web_pkg.WebPkg) *WebPkgServer
NewWebPkgServer constructs a new web pkg server.
func (*WebPkgServer) GetWebPkgFsMux ¶
func (s *WebPkgServer) GetWebPkgFsMux(ctx context.Context, _ string, _ func()) (srpc.Invoker, func(), error)
GetWebPkgFsMux returns the mux for the web pkg fs service.
func (*WebPkgServer) GetWebPkgInfo ¶
func (s *WebPkgServer) GetWebPkgInfo( ctx context.Context, req *web_pkg_rpc.GetInfoRequest, ) (*web_pkg_rpc.GetInfoResponse, error)
GetWebPkgInfo returns the information about the web pkg.
func (*WebPkgServer) WebPkgFsRpc ¶
func (s *WebPkgServer) WebPkgFsRpc(strm web_pkg_rpc.SRPCAccessWebPkg_WebPkgFsRpcStream) error
WebPkgFsRpc performs an RPC against the web pkg filesystem FSCursorService.