package rpc

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import any "github.com/golang/protobuf/ptypes/any"
import timestamp "github.com/golang/protobuf/ptypes/timestamp"

import (
	context "golang.org/x/net/context"
	grpc "google.golang.org/grpc"
)

var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

const _ = proto.ProtoPackageIsVersion2 

type Status int32

const (
	Status_Saved     Status = 0
	Status_Sent      Status = 1
	Status_SendError Status = 2
)

var Status_name = map[int32]string{
	0: "Saved",
	1: "Sent",
	2: "SendError",
}
var Status_value = map[string]int32{
	"Saved":     0,
	"Sent":      1,
	"SendError": 2,
}

func (x Status) String() string {
	return proto.EnumName(Status_name, int32(x))
}
func (Status) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_sourcing_ece74938dd5c1eb8, []int{0}
}

type SourcingRequest struct {

	AggregateId string `protobuf:"bytes,1,opt,name=aggregateId,proto3" json:"aggregateId,omitempty"`

	AggregateType string `protobuf:"bytes,2,opt,name=aggregateType,proto3" json:"aggregateType,omitempty"`

	Aggregate []byte `protobuf:"bytes,3,opt,name=aggregate,proto3" json:"aggregate,omitempty"`

	Events               []*SourcingRequestEvent `protobuf:"bytes,4,rep,name=events,proto3" json:"events,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *SourcingRequest) Reset()         { *m = SourcingRequest{} }
func (m *SourcingRequest) String() string { return proto.CompactTextString(m) }
func (*SourcingRequest) ProtoMessage()    {}
func (*SourcingRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_sourcing_ece74938dd5c1eb8, []int{0}
}
func (m *SourcingRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SourcingRequest.Unmarshal(m, b)
}
func (m *SourcingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SourcingRequest.Marshal(b, m, deterministic)
}
func (dst *SourcingRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SourcingRequest.Merge(dst, src)
}
func (m *SourcingRequest) XXX_Size() int {
	return xxx_messageInfo_SourcingRequest.Size(m)
}
func (m *SourcingRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_SourcingRequest.DiscardUnknown(m)
}

var xxx_messageInfo_SourcingRequest proto.InternalMessageInfo

func (m *SourcingRequest) GetAggregateId() string {
	if m != nil {
		return m.AggregateId
	}
	return ""
}

func (m *SourcingRequest) GetAggregateType() string {
	if m != nil {
		return m.AggregateType
	}
	return ""
}

func (m *SourcingRequest) GetAggregate() []byte {
	if m != nil {
		return m.Aggregate
	}
	return nil
}

func (m *SourcingRequest) GetEvents() []*SourcingRequestEvent {
	if m != nil {
		return m.Events
	}
	return nil
}

type SourcingResponse struct {

	Aggregate            *any.Any `protobuf:"bytes,1,opt,name=aggregate,proto3" json:"aggregate,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SourcingResponse) Reset()         { *m = SourcingResponse{} }
func (m *SourcingResponse) String() string { return proto.CompactTextString(m) }
func (*SourcingResponse) ProtoMessage()    {}
func (*SourcingResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_sourcing_ece74938dd5c1eb8, []int{1}
}
func (m *SourcingResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SourcingResponse.Unmarshal(m, b)
}
func (m *SourcingResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SourcingResponse.Marshal(b, m, deterministic)
}
func (dst *SourcingResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SourcingResponse.Merge(dst, src)
}
func (m *SourcingResponse) XXX_Size() int {
	return xxx_messageInfo_SourcingResponse.Size(m)
}
func (m *SourcingResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_SourcingResponse.DiscardUnknown(m)
}

var xxx_messageInfo_SourcingResponse proto.InternalMessageInfo

func (m *SourcingResponse) GetAggregate() *any.Any {
	if m != nil {
		return m.Aggregate
	}
	return nil
}

type SourcingRequestEvent struct {

	Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"`

	EventType string `protobuf:"bytes,2,opt,name=eventType,proto3" json:"eventType,omitempty"`

	Create *timestamp.Timestamp `protobuf:"bytes,3,opt,name=Create,proto3" json:"Create,omitempty"`

	Data                 []byte   `protobuf:"bytes,4,opt,name=Data,proto3" json:"Data,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SourcingRequestEvent) Reset()         { *m = SourcingRequestEvent{} }
func (m *SourcingRequestEvent) String() string { return proto.CompactTextString(m) }
func (*SourcingRequestEvent) ProtoMessage()    {}
func (*SourcingRequestEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_sourcing_ece74938dd5c1eb8, []int{2}
}
func (m *SourcingRequestEvent) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SourcingRequestEvent.Unmarshal(m, b)
}
func (m *SourcingRequestEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SourcingRequestEvent.Marshal(b, m, deterministic)
}
func (dst *SourcingRequestEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SourcingRequestEvent.Merge(dst, src)
}
func (m *SourcingRequestEvent) XXX_Size() int {
	return xxx_messageInfo_SourcingRequestEvent.Size(m)
}
func (m *SourcingRequestEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_SourcingRequestEvent.DiscardUnknown(m)
}

var xxx_messageInfo_SourcingRequestEvent proto.InternalMessageInfo

func (m *SourcingRequestEvent) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *SourcingRequestEvent) GetEventType() string {
	if m != nil {
		return m.EventType
	}
	return ""
}

func (m *SourcingRequestEvent) GetCreate() *timestamp.Timestamp {
	if m != nil {
		return m.Create
	}
	return nil
}

func (m *SourcingRequestEvent) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

func init() {
	proto.RegisterType((*SourcingRequest)(nil), "rpc.SourcingRequest")
	proto.RegisterType((*SourcingResponse)(nil), "rpc.SourcingResponse")
	proto.RegisterType((*SourcingRequestEvent)(nil), "rpc.SourcingRequestEvent")
	proto.RegisterEnum("rpc.Status", Status_name, Status_value)
}

var _ context.Context
var _ grpc.ClientConn

const _ = grpc.SupportPackageIsVersion4

type SourcingClient interface {

	Sourcing(ctx context.Context, in *SourcingRequest, opts ...grpc.CallOption) (*SourcingResponse, error)
}

type sourcingClient struct {
	cc *grpc.ClientConn
}

func NewSourcingClient(cc *grpc.ClientConn) SourcingClient {
	return &sourcingClient{cc}
}

func (c *sourcingClient) Sourcing(ctx context.Context, in *SourcingRequest, opts ...grpc.CallOption) (*SourcingResponse, error) {
	out := new(SourcingResponse)
	err := c.cc.Invoke(ctx, "/rpc.Sourcing/Sourcing", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

type SourcingServer interface {

	Sourcing(context.Context, *SourcingRequest) (*SourcingResponse, error)
}

func RegisterSourcingServer(s *grpc.Server, srv SourcingServer) {
	s.RegisterService(&_Sourcing_serviceDesc, srv)
}

func _Sourcing_Sourcing_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SourcingRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(SourcingServer).Sourcing(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/rpc.Sourcing/Sourcing",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(SourcingServer).Sourcing(ctx, req.(*SourcingRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _Sourcing_serviceDesc = grpc.ServiceDesc{
	ServiceName: "rpc.Sourcing",
	HandlerType: (*SourcingServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Sourcing",
			Handler:    _Sourcing_Sourcing_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "sourcing.proto",
}

func init() { proto.RegisterFile("sourcing.proto", fileDescriptor_sourcing_ece74938dd5c1eb8) }

var fileDescriptor_sourcing_ece74938dd5c1eb8 = []byte{

	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x91, 0xc1, 0x4e, 0x83, 0x40,
	0x10, 0x86, 0x0b, 0x45, 0x52, 0x06, 0x5b, 0xc9, 0xa4, 0x26, 0x94, 0x98, 0x48, 0x88, 0x87, 0xc6,
	0x18, 0x1a, 0xf1, 0xe4, 0xd1, 0x68, 0x4d, 0x7a, 0x85, 0xbe, 0xc0, 0xb6, 0x8c, 0xa4, 0x89, 0x65,
	0x71, 0x77, 0x69, 0xd2, 0x77, 0xf0, 0x49, 0x7c, 0x4a, 0x53, 0x28, 0x2d, 0xd6, 0xde, 0x86, 0x6f,
	0xfe, 0xf0, 0xff, 0xff, 0x2c, 0x0c, 0x24, 0x2f, 0xc5, 0x72, 0x95, 0x67, 0x61, 0x21, 0xb8, 0xe2,
	0xd8, 0x15, 0xc5, 0xd2, 0xbb, 0xcd, 0x38, 0xcf, 0x3e, 0x69, 0x52, 0xa1, 0x45, 0xf9, 0x31, 0x51,
	0xab, 0x35, 0x49, 0xc5, 0xd6, 0x45, 0xad, 0xf2, 0x46, 0xa7, 0x02, 0x96, 0x6f, 0xeb, 0x55, 0xf0,
	0xa3, 0xc1, 0x55, 0xb2, 0xff, 0x67, 0x4c, 0x5f, 0x25, 0x49, 0x85, 0x3e, 0xd8, 0x2c, 0xcb, 0x04,
	0x65, 0x4c, 0xd1, 0x2c, 0x75, 0x35, 0x5f, 0x1b, 0x5b, 0x71, 0x1b, 0xe1, 0x1d, 0xf4, 0x0f, 0x9f,
	0xf3, 0x6d, 0x41, 0xae, 0x5e, 0x69, 0xfe, 0x42, 0xbc, 0x01, 0xeb, 0x00, 0xdc, 0xae, 0xaf, 0x8d,
	0x2f, 0xe3, 0x23, 0xc0, 0x47, 0x30, 0x69, 0x43, 0xb9, 0x92, 0xae, 0xe1, 0x77, 0xc7, 0x76, 0x34,
	0x0a, 0x45, 0xb1, 0x0c, 0x4f, 0xb2, 0x4c, 0x77, 0x8a, 0x78, 0x2f, 0x0c, 0xde, 0xc1, 0x39, 0xee,
	0x65, 0xc1, 0x73, 0x49, 0x18, 0xb5, 0x4d, 0x76, 0x51, 0xed, 0x68, 0x18, 0xd6, 0x7d, 0xc3, 0xa6,
	0x6f, 0xf8, 0x92, 0x6f, 0x5b, 0xd6, 0xc1, 0xb7, 0x06, 0xc3, 0x73, 0x46, 0x38, 0x00, 0xfd, 0x50,
	0x58, 0x9f, 0xa5, 0xbb, 0x06, 0x95, 0x75, 0xab, 0xe3, 0x11, 0x60, 0x04, 0xe6, 0xab, 0xa0, 0xa6,
	0x9c, 0x1d, 0x79, 0xff, 0x7c, 0xe7, 0xcd, 0x43, 0xc4, 0x7b, 0x25, 0x22, 0x18, 0x6f, 0x4c, 0x31,
	0xd7, 0xa8, 0xce, 0x51, 0xcd, 0xf7, 0x0f, 0x60, 0x26, 0x8a, 0xa9, 0x52, 0xa2, 0x05, 0x17, 0x09,
	0xdb, 0x50, 0xea, 0x74, 0xb0, 0x07, 0x46, 0x42, 0xb9, 0x72, 0x34, 0xec, 0x83, 0x95, 0x50, 0x9e,
	0x4e, 0x85, 0xe0, 0xc2, 0xd1, 0xa3, 0x29, 0xf4, 0x9a, 0xec, 0xf8, 0xdc, 0x9a, 0x87, 0xe7, 0xee,
	0xe7, 0x5d, 0x9f, 0xd0, 0xfa, 0x6a, 0x41, 0x67, 0x61, 0x56, 0x21, 0x9f, 0x7e, 0x03, 0x00, 0x00,
	0xff, 0xff, 0x09, 0x58, 0xdc, 0xbf, 0x52, 0x02, 0x00, 0x00,
}
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: sourcing.proto

package rpc

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import any "github.com/golang/protobuf/ptypes/any"
import timestamp "github.com/golang/protobuf/ptypes/timestamp"

import (
	context "golang.org/x/net/context"
	grpc "google.golang.org/grpc"
)

// 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.ProtoPackageIsVersion2 // please upgrade the proto package

type Status int32

const (
	Status_Saved     Status = 0
	Status_Sent      Status = 1
	Status_SendError Status = 2
)

var Status_name = map[int32]string{
	0: "Saved",
	1: "Sent",
	2: "SendError",
}
var Status_value = map[string]int32{
	"Saved":     0,
	"Sent":      1,
	"SendError": 2,
}

func (x Status) String() string {
	return proto.EnumName(Status_name, int32(x))
}
func (Status) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_sourcing_ece74938dd5c1eb8, []int{0}
}

// 溯源请求
type SourcingRequest struct {
	// 聚合id
	AggregateId string `protobuf:"bytes,1,opt,name=aggregateId,proto3" json:"aggregateId,omitempty"`
	// 聚合类型
	AggregateType string `protobuf:"bytes,2,opt,name=aggregateType,proto3" json:"aggregateType,omitempty"`
	// 聚合
	Aggregate []byte `protobuf:"bytes,3,opt,name=aggregate,proto3" json:"aggregate,omitempty"`
	// 需要应用的事件
	Events               []*SourcingRequestEvent `protobuf:"bytes,4,rep,name=events,proto3" json:"events,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *SourcingRequest) Reset()         { *m = SourcingRequest{} }
func (m *SourcingRequest) String() string { return proto.CompactTextString(m) }
func (*SourcingRequest) ProtoMessage()    {}
func (*SourcingRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_sourcing_ece74938dd5c1eb8, []int{0}
}
func (m *SourcingRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SourcingRequest.Unmarshal(m, b)
}
func (m *SourcingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SourcingRequest.Marshal(b, m, deterministic)
}
func (dst *SourcingRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SourcingRequest.Merge(dst, src)
}
func (m *SourcingRequest) XXX_Size() int {
	return xxx_messageInfo_SourcingRequest.Size(m)
}
func (m *SourcingRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_SourcingRequest.DiscardUnknown(m)
}

var xxx_messageInfo_SourcingRequest proto.InternalMessageInfo

func (m *SourcingRequest) GetAggregateId() string {
	if m != nil {
		return m.AggregateId
	}
	return ""
}

func (m *SourcingRequest) GetAggregateType() string {
	if m != nil {
		return m.AggregateType
	}
	return ""
}

func (m *SourcingRequest) GetAggregate() []byte {
	if m != nil {
		return m.Aggregate
	}
	return nil
}

func (m *SourcingRequest) GetEvents() []*SourcingRequestEvent {
	if m != nil {
		return m.Events
	}
	return nil
}

// /溯源返回
type SourcingResponse struct {
	// 聚合
	Aggregate            *any.Any `protobuf:"bytes,1,opt,name=aggregate,proto3" json:"aggregate,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SourcingResponse) Reset()         { *m = SourcingResponse{} }
func (m *SourcingResponse) String() string { return proto.CompactTextString(m) }
func (*SourcingResponse) ProtoMessage()    {}
func (*SourcingResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_sourcing_ece74938dd5c1eb8, []int{1}
}
func (m *SourcingResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SourcingResponse.Unmarshal(m, b)
}
func (m *SourcingResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SourcingResponse.Marshal(b, m, deterministic)
}
func (dst *SourcingResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SourcingResponse.Merge(dst, src)
}
func (m *SourcingResponse) XXX_Size() int {
	return xxx_messageInfo_SourcingResponse.Size(m)
}
func (m *SourcingResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_SourcingResponse.DiscardUnknown(m)
}

var xxx_messageInfo_SourcingResponse proto.InternalMessageInfo

func (m *SourcingResponse) GetAggregate() *any.Any {
	if m != nil {
		return m.Aggregate
	}
	return nil
}

// 事件的详细信息
type SourcingRequestEvent struct {
	// 事件id
	Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"`
	// 事件类型
	EventType string `protobuf:"bytes,2,opt,name=eventType,proto3" json:"eventType,omitempty"`
	// 事件创建时间
	Create *timestamp.Timestamp `protobuf:"bytes,3,opt,name=Create,proto3" json:"Create,omitempty"`
	// 事件内容
	Data                 []byte   `protobuf:"bytes,4,opt,name=Data,proto3" json:"Data,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SourcingRequestEvent) Reset()         { *m = SourcingRequestEvent{} }
func (m *SourcingRequestEvent) String() string { return proto.CompactTextString(m) }
func (*SourcingRequestEvent) ProtoMessage()    {}
func (*SourcingRequestEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_sourcing_ece74938dd5c1eb8, []int{2}
}
func (m *SourcingRequestEvent) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SourcingRequestEvent.Unmarshal(m, b)
}
func (m *SourcingRequestEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SourcingRequestEvent.Marshal(b, m, deterministic)
}
func (dst *SourcingRequestEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SourcingRequestEvent.Merge(dst, src)
}
func (m *SourcingRequestEvent) XXX_Size() int {
	return xxx_messageInfo_SourcingRequestEvent.Size(m)
}
func (m *SourcingRequestEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_SourcingRequestEvent.DiscardUnknown(m)
}

var xxx_messageInfo_SourcingRequestEvent proto.InternalMessageInfo

func (m *SourcingRequestEvent) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *SourcingRequestEvent) GetEventType() string {
	if m != nil {
		return m.EventType
	}
	return ""
}

func (m *SourcingRequestEvent) GetCreate() *timestamp.Timestamp {
	if m != nil {
		return m.Create
	}
	return nil
}

func (m *SourcingRequestEvent) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

func init() {
	proto.RegisterType((*SourcingRequest)(nil), "rpc.SourcingRequest")
	proto.RegisterType((*SourcingResponse)(nil), "rpc.SourcingResponse")
	proto.RegisterType((*SourcingRequestEvent)(nil), "rpc.SourcingRequestEvent")
	proto.RegisterEnum("rpc.Status", Status_name, Status_value)
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// SourcingClient is the client API for Sourcing service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type SourcingClient interface {
	// 发起事件溯源,得到聚合对象,用来作为 命令处理的聚合
	Sourcing(ctx context.Context, in *SourcingRequest, opts ...grpc.CallOption) (*SourcingResponse, error)
}

type sourcingClient struct {
	cc *grpc.ClientConn
}

func NewSourcingClient(cc *grpc.ClientConn) SourcingClient {
	return &sourcingClient{cc}
}

func (c *sourcingClient) Sourcing(ctx context.Context, in *SourcingRequest, opts ...grpc.CallOption) (*SourcingResponse, error) {
	out := new(SourcingResponse)
	err := c.cc.Invoke(ctx, "/rpc.Sourcing/Sourcing", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// SourcingServer is the server API for Sourcing service.
type SourcingServer interface {
	// 发起事件溯源,得到聚合对象,用来作为 命令处理的聚合
	Sourcing(context.Context, *SourcingRequest) (*SourcingResponse, error)
}

func RegisterSourcingServer(s *grpc.Server, srv SourcingServer) {
	s.RegisterService(&_Sourcing_serviceDesc, srv)
}

func _Sourcing_Sourcing_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SourcingRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(SourcingServer).Sourcing(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/rpc.Sourcing/Sourcing",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(SourcingServer).Sourcing(ctx, req.(*SourcingRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _Sourcing_serviceDesc = grpc.ServiceDesc{
	ServiceName: "rpc.Sourcing",
	HandlerType: (*SourcingServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Sourcing",
			Handler:    _Sourcing_Sourcing_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "sourcing.proto",
}

func init() { proto.RegisterFile("sourcing.proto", fileDescriptor_sourcing_ece74938dd5c1eb8) }

var fileDescriptor_sourcing_ece74938dd5c1eb8 = []byte{
	// 330 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x91, 0xc1, 0x4e, 0x83, 0x40,
	0x10, 0x86, 0x0b, 0x45, 0x52, 0x06, 0x5b, 0xc9, 0xa4, 0x26, 0x94, 0x98, 0x48, 0x88, 0x87, 0xc6,
	0x18, 0x1a, 0xf1, 0xe4, 0xd1, 0x68, 0x4d, 0x7a, 0x85, 0xbe, 0xc0, 0xb6, 0x8c, 0xa4, 0x89, 0x65,
	0x71, 0x77, 0x69, 0xd2, 0x77, 0xf0, 0x49, 0x7c, 0x4a, 0x53, 0x28, 0x2d, 0xd6, 0xde, 0x86, 0x6f,
	0xfe, 0xf0, 0xff, 0xff, 0x2c, 0x0c, 0x24, 0x2f, 0xc5, 0x72, 0x95, 0x67, 0x61, 0x21, 0xb8, 0xe2,
	0xd8, 0x15, 0xc5, 0xd2, 0xbb, 0xcd, 0x38, 0xcf, 0x3e, 0x69, 0x52, 0xa1, 0x45, 0xf9, 0x31, 0x51,
	0xab, 0x35, 0x49, 0xc5, 0xd6, 0x45, 0xad, 0xf2, 0x46, 0xa7, 0x02, 0x96, 0x6f, 0xeb, 0x55, 0xf0,
	0xa3, 0xc1, 0x55, 0xb2, 0xff, 0x67, 0x4c, 0x5f, 0x25, 0x49, 0x85, 0x3e, 0xd8, 0x2c, 0xcb, 0x04,
	0x65, 0x4c, 0xd1, 0x2c, 0x75, 0x35, 0x5f, 0x1b, 0x5b, 0x71, 0x1b, 0xe1, 0x1d, 0xf4, 0x0f, 0x9f,
	0xf3, 0x6d, 0x41, 0xae, 0x5e, 0x69, 0xfe, 0x42, 0xbc, 0x01, 0xeb, 0x00, 0xdc, 0xae, 0xaf, 0x8d,
	0x2f, 0xe3, 0x23, 0xc0, 0x47, 0x30, 0x69, 0x43, 0xb9, 0x92, 0xae, 0xe1, 0x77, 0xc7, 0x76, 0x34,
	0x0a, 0x45, 0xb1, 0x0c, 0x4f, 0xb2, 0x4c, 0x77, 0x8a, 0x78, 0x2f, 0x0c, 0xde, 0xc1, 0x39, 0xee,
	0x65, 0xc1, 0x73, 0x49, 0x18, 0xb5, 0x4d, 0x76, 0x51, 0xed, 0x68, 0x18, 0xd6, 0x7d, 0xc3, 0xa6,
	0x6f, 0xf8, 0x92, 0x6f, 0x5b, 0xd6, 0xc1, 0xb7, 0x06, 0xc3, 0x73, 0x46, 0x38, 0x00, 0xfd, 0x50,
	0x58, 0x9f, 0xa5, 0xbb, 0x06, 0x95, 0x75, 0xab, 0xe3, 0x11, 0x60, 0x04, 0xe6, 0xab, 0xa0, 0xa6,
	0x9c, 0x1d, 0x79, 0xff, 0x7c, 0xe7, 0xcd, 0x43, 0xc4, 0x7b, 0x25, 0x22, 0x18, 0x6f, 0x4c, 0x31,
	0xd7, 0xa8, 0xce, 0x51, 0xcd, 0xf7, 0x0f, 0x60, 0x26, 0x8a, 0xa9, 0x52, 0xa2, 0x05, 0x17, 0x09,
	0xdb, 0x50, 0xea, 0x74, 0xb0, 0x07, 0x46, 0x42, 0xb9, 0x72, 0x34, 0xec, 0x83, 0x95, 0x50, 0x9e,
	0x4e, 0x85, 0xe0, 0xc2, 0xd1, 0xa3, 0x29, 0xf4, 0x9a, 0xec, 0xf8, 0xdc, 0x9a, 0x87, 0xe7, 0xee,
	0xe7, 0x5d, 0x9f, 0xd0, 0xfa, 0x6a, 0x41, 0x67, 0x61, 0x56, 0x21, 0x9f, 0x7e, 0x03, 0x00, 0x00,
	0xff, 0xff, 0x09, 0x58, 0xdc, 0xbf, 0x52, 0x02, 0x00, 0x00,
}
