mirror of
https://github.com/go-micro/go-micro.git
synced 2024-11-24 08:02:32 +02:00
204 lines
5.0 KiB
Go
204 lines
5.0 KiB
Go
// 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)
|
|
}
|