Files
cunicu/pkg/daemon/watcher_handlers.go
Steffen Vogel 3bee839348 fix: Update copyright years
Signed-off-by: Steffen Vogel <post@steffenvogel.de>
2025-01-01 22:45:39 +01:00

29 lines
799 B
Go

// SPDX-FileCopyrightText: 2023-2025 Steffen Vogel <post@steffenvogel.de>
// SPDX-License-Identifier: Apache-2.0
package daemon
import "slices"
type InterfaceHandler interface {
OnInterfaceAdded(i *Interface)
OnInterfaceRemoved(i *Interface)
}
// AddAllHandler adds a new handler to all the events observed by the watcher.
func (w *Watcher) AddAllHandler(h AllHandler) {
w.AddInterfaceHandler(&allHandler{h})
}
// AddPeerHandler registers an handler for peer-related events.
func (w *Watcher) AddPeerHandler(h PeerHandler) {
w.AddInterfaceHandler(&peerHandler{h})
}
// AddInterfaceHandler registers an handler for interface-related events.
func (w *Watcher) AddInterfaceHandler(h InterfaceHandler) {
if !slices.Contains(w.onInterface, h) {
w.onInterface = append(w.onInterface, h)
}
}