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