40 lines
1 KiB
Go
40 lines
1 KiB
Go
package master
|
|
|
|
import (
|
|
"git.wzray.com/homelab/hivemind/internal/transport"
|
|
"git.wzray.com/homelab/hivemind/internal/types"
|
|
)
|
|
|
|
type Client struct {
|
|
caller transport.Caller
|
|
}
|
|
|
|
func New(caller transport.Caller) *Client {
|
|
return &Client{
|
|
caller: caller,
|
|
}
|
|
}
|
|
|
|
func (c *Client) Heartbeat(endpoint string, n types.Node) (types.Nodes, error) {
|
|
return heartbeatRoute.Call(c.caller, endpoint, n)
|
|
}
|
|
|
|
func (c *Client) Join(endpoint string, n types.Node) (types.Nodes, error) {
|
|
return joinRoute.Call(c.caller, endpoint, n)
|
|
}
|
|
|
|
func (c *Client) Leave(endpoint string, n types.Node) error {
|
|
return leaveRoute.CallNoOutput(c.caller, endpoint, n)
|
|
}
|
|
|
|
func (c *Client) EventHeartbeat(endpoint string, n types.Node) (types.Nodes, error) {
|
|
return eventHeartbeatRoute.Call(c.caller, endpoint, n)
|
|
}
|
|
|
|
func (c *Client) EventJoin(endpoint string, n types.Node) (types.Nodes, error) {
|
|
return eventJoinRoute.Call(c.caller, endpoint, n)
|
|
}
|
|
|
|
func (c *Client) EventLeave(endpoint string, n types.Node) error {
|
|
return eventLeaveRoute.CallNoOutput(c.caller, endpoint, n)
|
|
}
|