mirror of
https://codeberg.org/cunicu/cunicu.git
synced 2025-09-26 21:01:14 +08:00
29 lines
799 B
Go
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)
|
|
}
|
|
}
|