26 lines
819 B
Go
26 lines
819 B
Go
package master
|
|
|
|
import (
|
|
"git.wzray.com/homelab/hivemind/internal/transport"
|
|
"git.wzray.com/homelab/hivemind/internal/types"
|
|
)
|
|
|
|
type MasterHandlers interface {
|
|
Heartbeat(types.Node) (types.Nodes, error)
|
|
Join(types.Node) (types.Nodes, error)
|
|
Leave(types.Node) error
|
|
|
|
EventHeartbeat(types.Node) (types.Nodes, error)
|
|
EventJoin(types.Node) (types.Nodes, error)
|
|
EventLeave(types.Node) error
|
|
}
|
|
|
|
func Register(registrator transport.Registrator, h MasterHandlers) {
|
|
heartbeatRoute.Register(registrator, h.Heartbeat)
|
|
joinRoute.Register(registrator, h.Join)
|
|
leaveRoute.Register(registrator, transport.WithoutOutput(h.Leave))
|
|
|
|
eventHeartbeatRoute.Register(registrator, h.EventHeartbeat)
|
|
eventJoinRoute.Register(registrator, h.EventJoin)
|
|
eventLeaveRoute.Register(registrator, transport.WithoutOutput(h.EventLeave))
|
|
}
|