Documentation
¶
Index ¶
- Variables
- func WithFanSpeedApiClientFactory(f func(name string) (traits.FanSpeedApiClient, error)) router.Option
- func WithFanSpeedInfoClientFactory(f func(name string) (traits.FanSpeedInfoClient, error)) router.Option
- func WrapApi(server traits.FanSpeedApiServer) traits.FanSpeedApiClient
- func WrapInfo(server traits.FanSpeedInfoServer) traits.FanSpeedInfoClient
- type ApiRouter
- func (r *ApiRouter) Add(name string, client any) any
- func (r *ApiRouter) AddFanSpeedApiClient(name string, client traits.FanSpeedApiClient) traits.FanSpeedApiClient
- func (r *ApiRouter) GetFanSpeed(ctx context.Context, request *traits.GetFanSpeedRequest) (*traits.FanSpeed, error)
- func (r *ApiRouter) GetFanSpeedApiClient(name string) (traits.FanSpeedApiClient, error)
- func (r *ApiRouter) HoldsType(client any) bool
- func (r *ApiRouter) PullFanSpeed(request *traits.PullFanSpeedRequest, ...) error
- func (r *ApiRouter) Register(server *grpc.Server)
- func (r *ApiRouter) RemoveFanSpeedApiClient(name string) traits.FanSpeedApiClient
- func (r *ApiRouter) ReverseFanSpeedDirection(ctx context.Context, request *traits.ReverseFanSpeedDirectionRequest) (*traits.FanSpeed, error)
- func (r *ApiRouter) UpdateFanSpeed(ctx context.Context, request *traits.UpdateFanSpeedRequest) (*traits.FanSpeed, error)
- type FanSpeedChange
- type InfoRouter
- func (r *InfoRouter) Add(name string, client any) any
- func (r *InfoRouter) AddFanSpeedInfoClient(name string, client traits.FanSpeedInfoClient) traits.FanSpeedInfoClient
- func (r *InfoRouter) DescribeFanSpeed(ctx context.Context, request *traits.DescribeFanSpeedRequest) (*traits.FanSpeedSupport, error)
- func (r *InfoRouter) GetFanSpeedInfoClient(name string) (traits.FanSpeedInfoClient, error)
- func (r *InfoRouter) HoldsType(client any) bool
- func (r *InfoRouter) Register(server *grpc.Server)
- func (r *InfoRouter) RemoveFanSpeedInfoClient(name string) traits.FanSpeedInfoClient
- type Model
- func (m *Model) DeriveValues(old, new proto.Message)
- func (m *Model) FanSpeed(opts ...resource.ReadOption) *traits.FanSpeed
- func (m *Model) PullFanSpeed(ctx context.Context, opts ...resource.ReadOption) <-chan FanSpeedChange
- func (m *Model) UpdateFanSpeed(fanSpeed *traits.FanSpeed, opts ...resource.WriteOption) (*traits.FanSpeed, error)
- type ModelServer
- func (s *ModelServer) GetFanSpeed(_ context.Context, request *traits.GetFanSpeedRequest) (*traits.FanSpeed, error)
- func (s *ModelServer) PullFanSpeed(request *traits.PullFanSpeedRequest, ...) error
- func (s *ModelServer) Register(server *grpc.Server)
- func (s *ModelServer) ReverseFanSpeedDirection(ctx context.Context, request *traits.ReverseFanSpeedDirectionRequest) (*traits.FanSpeed, error)
- func (s *ModelServer) Unwrap() any
- func (s *ModelServer) UpdateFanSpeed(_ context.Context, request *traits.UpdateFanSpeedRequest) (*traits.FanSpeed, error)
- type Preset
Constants ¶
This section is empty.
Variables ¶
var DefaultPresets = []Preset{
{Name: "off", Percentage: 0},
{Name: "low", Percentage: 15},
{Name: "med", Percentage: 40},
{Name: "high", Percentage: 75},
{Name: "full", Percentage: 100},
}
Functions ¶
func WithFanSpeedApiClientFactory ¶
func WithFanSpeedApiClientFactory(f func(name string) (traits.FanSpeedApiClient, error)) router.Option
WithFanSpeedApiClientFactory instructs the router to create a new client the first time Get is called for that name.
func WithFanSpeedInfoClientFactory ¶
func WithFanSpeedInfoClientFactory(f func(name string) (traits.FanSpeedInfoClient, error)) router.Option
WithFanSpeedInfoClientFactory instructs the router to create a new client the first time Get is called for that name.
func WrapApi ¶
func WrapApi(server traits.FanSpeedApiServer) traits.FanSpeedApiClient
WrapApi adapts a traits.FanSpeedApiServer and presents it as a traits.FanSpeedApiClient
func WrapInfo ¶
func WrapInfo(server traits.FanSpeedInfoServer) traits.FanSpeedInfoClient
WrapInfo adapts a traits.FanSpeedInfoServer and presents it as a traits.FanSpeedInfoClient
Types ¶
type ApiRouter ¶
type ApiRouter struct {
traits.UnimplementedFanSpeedApiServer
router.Router
}
ApiRouter is a traits.FanSpeedApiServer that allows routing named requests to specific traits.FanSpeedApiClient
func NewApiRouter ¶
func (*ApiRouter) Add ¶
Add extends Router.Add to panic if client is not of type traits.FanSpeedApiClient.
func (*ApiRouter) AddFanSpeedApiClient ¶
func (r *ApiRouter) AddFanSpeedApiClient(name string, client traits.FanSpeedApiClient) traits.FanSpeedApiClient
func (*ApiRouter) GetFanSpeed ¶
func (*ApiRouter) GetFanSpeedApiClient ¶
func (r *ApiRouter) GetFanSpeedApiClient(name string) (traits.FanSpeedApiClient, error)
func (*ApiRouter) PullFanSpeed ¶
func (r *ApiRouter) PullFanSpeed(request *traits.PullFanSpeedRequest, server traits.FanSpeedApi_PullFanSpeedServer) error
func (*ApiRouter) RemoveFanSpeedApiClient ¶
func (r *ApiRouter) RemoveFanSpeedApiClient(name string) traits.FanSpeedApiClient
func (*ApiRouter) ReverseFanSpeedDirection ¶
func (*ApiRouter) UpdateFanSpeed ¶
type InfoRouter ¶
type InfoRouter struct {
traits.UnimplementedFanSpeedInfoServer
router.Router
}
InfoRouter is a traits.FanSpeedInfoServer that allows routing named requests to specific traits.FanSpeedInfoClient
func NewInfoRouter ¶
func NewInfoRouter(opts ...router.Option) *InfoRouter
func (*InfoRouter) Add ¶
func (r *InfoRouter) Add(name string, client any) any
Add extends Router.Add to panic if client is not of type traits.FanSpeedInfoClient.
func (*InfoRouter) AddFanSpeedInfoClient ¶
func (r *InfoRouter) AddFanSpeedInfoClient(name string, client traits.FanSpeedInfoClient) traits.FanSpeedInfoClient
func (*InfoRouter) DescribeFanSpeed ¶
func (r *InfoRouter) DescribeFanSpeed(ctx context.Context, request *traits.DescribeFanSpeedRequest) (*traits.FanSpeedSupport, error)
func (*InfoRouter) GetFanSpeedInfoClient ¶
func (r *InfoRouter) GetFanSpeedInfoClient(name string) (traits.FanSpeedInfoClient, error)
func (*InfoRouter) HoldsType ¶
func (r *InfoRouter) HoldsType(client any) bool
func (*InfoRouter) Register ¶
func (r *InfoRouter) Register(server *grpc.Server)
func (*InfoRouter) RemoveFanSpeedInfoClient ¶
func (r *InfoRouter) RemoveFanSpeedInfoClient(name string) traits.FanSpeedInfoClient
type Model ¶
type Model struct {
// contains filtered or unexported fields
}
Model provides a data structure for supporting the Fan Speed trait. Unless configured otherwise, this model supports DefaultPresets presets.
func NewModel ¶
func NewModel() *Model
NewModel constructs a Model with default values using the first of DefaultPresets.
func (*Model) DeriveValues ¶
DeriveValues derives values that haven't been set from those that have. For example setting percentage when the preset changes. Updated values will be set on new.
func (*Model) FanSpeed ¶
func (m *Model) FanSpeed(opts ...resource.ReadOption) *traits.FanSpeed
FanSpeed gets the current fan speed.
func (*Model) PullFanSpeed ¶
func (m *Model) PullFanSpeed(ctx context.Context, opts ...resource.ReadOption) <-chan FanSpeedChange
func (*Model) UpdateFanSpeed ¶
func (m *Model) UpdateFanSpeed(fanSpeed *traits.FanSpeed, opts ...resource.WriteOption) (*traits.FanSpeed, error)
UpdateFanSpeed changes the fan speed. Provide write options to support features like relative changes. Related properties of the fan speed will be set automatically, for example if the preset changes then the percentage and preset index are also changed. Providing a resource.InterceptAfter option will disable related property updating. Using DeriveValues can re-enable related property computation if needed.
type ModelServer ¶
type ModelServer struct {
traits.UnimplementedFanSpeedApiServer
// contains filtered or unexported fields
}
ModelServer adapts a Model as a traits.FanSpeedApiServer.
func NewModelServer ¶
func NewModelServer(model *Model) *ModelServer
func (*ModelServer) GetFanSpeed ¶
func (s *ModelServer) GetFanSpeed(_ context.Context, request *traits.GetFanSpeedRequest) (*traits.FanSpeed, error)
func (*ModelServer) PullFanSpeed ¶
func (s *ModelServer) PullFanSpeed(request *traits.PullFanSpeedRequest, server traits.FanSpeedApi_PullFanSpeedServer) error
func (*ModelServer) Register ¶
func (s *ModelServer) Register(server *grpc.Server)
func (*ModelServer) ReverseFanSpeedDirection ¶
func (s *ModelServer) ReverseFanSpeedDirection(ctx context.Context, request *traits.ReverseFanSpeedDirectionRequest) (*traits.FanSpeed, error)
func (*ModelServer) Unwrap ¶
func (s *ModelServer) Unwrap() any
func (*ModelServer) UpdateFanSpeed ¶
func (s *ModelServer) UpdateFanSpeed(_ context.Context, request *traits.UpdateFanSpeedRequest) (*traits.FanSpeed, error)