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

View File

@ -1,12 +1,12 @@
// Code generated by protoc-gen-go.
// source: example.proto
// source: go-micro/examples/server/proto/example/example.proto
// DO NOT EDIT!
/*
Package go_micro_srv_example is a generated protocol buffer package.
It is generated from these files:
example.proto
go-micro/examples/server/proto/example/example.proto
It has these top-level messages:
Message
@ -22,9 +22,9 @@ import fmt "fmt"
import math "math"
import (
context "golang.org/x/net/context"
client "github.com/micro/go-micro/client"
server "github.com/micro/go-micro/server"
context "golang.org/x/net/context"
)
// Reference imports to suppress errors if they are not otherwise used.
@ -98,20 +98,25 @@ type ExampleClient interface {
}
type exampleClient struct {
c client.Client
c client.Client
serviceName string
}
func NewExampleClient(c client.Client) ExampleClient {
func NewExampleClient(serviceName string, c client.Client) ExampleClient {
if c == nil {
c = client.NewClient()
}
if len(serviceName) == 0 {
serviceName = "go.micro.srv.example"
}
return &exampleClient{
c: c,
c: c,
serviceName: serviceName,
}
}
func (c *exampleClient) Call(ctx context.Context, in *Request) (*Response, error) {
req := c.c.NewRequest("go.micro.srv.example", "Example.Call", in)
req := c.c.NewRequest(c.serviceName, "Example.Call", in)
out := new(Response)
err := c.c.Call(ctx, req, out)
if err != nil {
@ -121,7 +126,7 @@ func (c *exampleClient) Call(ctx context.Context, in *Request) (*Response, error
}
func (c *exampleClient) Stream(ctx context.Context, in *StreamingRequest) (Example_StreamClient, error) {
req := c.c.NewRequest("go.micro.srv.example", "Example.Stream", in)
req := c.c.NewRequest(c.serviceName, "Example.Stream", in)
outCh := make(chan *StreamingResponse)
stream, err := c.c.Stream(ctx, req, outCh)
if err != nil {
@ -150,29 +155,30 @@ func (x *exampleStreamClient) Next() (*StreamingResponse, error) {
// Server API for Example service
type ExampleServer interface {
type ExampleHandler interface {
Call(context.Context, *Request, *Response) error
Stream(context.Context, func(*StreamingResponse) error) error
}
func RegisterExampleServer(s server.Server, srv ExampleServer) {
s.Handle(s.NewHandler(srv))
func RegisterExampleHandler(s server.Server, hdlr ExampleHandler) {
s.Handle(s.NewHandler(hdlr))
}
var fileDescriptor0 = []byte{
// 211 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x4d, 0xad, 0x48, 0xcc,
0x2d, 0xc8, 0x49, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x49, 0xcf, 0xd7, 0xcb, 0xcd,
0x4c, 0x2e, 0xca, 0xd7, 0x2b, 0x2e, 0x2a, 0xd3, 0x83, 0xca, 0x29, 0x89, 0x71, 0xb1, 0xfb, 0xa6,
0x16, 0x17, 0x27, 0xa6, 0xa7, 0x0a, 0x71, 0x73, 0x31, 0x17, 0x27, 0x56, 0x4a, 0x30, 0x2a, 0x30,
0x6a, 0x70, 0x2a, 0x89, 0x73, 0xb1, 0x07, 0xa5, 0x16, 0x96, 0xa6, 0x16, 0x97, 0x08, 0xf1, 0x70,
0xb1, 0xe4, 0x25, 0xe6, 0xa6, 0xc2, 0x25, 0x38, 0x82, 0x52, 0x8b, 0x0b, 0xf2, 0xf3, 0x8a, 0xc1,
0x3a, 0x72, 0x8b, 0xd3, 0xa1, 0x12, 0x8a, 0x5c, 0x02, 0xc1, 0x25, 0x45, 0xa9, 0x89, 0xb9, 0x99,
0x79, 0xe9, 0x30, 0xad, 0xbc, 0x5c, 0xac, 0xc9, 0xf9, 0xa5, 0x79, 0x25, 0x60, 0x25, 0xcc, 0x4a,
0x4a, 0x5c, 0x82, 0x48, 0x4a, 0xa0, 0x86, 0xa0, 0xaa, 0x31, 0xda, 0xc8, 0xc8, 0xc5, 0xee, 0x0a,
0x71, 0x9c, 0x90, 0x3b, 0x17, 0x8b, 0x73, 0x62, 0x4e, 0x8e, 0x90, 0xac, 0x1e, 0x36, 0xb7, 0xeb,
0x41, 0x6d, 0x91, 0x92, 0xc3, 0x25, 0x0d, 0xb1, 0x41, 0x89, 0x41, 0x28, 0x96, 0x8b, 0x0d, 0x62,
0xb1, 0x90, 0x1a, 0x76, 0xb5, 0xe8, 0x2e, 0x97, 0x52, 0x27, 0xa8, 0x0e, 0x66, 0xb8, 0x01, 0x63,
0x12, 0x1b, 0x38, 0x84, 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x71, 0xe5, 0x8f, 0x25, 0x72,
0x01, 0x00, 0x00,
// 230 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x84, 0x90, 0xcd, 0x4a, 0xc5, 0x30,
0x10, 0x85, 0x0d, 0xf7, 0x7a, 0xab, 0xa3, 0x82, 0x06, 0x51, 0x29, 0x28, 0x9a, 0x85, 0xba, 0x31,
0x15, 0xf5, 0x0d, 0x44, 0x5c, 0xb9, 0xa9, 0x6b, 0x17, 0xb1, 0x0c, 0xa1, 0xd0, 0x24, 0x35, 0x93,
0x16, 0x7d, 0x2c, 0xdf, 0x50, 0x48, 0xd3, 0xa2, 0x52, 0x71, 0x15, 0x98, 0xf3, 0x9d, 0x1f, 0x02,
0x77, 0xda, 0x5d, 0x99, 0xba, 0xf2, 0xae, 0xc0, 0x77, 0x65, 0xda, 0x06, 0xa9, 0x20, 0xf4, 0x3d,
0xfa, 0xa2, 0xf5, 0x2e, 0x4c, 0xd7, 0xf1, 0x95, 0xf1, 0xca, 0xf7, 0xb5, 0x93, 0xd1, 0x25, 0xc9,
0xf7, 0x32, 0x69, 0xe2, 0x00, 0xb2, 0x27, 0x24, 0x52, 0x1a, 0xf9, 0x16, 0x2c, 0x48, 0x7d, 0x1c,
0xb1, 0x53, 0x76, 0xb9, 0x29, 0x0e, 0x21, 0x2b, 0xf1, 0xad, 0x43, 0x0a, 0x7c, 0x1b, 0x96, 0x56,
0x19, 0x9c, 0x84, 0x8d, 0x12, 0xa9, 0x75, 0x96, 0xa2, 0xc3, 0x90, 0x4e, 0xc2, 0x19, 0xec, 0x3e,
0x07, 0x8f, 0xca, 0xd4, 0x56, 0x8f, 0xd6, 0x1d, 0x58, 0xaf, 0x5c, 0x67, 0x43, 0x44, 0x16, 0x42,
0xc0, 0xde, 0x37, 0x24, 0x85, 0xfc, 0x64, 0x6e, 0x3e, 0x19, 0x64, 0x0f, 0xc3, 0x38, 0xfe, 0x08,
0xcb, 0x7b, 0xd5, 0x34, 0xfc, 0x58, 0xce, 0x6d, 0x97, 0xa9, 0x25, 0x3f, 0xf9, 0x4b, 0x1e, 0x1a,
0xc4, 0x1a, 0x7f, 0x81, 0xd5, 0x50, 0xcc, 0xcf, 0xe7, 0xd9, 0xdf, 0xcb, 0xf3, 0x8b, 0x7f, 0xb9,
0x31, 0xfc, 0x9a, 0xbd, 0xae, 0xe2, 0x0f, 0xdf, 0x7e, 0x05, 0x00, 0x00, 0xff, 0xff, 0x63, 0x02,
0xbf, 0x5f, 0x99, 0x01, 0x00, 0x00,
}