38 lines
860 B
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()
|
|
}
|