// Code generated by protoc-gen-micro. DO NOT EDIT. // source: micro/go-micro/client/proto/client.proto package go_micro_client import ( fmt "fmt" proto "github.com/golang/protobuf/proto" math "math" ) import ( context "context" client "github.com/micro/go-micro/client" server "github.com/micro/go-micro/server" ) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // Reference imports to suppress errors if they are not otherwise used. var _ context.Context var _ client.Option var _ server.Option // Client API for Micro service type MicroService interface { // Call allows a single request to be made Call(ctx context.Context, in *Request, opts ...client.CallOption) (*Response, error) // Stream is a bidirectional stream Stream(ctx context.Context, opts ...client.CallOption) (Micro_StreamService, error) // Publish publishes a message and returns an empty Message Publish(ctx context.Context, in *Message, opts ...client.CallOption) (*Message, error) } type microService struct { c client.Client name string } func NewMicroService(name string, c client.Client) MicroService { if c == nil { c = client.NewClient() } if len(name) == 0 { name = "go.micro.client" } return µService{ c: c, name: name, } } func (c *microService) Call(ctx context.Context, in *Request, opts ...client.CallOption) (*Response, error) { req := c.c.NewRequest(c.name, "Micro.Call", in) out := new(Response) err := c.c.Call(ctx, req, out, opts...) if err != nil { return nil, err } return out, nil } func (c *microService) Stream(ctx context.Context, opts ...client.CallOption) (Micro_StreamService, error) { req := c.c.NewRequest(c.name, "Micro.Stream", &Request{}) stream, err := c.c.Stream(ctx, req, opts...) if err != nil { return nil, err } return µServiceStream{stream}, nil } type Micro_StreamService interface { SendMsg(interface{}) error RecvMsg(interface{}) error Close() error Send(*Request) error Recv() (*Response, error) } type microServiceStream struct { stream client.Stream } func (x *microServiceStream) Close() error { return x.stream.Close() } func (x *microServiceStream) SendMsg(m interface{}) error { return x.stream.Send(m) } func (x *microServiceStream) RecvMsg(m interface{}) error { return x.stream.Recv(m) } func (x *microServiceStream) Send(m *Request) error { return x.stream.Send(m) } func (x *microServiceStream) Recv() (*Response, error) { m := new(Response) err := x.stream.Recv(m) if err != nil { return nil, err } return m, nil } func (c *microService) Publish(ctx context.Context, in *Message, opts ...client.CallOption) (*Message, error) { req := c.c.NewRequest(c.name, "Micro.Publish", in) out := new(Message) err := c.c.Call(ctx, req, out, opts...) if err != nil { return nil, err } return out, nil } // Server API for Micro service type MicroHandler interface { // Call allows a single request to be made Call(context.Context, *Request, *Response) error // Stream is a bidirectional stream Stream(context.Context, Micro_StreamStream) error // Publish publishes a message and returns an empty Message Publish(context.Context, *Message, *Message) error } func RegisterMicroHandler(s server.Server, hdlr MicroHandler, opts ...server.HandlerOption) error { type micro interface { Call(ctx context.Context, in *Request, out *Response) error Stream(ctx context.Context, stream server.Stream) error Publish(ctx context.Context, in *Message, out *Message) error } type Micro struct { micro } h := µHandler{hdlr} return s.Handle(s.NewHandler(&Micro{h}, opts...)) } type microHandler struct { MicroHandler } func (h *microHandler) Call(ctx context.Context, in *Request, out *Response) error { return h.MicroHandler.Call(ctx, in, out) } func (h *microHandler) Stream(ctx context.Context, stream server.Stream) error { return h.MicroHandler.Stream(ctx, µStreamStream{stream}) } type Micro_StreamStream interface { SendMsg(interface{}) error RecvMsg(interface{}) error Close() error Send(*Response) error Recv() (*Request, error) } type microStreamStream struct { stream server.Stream } func (x *microStreamStream) Close() error { return x.stream.Close() } func (x *microStreamStream) SendMsg(m interface{}) error { return x.stream.Send(m) } func (x *microStreamStream) RecvMsg(m interface{}) error { return x.stream.Recv(m) } func (x *microStreamStream) Send(m *Response) error { return x.stream.Send(m) } func (x *microStreamStream) Recv() (*Request, error) { m := new(Request) if err := x.stream.Recv(m); err != nil { return nil, err } return m, nil } func (h *microHandler) Publish(ctx context.Context, in *Message, out *Message) error { return h.MicroHandler.Publish(ctx, in, out) }