Moving cruftier services that are only used for tests under a test repo

This commit is contained in:
Janos Dobronszki
2020-10-15 16:54:27 +02:00
parent 7c2f9737cb
commit d86531e5e9
37 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,335 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: proto/stream.proto
package stream
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
math "math"
)
// 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
// Points are represented as latitude-longitude pairs in the E7 representation
// (degrees multiplied by 10**7 and rounded to the nearest integer).
// Latitudes should be in the range +/- 90 degrees and longitude should be in
// the range +/- 180 degrees (inclusive).
type Point struct {
Latitude int32 `protobuf:"varint,1,opt,name=latitude,proto3" json:"latitude,omitempty"`
Longitude int32 `protobuf:"varint,2,opt,name=longitude,proto3" json:"longitude,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Point) Reset() { *m = Point{} }
func (m *Point) String() string { return proto.CompactTextString(m) }
func (*Point) ProtoMessage() {}
func (*Point) Descriptor() ([]byte, []int) {
return fileDescriptor_45777bc300452f06, []int{0}
}
func (m *Point) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Point.Unmarshal(m, b)
}
func (m *Point) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Point.Marshal(b, m, deterministic)
}
func (m *Point) XXX_Merge(src proto.Message) {
xxx_messageInfo_Point.Merge(m, src)
}
func (m *Point) XXX_Size() int {
return xxx_messageInfo_Point.Size(m)
}
func (m *Point) XXX_DiscardUnknown() {
xxx_messageInfo_Point.DiscardUnknown(m)
}
var xxx_messageInfo_Point proto.InternalMessageInfo
func (m *Point) GetLatitude() int32 {
if m != nil {
return m.Latitude
}
return 0
}
func (m *Point) GetLongitude() int32 {
if m != nil {
return m.Longitude
}
return 0
}
// A latitude-longitude rectangle, represented as two diagonally opposite
// points "lo" and "hi".
type Rectangle struct {
// One corner of the rectangle.
Lo *Point `protobuf:"bytes,1,opt,name=lo,proto3" json:"lo,omitempty"`
// The other corner of the rectangle.
Hi *Point `protobuf:"bytes,2,opt,name=hi,proto3" json:"hi,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Rectangle) Reset() { *m = Rectangle{} }
func (m *Rectangle) String() string { return proto.CompactTextString(m) }
func (*Rectangle) ProtoMessage() {}
func (*Rectangle) Descriptor() ([]byte, []int) {
return fileDescriptor_45777bc300452f06, []int{1}
}
func (m *Rectangle) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Rectangle.Unmarshal(m, b)
}
func (m *Rectangle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Rectangle.Marshal(b, m, deterministic)
}
func (m *Rectangle) XXX_Merge(src proto.Message) {
xxx_messageInfo_Rectangle.Merge(m, src)
}
func (m *Rectangle) XXX_Size() int {
return xxx_messageInfo_Rectangle.Size(m)
}
func (m *Rectangle) XXX_DiscardUnknown() {
xxx_messageInfo_Rectangle.DiscardUnknown(m)
}
var xxx_messageInfo_Rectangle proto.InternalMessageInfo
func (m *Rectangle) GetLo() *Point {
if m != nil {
return m.Lo
}
return nil
}
func (m *Rectangle) GetHi() *Point {
if m != nil {
return m.Hi
}
return nil
}
// A feature names something at a given point.
// If a feature could not be named, the name is empty.
type Feature struct {
// The name of the feature.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The point where the feature is detected.
Location *Point `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Feature) Reset() { *m = Feature{} }
func (m *Feature) String() string { return proto.CompactTextString(m) }
func (*Feature) ProtoMessage() {}
func (*Feature) Descriptor() ([]byte, []int) {
return fileDescriptor_45777bc300452f06, []int{2}
}
func (m *Feature) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Feature.Unmarshal(m, b)
}
func (m *Feature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Feature.Marshal(b, m, deterministic)
}
func (m *Feature) XXX_Merge(src proto.Message) {
xxx_messageInfo_Feature.Merge(m, src)
}
func (m *Feature) XXX_Size() int {
return xxx_messageInfo_Feature.Size(m)
}
func (m *Feature) XXX_DiscardUnknown() {
xxx_messageInfo_Feature.DiscardUnknown(m)
}
var xxx_messageInfo_Feature proto.InternalMessageInfo
func (m *Feature) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *Feature) GetLocation() *Point {
if m != nil {
return m.Location
}
return nil
}
// A RouteNote is a message sent while at a given point.
type RouteNote struct {
// The location from which the message is sent.
Location *Point `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
// The message to be sent.
Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RouteNote) Reset() { *m = RouteNote{} }
func (m *RouteNote) String() string { return proto.CompactTextString(m) }
func (*RouteNote) ProtoMessage() {}
func (*RouteNote) Descriptor() ([]byte, []int) {
return fileDescriptor_45777bc300452f06, []int{3}
}
func (m *RouteNote) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RouteNote.Unmarshal(m, b)
}
func (m *RouteNote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RouteNote.Marshal(b, m, deterministic)
}
func (m *RouteNote) XXX_Merge(src proto.Message) {
xxx_messageInfo_RouteNote.Merge(m, src)
}
func (m *RouteNote) XXX_Size() int {
return xxx_messageInfo_RouteNote.Size(m)
}
func (m *RouteNote) XXX_DiscardUnknown() {
xxx_messageInfo_RouteNote.DiscardUnknown(m)
}
var xxx_messageInfo_RouteNote proto.InternalMessageInfo
func (m *RouteNote) GetLocation() *Point {
if m != nil {
return m.Location
}
return nil
}
func (m *RouteNote) GetMessage() string {
if m != nil {
return m.Message
}
return ""
}
// A RouteSummary is received in response to a RecordRoute rpc.
// It contains the number of individual points received, the number of
// detected features, and the total distance covered as the cumulative sum of
// the distance between each point.
type RouteSummary struct {
// The number of points received.
PointCount int32 `protobuf:"varint,1,opt,name=point_count,json=pointCount,proto3" json:"point_count,omitempty"`
// The number of known features passed while traversing the route.
FeatureCount int32 `protobuf:"varint,2,opt,name=feature_count,json=featureCount,proto3" json:"feature_count,omitempty"`
// The distance covered in metres.
Distance int32 `protobuf:"varint,3,opt,name=distance,proto3" json:"distance,omitempty"`
// The duration of the traversal in seconds.
ElapsedTime int32 `protobuf:"varint,4,opt,name=elapsed_time,json=elapsedTime,proto3" json:"elapsed_time,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RouteSummary) Reset() { *m = RouteSummary{} }
func (m *RouteSummary) String() string { return proto.CompactTextString(m) }
func (*RouteSummary) ProtoMessage() {}
func (*RouteSummary) Descriptor() ([]byte, []int) {
return fileDescriptor_45777bc300452f06, []int{4}
}
func (m *RouteSummary) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RouteSummary.Unmarshal(m, b)
}
func (m *RouteSummary) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RouteSummary.Marshal(b, m, deterministic)
}
func (m *RouteSummary) XXX_Merge(src proto.Message) {
xxx_messageInfo_RouteSummary.Merge(m, src)
}
func (m *RouteSummary) XXX_Size() int {
return xxx_messageInfo_RouteSummary.Size(m)
}
func (m *RouteSummary) XXX_DiscardUnknown() {
xxx_messageInfo_RouteSummary.DiscardUnknown(m)
}
var xxx_messageInfo_RouteSummary proto.InternalMessageInfo
func (m *RouteSummary) GetPointCount() int32 {
if m != nil {
return m.PointCount
}
return 0
}
func (m *RouteSummary) GetFeatureCount() int32 {
if m != nil {
return m.FeatureCount
}
return 0
}
func (m *RouteSummary) GetDistance() int32 {
if m != nil {
return m.Distance
}
return 0
}
func (m *RouteSummary) GetElapsedTime() int32 {
if m != nil {
return m.ElapsedTime
}
return 0
}
func init() {
proto.RegisterType((*Point)(nil), "stream.Point")
proto.RegisterType((*Rectangle)(nil), "stream.Rectangle")
proto.RegisterType((*Feature)(nil), "stream.Feature")
proto.RegisterType((*RouteNote)(nil), "stream.RouteNote")
proto.RegisterType((*RouteSummary)(nil), "stream.RouteSummary")
}
func init() {
proto.RegisterFile("proto/stream.proto", fileDescriptor_45777bc300452f06)
}
var fileDescriptor_45777bc300452f06 = []byte{
// 371 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x7c, 0x52, 0x4f, 0x4b, 0xfb, 0x40,
0x10, 0xed, 0xf6, 0xd7, 0x3f, 0xbf, 0x4c, 0x52, 0xc4, 0xc1, 0x43, 0x29, 0x8a, 0x1a, 0x2f, 0xf5,
0x52, 0x4b, 0x05, 0x3d, 0x4b, 0xc1, 0x2a, 0x88, 0x94, 0xe8, 0xbd, 0xac, 0xc9, 0xda, 0x2e, 0x24,
0xd9, 0x92, 0x6c, 0x0e, 0x7e, 0x0e, 0x3f, 0xa3, 0xdf, 0xc3, 0xcd, 0xee, 0x26, 0xb6, 0xb6, 0x78,
0xcb, 0xbc, 0x37, 0x6f, 0xde, 0xec, 0x9b, 0x00, 0xae, 0x33, 0x21, 0xc5, 0x55, 0x2e, 0x33, 0x46,
0x93, 0x91, 0x2e, 0xb0, 0x63, 0x2a, 0xff, 0x0e, 0xda, 0x73, 0xc1, 0x53, 0x89, 0x03, 0xf8, 0x1f,
0x53, 0xc9, 0x65, 0x11, 0xb1, 0x3e, 0x39, 0x23, 0xc3, 0x76, 0x50, 0xd7, 0x78, 0x0c, 0x4e, 0x2c,
0xd2, 0xa5, 0x21, 0x9b, 0x9a, 0xfc, 0x01, 0xfc, 0x47, 0x70, 0x02, 0x16, 0x4a, 0x9a, 0x2e, 0x63,
0x86, 0x27, 0xd0, 0x8c, 0x85, 0x1e, 0xe0, 0x4e, 0x7a, 0x23, 0x6b, 0xa9, 0x1d, 0x02, 0x45, 0x94,
0xf4, 0x8a, 0xeb, 0x11, 0xbb, 0xf4, 0x8a, 0xfb, 0x0f, 0xd0, 0xbd, 0x67, 0x54, 0x16, 0x19, 0x43,
0x84, 0x56, 0x4a, 0x13, 0xb3, 0x8b, 0x13, 0xe8, 0x6f, 0xbc, 0x54, 0x3b, 0x8a, 0x50, 0x6d, 0x25,
0xd2, 0xfd, 0x33, 0x6a, 0xda, 0x9f, 0xab, 0xa5, 0x44, 0x21, 0xd9, 0xb3, 0x90, 0xdb, 0x3a, 0xf2,
0xa7, 0x0e, 0xfb, 0xd0, 0x4d, 0x58, 0x9e, 0xd3, 0xa5, 0x79, 0xa8, 0x13, 0x54, 0xa5, 0xff, 0x49,
0xc0, 0xd3, 0x23, 0x5f, 0x8a, 0x24, 0xa1, 0xd9, 0x07, 0x9e, 0x82, 0xbb, 0x2e, 0xd5, 0x8b, 0x50,
0x14, 0xa9, 0xb4, 0xa1, 0x81, 0x86, 0xa6, 0x25, 0x82, 0x17, 0xd0, 0x7b, 0x37, 0xaf, 0xb1, 0x2d,
0x26, 0x3a, 0xcf, 0x82, 0xa6, 0x49, 0xe5, 0x1e, 0xf1, 0x5c, 0xa5, 0x17, 0xb2, 0xfe, 0x3f, 0x93,
0x7b, 0x55, 0xe3, 0x39, 0x78, 0x2c, 0xa6, 0xeb, 0x9c, 0x45, 0x0b, 0xc9, 0x55, 0x16, 0x2d, 0xcd,
0xbb, 0x16, 0x7b, 0x55, 0xd0, 0xe4, 0x8b, 0x00, 0xe8, 0xad, 0x66, 0x05, 0x57, 0x97, 0x1a, 0x01,
0xcc, 0x98, 0xac, 0x32, 0xdc, 0x7e, 0xe5, 0xe0, 0xa0, 0x2a, 0x2d, 0xef, 0x37, 0xf0, 0x06, 0xbc,
0x27, 0xe5, 0x66, 0x81, 0x1c, 0x0f, 0xab, 0x96, 0xfa, 0xa2, 0x7b, 0x54, 0x63, 0xa2, 0x74, 0xae,
0xea, 0x10, 0x59, 0xa4, 0xbd, 0x7f, 0x1b, 0x1d, 0xd5, 0x53, 0x36, 0xf2, 0xf2, 0x1b, 0x43, 0x82,
0xb7, 0xf6, 0x2c, 0xd3, 0x15, 0x95, 0x1b, 0x66, 0xd5, 0xa5, 0x06, 0xbb, 0x50, 0x29, 0x1b, 0x93,
0xb7, 0x8e, 0xfe, 0x6d, 0xaf, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xcf, 0x12, 0xaf, 0xc8, 0xcc,
0x02, 0x00, 0x00,
}

View File

@@ -0,0 +1,394 @@
// Code generated by protoc-gen-micro. DO NOT EDIT.
// source: proto/stream.proto
package stream
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
math "math"
)
import (
context "context"
api "github.com/micro/micro/v3/service/api"
client "github.com/micro/micro/v3/service/client"
server "github.com/micro/micro/v3/service/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 _ api.Endpoint
var _ context.Context
var _ client.Option
var _ server.Option
// Api Endpoints for RouteGuide service
func NewRouteGuideEndpoints() []*api.Endpoint {
return []*api.Endpoint{}
}
// Client API for RouteGuide service
type RouteGuideService interface {
// Obtains the feature at a given position.
GetFeature(ctx context.Context, in *Point, opts ...client.CallOption) (*Feature, error)
// Obtains the Features available within the given Rectangle. Results are
// streamed rather than returned at once (e.g. in a response message with a
// repeated field), as the rectangle may cover a large area and contain a
// huge number of features.
ListFeatures(ctx context.Context, in *Rectangle, opts ...client.CallOption) (RouteGuide_ListFeaturesService, error)
// Accepts a stream of Points on a route being traversed, returning a
// RouteSummary when traversal is completed.
RecordRoute(ctx context.Context, opts ...client.CallOption) (RouteGuide_RecordRouteService, error)
// Accepts a stream of RouteNotes sent while a route is being traversed,
// while receiving other RouteNotes (e.g. from other users).
RouteChat(ctx context.Context, opts ...client.CallOption) (RouteGuide_RouteChatService, error)
}
type routeGuideService struct {
c client.Client
name string
}
func NewRouteGuideService(name string, c client.Client) RouteGuideService {
return &routeGuideService{
c: c,
name: name,
}
}
func (c *routeGuideService) GetFeature(ctx context.Context, in *Point, opts ...client.CallOption) (*Feature, error) {
req := c.c.NewRequest(c.name, "RouteGuide.GetFeature", in)
out := new(Feature)
err := c.c.Call(ctx, req, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *routeGuideService) ListFeatures(ctx context.Context, in *Rectangle, opts ...client.CallOption) (RouteGuide_ListFeaturesService, error) {
req := c.c.NewRequest(c.name, "RouteGuide.ListFeatures", &Rectangle{})
stream, err := c.c.Stream(ctx, req, opts...)
if err != nil {
return nil, err
}
if err := stream.Send(in); err != nil {
return nil, err
}
return &routeGuideServiceListFeatures{stream}, nil
}
type RouteGuide_ListFeaturesService interface {
Context() context.Context
SendMsg(interface{}) error
RecvMsg(interface{}) error
Close() error
Recv() (*Feature, error)
}
type routeGuideServiceListFeatures struct {
stream client.Stream
}
func (x *routeGuideServiceListFeatures) Close() error {
return x.stream.Close()
}
func (x *routeGuideServiceListFeatures) Context() context.Context {
return x.stream.Context()
}
func (x *routeGuideServiceListFeatures) SendMsg(m interface{}) error {
return x.stream.Send(m)
}
func (x *routeGuideServiceListFeatures) RecvMsg(m interface{}) error {
return x.stream.Recv(m)
}
func (x *routeGuideServiceListFeatures) Recv() (*Feature, error) {
m := new(Feature)
err := x.stream.Recv(m)
if err != nil {
return nil, err
}
return m, nil
}
func (c *routeGuideService) RecordRoute(ctx context.Context, opts ...client.CallOption) (RouteGuide_RecordRouteService, error) {
req := c.c.NewRequest(c.name, "RouteGuide.RecordRoute", &Point{})
stream, err := c.c.Stream(ctx, req, opts...)
if err != nil {
return nil, err
}
return &routeGuideServiceRecordRoute{stream}, nil
}
type RouteGuide_RecordRouteService interface {
Context() context.Context
SendMsg(interface{}) error
RecvMsg(interface{}) error
CloseAndRecv() (*RouteSummary, error)
Send(*Point) error
}
type routeGuideServiceRecordRoute struct {
stream client.Stream
}
func (x *routeGuideServiceRecordRoute) CloseAndRecv() (*RouteSummary, error) {
if err := x.stream.Close(); err != nil {
return nil, err
}
r := new(RouteSummary)
err := x.RecvMsg(r)
return r, err
}
func (x *routeGuideServiceRecordRoute) Context() context.Context {
return x.stream.Context()
}
func (x *routeGuideServiceRecordRoute) SendMsg(m interface{}) error {
return x.stream.Send(m)
}
func (x *routeGuideServiceRecordRoute) RecvMsg(m interface{}) error {
return x.stream.Recv(m)
}
func (x *routeGuideServiceRecordRoute) Send(m *Point) error {
return x.stream.Send(m)
}
func (c *routeGuideService) RouteChat(ctx context.Context, opts ...client.CallOption) (RouteGuide_RouteChatService, error) {
req := c.c.NewRequest(c.name, "RouteGuide.RouteChat", &RouteNote{})
stream, err := c.c.Stream(ctx, req, opts...)
if err != nil {
return nil, err
}
return &routeGuideServiceRouteChat{stream}, nil
}
type RouteGuide_RouteChatService interface {
Context() context.Context
SendMsg(interface{}) error
RecvMsg(interface{}) error
Close() error
Send(*RouteNote) error
Recv() (*RouteNote, error)
}
type routeGuideServiceRouteChat struct {
stream client.Stream
}
func (x *routeGuideServiceRouteChat) Close() error {
return x.stream.Close()
}
func (x *routeGuideServiceRouteChat) Context() context.Context {
return x.stream.Context()
}
func (x *routeGuideServiceRouteChat) SendMsg(m interface{}) error {
return x.stream.Send(m)
}
func (x *routeGuideServiceRouteChat) RecvMsg(m interface{}) error {
return x.stream.Recv(m)
}
func (x *routeGuideServiceRouteChat) Send(m *RouteNote) error {
return x.stream.Send(m)
}
func (x *routeGuideServiceRouteChat) Recv() (*RouteNote, error) {
m := new(RouteNote)
err := x.stream.Recv(m)
if err != nil {
return nil, err
}
return m, nil
}
// Server API for RouteGuide service
type RouteGuideHandler interface {
// Obtains the feature at a given position.
GetFeature(context.Context, *Point, *Feature) error
// Obtains the Features available within the given Rectangle. Results are
// streamed rather than returned at once (e.g. in a response message with a
// repeated field), as the rectangle may cover a large area and contain a
// huge number of features.
ListFeatures(context.Context, *Rectangle, RouteGuide_ListFeaturesStream) error
// Accepts a stream of Points on a route being traversed, returning a
// RouteSummary when traversal is completed.
RecordRoute(context.Context, RouteGuide_RecordRouteStream) error
// Accepts a stream of RouteNotes sent while a route is being traversed,
// while receiving other RouteNotes (e.g. from other users).
RouteChat(context.Context, RouteGuide_RouteChatStream) error
}
func RegisterRouteGuideHandler(s server.Server, hdlr RouteGuideHandler, opts ...server.HandlerOption) error {
type routeGuide interface {
GetFeature(ctx context.Context, in *Point, out *Feature) error
ListFeatures(ctx context.Context, stream server.Stream) error
RecordRoute(ctx context.Context, stream server.Stream) error
RouteChat(ctx context.Context, stream server.Stream) error
}
type RouteGuide struct {
routeGuide
}
h := &routeGuideHandler{hdlr}
return s.Handle(s.NewHandler(&RouteGuide{h}, opts...))
}
type routeGuideHandler struct {
RouteGuideHandler
}
func (h *routeGuideHandler) GetFeature(ctx context.Context, in *Point, out *Feature) error {
return h.RouteGuideHandler.GetFeature(ctx, in, out)
}
func (h *routeGuideHandler) ListFeatures(ctx context.Context, stream server.Stream) error {
m := new(Rectangle)
if err := stream.Recv(m); err != nil {
return err
}
return h.RouteGuideHandler.ListFeatures(ctx, m, &routeGuideListFeaturesStream{stream})
}
type RouteGuide_ListFeaturesStream interface {
Context() context.Context
SendMsg(interface{}) error
RecvMsg(interface{}) error
Close() error
Send(*Feature) error
}
type routeGuideListFeaturesStream struct {
stream server.Stream
}
func (x *routeGuideListFeaturesStream) Close() error {
return x.stream.Close()
}
func (x *routeGuideListFeaturesStream) Context() context.Context {
return x.stream.Context()
}
func (x *routeGuideListFeaturesStream) SendMsg(m interface{}) error {
return x.stream.Send(m)
}
func (x *routeGuideListFeaturesStream) RecvMsg(m interface{}) error {
return x.stream.Recv(m)
}
func (x *routeGuideListFeaturesStream) Send(m *Feature) error {
return x.stream.Send(m)
}
func (h *routeGuideHandler) RecordRoute(ctx context.Context, stream server.Stream) error {
return h.RouteGuideHandler.RecordRoute(ctx, &routeGuideRecordRouteStream{stream})
}
type RouteGuide_RecordRouteStream interface {
Context() context.Context
SendMsg(interface{}) error
RecvMsg(interface{}) error
SendAndClose(*RouteSummary) error
Recv() (*Point, error)
}
type routeGuideRecordRouteStream struct {
stream server.Stream
}
func (x *routeGuideRecordRouteStream) SendAndClose(in *RouteSummary) error {
if err := x.SendMsg(in); err != nil {
return err
}
return x.stream.Close()
}
func (x *routeGuideRecordRouteStream) Context() context.Context {
return x.stream.Context()
}
func (x *routeGuideRecordRouteStream) SendMsg(m interface{}) error {
return x.stream.Send(m)
}
func (x *routeGuideRecordRouteStream) RecvMsg(m interface{}) error {
return x.stream.Recv(m)
}
func (x *routeGuideRecordRouteStream) Recv() (*Point, error) {
m := new(Point)
if err := x.stream.Recv(m); err != nil {
return nil, err
}
return m, nil
}
func (h *routeGuideHandler) RouteChat(ctx context.Context, stream server.Stream) error {
return h.RouteGuideHandler.RouteChat(ctx, &routeGuideRouteChatStream{stream})
}
type RouteGuide_RouteChatStream interface {
Context() context.Context
SendMsg(interface{}) error
RecvMsg(interface{}) error
Close() error
Send(*RouteNote) error
Recv() (*RouteNote, error)
}
type routeGuideRouteChatStream struct {
stream server.Stream
}
func (x *routeGuideRouteChatStream) Close() error {
return x.stream.Close()
}
func (x *routeGuideRouteChatStream) Context() context.Context {
return x.stream.Context()
}
func (x *routeGuideRouteChatStream) SendMsg(m interface{}) error {
return x.stream.Send(m)
}
func (x *routeGuideRouteChatStream) RecvMsg(m interface{}) error {
return x.stream.Recv(m)
}
func (x *routeGuideRouteChatStream) Send(m *RouteNote) error {
return x.stream.Send(m)
}
func (x *routeGuideRouteChatStream) Recv() (*RouteNote, error) {
m := new(RouteNote)
if err := x.stream.Recv(m); err != nil {
return nil, err
}
return m, nil
}

View File

@@ -0,0 +1,73 @@
syntax = "proto3";
package stream;
// this service uses the grpc example as a foundation:
// https://grpc.io/docs/languages/go/basics/
// https://github.com/grpc/grpc-go/tree/master/examples/route_guide
service RouteGuide {
// Obtains the feature at a given position.
rpc GetFeature(Point) returns (Feature) {}
// Obtains the Features available within the given Rectangle. Results are
// streamed rather than returned at once (e.g. in a response message with a
// repeated field), as the rectangle may cover a large area and contain a
// huge number of features.
rpc ListFeatures(Rectangle) returns (stream Feature) {}
// Accepts a stream of Points on a route being traversed, returning a
// RouteSummary when traversal is completed.
rpc RecordRoute(stream Point) returns (RouteSummary) {}
// Accepts a stream of RouteNotes sent while a route is being traversed,
// while receiving other RouteNotes (e.g. from other users).
rpc RouteChat(stream RouteNote) returns (stream RouteNote) {}
}
// Points are represented as latitude-longitude pairs in the E7 representation
// (degrees multiplied by 10**7 and rounded to the nearest integer).
// Latitudes should be in the range +/- 90 degrees and longitude should be in
// the range +/- 180 degrees (inclusive).
message Point {
int32 latitude = 1;
int32 longitude = 2;
}
// A latitude-longitude rectangle, represented as two diagonally opposite
// points "lo" and "hi".
message Rectangle {
// One corner of the rectangle.
Point lo = 1;
// The other corner of the rectangle.
Point hi = 2;
}
// A feature names something at a given point.
// If a feature could not be named, the name is empty.
message Feature {
// The name of the feature.
string name = 1;
// The point where the feature is detected.
Point location = 2;
}
// A RouteNote is a message sent while at a given point.
message RouteNote {
// The location from which the message is sent.
Point location = 1;
// The message to be sent.
string message = 2;
}
// A RouteSummary is received in response to a RecordRoute rpc.
// It contains the number of individual points received, the number of
// detected features, and the total distance covered as the cumulative sum of
// the distance between each point.
message RouteSummary {
// The number of points received.
int32 point_count = 1;
// The number of known features passed while traversing the route.
int32 feature_count = 2;
// The distance covered in metres.
int32 distance = 3;
// The duration of the traversal in seconds.
int32 elapsed_time = 4;
}