src.dualinventive.com/go/devsim/daemon/client.go

38 lines
860 B
Go

package daemon
import (
"google.golang.org/grpc"
"src.dualinventive.com/go/devsim"
"src.dualinventive.com/go/devsim/repository"
"src.dualinventive.com/go/devsim/simulator"
)
// Client over gRPC which interacts with a Daemon
type Client struct {
Repository repository.Service
Simulator simulator.Service
c *grpc.ClientConn
}
// NewClient creates a client over grpc connected to target
func NewClient(target string) (*Client, error) {
c, err := grpc.Dial(target, grpc.WithInsecure())
if err != nil {
return nil, err
}
rclient := devsim.NewRepositoryServiceClient(c)
sclient := devsim.NewSimulatorServiceClient(c)
return &Client{
c: c,
Repository: &repositoryClient{c: rclient},
Simulator: &simulatorClient{c: sclient},
}, nil
}
// Close the client connection
func (c *Client) Close() error {
return c.c.Close()
}