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) }