Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddressDisabler ¶
type AddressDisabler interface {
DisableAddresses(ctx context.Context, addressIDs []ids.AddressID, source device.EventSource, trigger device.EventTrigger) error
}
AddressDisabler is implemented by *device.Service.
type EnabledAddressFetcher ¶
type EnabledAddressFetcher interface {
GetEnabledAddressesForDevice(ctx context.Context, deviceID ids.DeviceID) ([]device.Address, error)
}
EnabledAddressFetcher is implemented by *device.Service.
type MaxAddressesProvider ¶
type MaxAddressesProvider interface {
GetMaxActiveAddresses(ctx context.Context, deviceID ids.DeviceID) (*int, error)
}
MaxAddressesProvider is implemented by *rule.Service.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service listens for address events and enforces the max active addresses rule asynchronously.
func NewService ¶
func NewService(provider MaxAddressesProvider, fetcher EnabledAddressFetcher, disabler AddressDisabler, logger *slog.Logger) *Service
NewService creates a new maxaddr enforcement service.
func (*Service) OnAddressEvent ¶
func (s *Service) OnAddressEvent(ctx context.Context, event device.AddressEvent)
OnAddressEvent implements device.AddressObserver. It filters events before enqueuing: only Created and Enabled events trigger enforcement.
func (*Service) OnRuleEvent ¶
OnRuleEvent implements rule.RuleObserver. It triggers enforcement when the max active addresses rule is enabled or updated.
Click to show internal directories.
Click to hide internal directories.