Documentation
¶
Index ¶
- func WithMeterApiClientFactory(f func(name string) (traits.MeterApiClient, error)) router.Option
- func WithMeterInfoClientFactory(f func(name string) (traits.MeterInfoClient, error)) router.Option
- type ApiRouter
- func (r *ApiRouter) Add(name string, client any) any
- func (r *ApiRouter) AddMeterApiClient(name string, client traits.MeterApiClient) traits.MeterApiClient
- func (r *ApiRouter) GetMeterApiClient(name string) (traits.MeterApiClient, error)
- func (r *ApiRouter) GetMeterReading(ctx context.Context, request *traits.GetMeterReadingRequest) (*traits.MeterReading, error)
- func (r *ApiRouter) HoldsType(client any) bool
- func (r *ApiRouter) PullMeterReadings(request *traits.PullMeterReadingsRequest, ...) error
- func (r *ApiRouter) Register(server grpc.ServiceRegistrar)
- func (r *ApiRouter) RemoveMeterApiClient(name string) traits.MeterApiClient
- type ApiWrapper
- type InfoRouter
- func (r *InfoRouter) Add(name string, client any) any
- func (r *InfoRouter) AddMeterInfoClient(name string, client traits.MeterInfoClient) traits.MeterInfoClient
- func (r *InfoRouter) DescribeMeterReading(ctx context.Context, request *traits.DescribeMeterReadingRequest) (*traits.MeterReadingSupport, error)
- func (r *InfoRouter) GetMeterInfoClient(name string) (traits.MeterInfoClient, error)
- func (r *InfoRouter) HoldsType(client any) bool
- func (r *InfoRouter) Register(server grpc.ServiceRegistrar)
- func (r *InfoRouter) RemoveMeterInfoClient(name string) traits.MeterInfoClient
- type InfoServer
- type InfoWrapper
- type Model
- func (m *Model) GetMeterReading(opts ...resource.ReadOption) (*traits.MeterReading, error)
- func (m *Model) PullMeterReadings(ctx context.Context, opts ...resource.ReadOption) <-chan PullMeterReadingChange
- func (m *Model) RecordReading(val float32) (*traits.MeterReading, error)
- func (m *Model) Reset() (*traits.MeterReading, error)
- func (m *Model) UpdateMeterReading(meterReading *traits.MeterReading, opts ...resource.WriteOption) (*traits.MeterReading, error)
- type ModelServer
- func (m *ModelServer) GetMeterReading(_ context.Context, request *traits.GetMeterReadingRequest) (*traits.MeterReading, error)
- func (m *ModelServer) PullMeterReadings(request *traits.PullMeterReadingsRequest, ...) error
- func (m *ModelServer) Register(server *grpc.Server)
- func (m *ModelServer) Unwrap() any
- type PullMeterReadingChange
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WithMeterApiClientFactory ¶
WithMeterApiClientFactory instructs the router to create a new client the first time Get is called for that name.
func WithMeterInfoClientFactory ¶
WithMeterInfoClientFactory instructs the router to create a new client the first time Get is called for that name.
Types ¶
type ApiRouter ¶
type ApiRouter struct { traits.UnimplementedMeterApiServer router.Router }
ApiRouter is a traits.MeterApiServer that allows routing named requests to specific traits.MeterApiClient
func NewApiRouter ¶
func (*ApiRouter) Add ¶
Add extends Router.Add to panic if client is not of type traits.MeterApiClient.
func (*ApiRouter) AddMeterApiClient ¶
func (r *ApiRouter) AddMeterApiClient(name string, client traits.MeterApiClient) traits.MeterApiClient
func (*ApiRouter) GetMeterApiClient ¶
func (r *ApiRouter) GetMeterApiClient(name string) (traits.MeterApiClient, error)
func (*ApiRouter) GetMeterReading ¶
func (r *ApiRouter) GetMeterReading(ctx context.Context, request *traits.GetMeterReadingRequest) (*traits.MeterReading, error)
func (*ApiRouter) PullMeterReadings ¶
func (r *ApiRouter) PullMeterReadings(request *traits.PullMeterReadingsRequest, server traits.MeterApi_PullMeterReadingsServer) error
func (*ApiRouter) Register ¶
func (r *ApiRouter) Register(server grpc.ServiceRegistrar)
func (*ApiRouter) RemoveMeterApiClient ¶
func (r *ApiRouter) RemoveMeterApiClient(name string) traits.MeterApiClient
type ApiWrapper ¶
type ApiWrapper struct { traits.MeterApiClient // contains filtered or unexported fields }
func WrapApi ¶
func WrapApi(server traits.MeterApiServer) *ApiWrapper
WrapApi adapts a traits.MeterApiServer and presents it as a traits.MeterApiClient
func (*ApiWrapper) Unwrap ¶
func (w *ApiWrapper) Unwrap() any
Unwrap implements wrap.Unwrapper and returns the underlying server instance as an unknown type.
func (*ApiWrapper) UnwrapServer ¶
func (w *ApiWrapper) UnwrapServer() traits.MeterApiServer
UnwrapServer returns the underlying server instance.
func (*ApiWrapper) UnwrapService ¶
func (w *ApiWrapper) UnwrapService() (grpc.ClientConnInterface, grpc.ServiceDesc)
type InfoRouter ¶
type InfoRouter struct { traits.UnimplementedMeterInfoServer router.Router }
InfoRouter is a traits.MeterInfoServer that allows routing named requests to specific traits.MeterInfoClient
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.MeterInfoClient.
func (*InfoRouter) AddMeterInfoClient ¶
func (r *InfoRouter) AddMeterInfoClient(name string, client traits.MeterInfoClient) traits.MeterInfoClient
func (*InfoRouter) DescribeMeterReading ¶
func (r *InfoRouter) DescribeMeterReading(ctx context.Context, request *traits.DescribeMeterReadingRequest) (*traits.MeterReadingSupport, error)
func (*InfoRouter) GetMeterInfoClient ¶
func (r *InfoRouter) GetMeterInfoClient(name string) (traits.MeterInfoClient, error)
func (*InfoRouter) HoldsType ¶
func (r *InfoRouter) HoldsType(client any) bool
func (*InfoRouter) Register ¶
func (r *InfoRouter) Register(server grpc.ServiceRegistrar)
func (*InfoRouter) RemoveMeterInfoClient ¶
func (r *InfoRouter) RemoveMeterInfoClient(name string) traits.MeterInfoClient
type InfoServer ¶
type InfoServer struct { traits.UnimplementedMeterInfoServer MeterReading *traits.MeterReadingSupport }
func (*InfoServer) DescribeMeterReading ¶
func (i *InfoServer) DescribeMeterReading(_ context.Context, _ *traits.DescribeMeterReadingRequest) (*traits.MeterReadingSupport, error)
type InfoWrapper ¶
type InfoWrapper struct { traits.MeterInfoClient // contains filtered or unexported fields }
func WrapInfo ¶
func WrapInfo(server traits.MeterInfoServer) *InfoWrapper
WrapInfo adapts a traits.MeterInfoServer and presents it as a traits.MeterInfoClient
func (*InfoWrapper) Unwrap ¶
func (w *InfoWrapper) Unwrap() any
Unwrap implements wrap.Unwrapper and returns the underlying server instance as an unknown type.
func (*InfoWrapper) UnwrapServer ¶
func (w *InfoWrapper) UnwrapServer() traits.MeterInfoServer
UnwrapServer returns the underlying server instance.
func (*InfoWrapper) UnwrapService ¶
func (w *InfoWrapper) UnwrapService() (grpc.ClientConnInterface, grpc.ServiceDesc)
type Model ¶
type Model struct {
// contains filtered or unexported fields
}
func (*Model) GetMeterReading ¶
func (m *Model) GetMeterReading(opts ...resource.ReadOption) (*traits.MeterReading, error)
func (*Model) PullMeterReadings ¶
func (m *Model) PullMeterReadings(ctx context.Context, opts ...resource.ReadOption) <-chan PullMeterReadingChange
func (*Model) RecordReading ¶
func (m *Model) RecordReading(val float32) (*traits.MeterReading, error)
RecordReading records a new usage value, updating end time to now.
func (*Model) Reset ¶
func (m *Model) Reset() (*traits.MeterReading, error)
Reset resets the meter to zero, updating both start and end times to now.
func (*Model) UpdateMeterReading ¶
func (m *Model) UpdateMeterReading(meterReading *traits.MeterReading, opts ...resource.WriteOption) (*traits.MeterReading, error)
type ModelServer ¶
type ModelServer struct { traits.UnimplementedMeterApiServer // contains filtered or unexported fields }
func NewModelServer ¶
func NewModelServer(model *Model) *ModelServer
func (*ModelServer) GetMeterReading ¶
func (m *ModelServer) GetMeterReading(_ context.Context, request *traits.GetMeterReadingRequest) (*traits.MeterReading, error)
func (*ModelServer) PullMeterReadings ¶
func (m *ModelServer) PullMeterReadings(request *traits.PullMeterReadingsRequest, server traits.MeterApi_PullMeterReadingsServer) error
func (*ModelServer) Register ¶
func (m *ModelServer) Register(server *grpc.Server)
func (*ModelServer) Unwrap ¶
func (m *ModelServer) Unwrap() any
type PullMeterReadingChange ¶
type PullMeterReadingChange struct { Value *traits.MeterReading ChangeTime time.Time }