Update the code generator initialisation

This commit is contained in:
Asim
2015-12-06 22:44:17 +00:00
parent 15d5299997
commit 2f02119e21
3 changed files with 63 additions and 48 deletions

View File

@@ -52,6 +52,8 @@ hello.proto
syntax = "proto3";
// package name is used as the service name for discovery
// if service name is not passed in when initialising the
// client
package go.micro.srv.greeter;
service Say {
@@ -82,40 +84,45 @@ protoc --go_out=plugins=micro:. hello.proto
// Client API for Say service
type SayClient interface {
Hello(ctx context.Context, in *Request) (*Response, error)
Hello(ctx context.Context, in *Request) (*Response, error)
}
type sayClient struct {
c client.Client
c client.Client
serviceName string
}
func NewSayClient(c client.Client) SayClient {
if c == nil {
c = client.NewClient()
}
return &sayClient{
c: c,
}
func NewSayClient(serviceName string, c client.Client) SayClient {
if c == nil {
c = client.NewClient()
}
if len(serviceName) == 0 {
serviceName = "go.micro.srv.greeter"
}
return &sayClient{
c: c,
serviceName: serviceName,
}
}
func (c *sayClient) Hello(ctx context.Context, in *Request) (*Response, error) {
req := c.c.NewRequest("go.micro.srv.greeter", "Say.Hello", in)
out := new(Response)
err := c.c.Call(ctx, req, out)
if err != nil {
return nil, err
}
return out, nil
req := c.c.NewRequest(c.serviceName, "Say.Hello", in)
out := new(Response)
err := c.c.Call(ctx, req, out)
if err != nil {
return nil, err
}
return out, nil
}
// Server API for Say service
type SayServer interface {
Hello(context.Context, *Request, *Response) error
type SayHandler interface {
Hello(context.Context, *Request, *Response) error
}
func RegisterSayServer(s server.Server, srv SayServer) {
s.Handle(s.NewHandler(srv))
func RegisterSayHandler(s server.Server, hdlr SayHandler) {
s.Handle(s.NewHandler(hdlr))
}
```
@@ -131,7 +138,9 @@ import (
)
func main() {
cl := hello.NewSayClient(client.DefaultClient)
cl := hello.NewSayClient("go.micro.srv.greeter", client.DefaultClient)
// alternative initialisation
// cl := hello.NewSayClient("", nil)
rsp, err := cl.Hello(contex.Background(), &hello.Request{"Name": "John"})
if err != nil {

View File

@@ -9,7 +9,7 @@ import (
)
var (
cl = example.NewExampleClient(nil)
cl = example.NewExampleClient("go.micro.srv.example", nil)
)
func call(i int) {