Adds new RPC methods to router service interface

We have added Advertise() and Process() RPCs in this commit.
This commit is contained in:
Milos Gajdos 2019-07-24 21:07:04 +01:00
parent 220a8fafb1
commit 9ad5ae6644
No known key found for this signature in database
GPG Key ID: 8B31058CC55DFD4F
3 changed files with 213 additions and 36 deletions

View File

@ -37,6 +37,8 @@ type RouterService interface {
Watch(ctx context.Context, in *WatchRequest, opts ...client.CallOption) (Router_WatchService, error) Watch(ctx context.Context, in *WatchRequest, opts ...client.CallOption) (Router_WatchService, error)
Lookup(ctx context.Context, in *LookupRequest, opts ...client.CallOption) (*LookupResponse, error) Lookup(ctx context.Context, in *LookupRequest, opts ...client.CallOption) (*LookupResponse, error)
List(ctx context.Context, in *ListRequest, opts ...client.CallOption) (*ListResponse, error) List(ctx context.Context, in *ListRequest, opts ...client.CallOption) (*ListResponse, error)
Advertise(ctx context.Context, in *AdvertiseRequest, opts ...client.CallOption) (Router_AdvertiseService, error)
Process(ctx context.Context, in *Advert, opts ...client.CallOption) (*ProcessResponse, error)
} }
type routerService struct { type routerService struct {
@ -121,12 +123,68 @@ func (c *routerService) List(ctx context.Context, in *ListRequest, opts ...clien
return out, nil return out, nil
} }
func (c *routerService) Advertise(ctx context.Context, in *AdvertiseRequest, opts ...client.CallOption) (Router_AdvertiseService, error) {
req := c.c.NewRequest(c.name, "Router.Advertise", &AdvertiseRequest{})
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 &routerServiceAdvertise{stream}, nil
}
type Router_AdvertiseService interface {
SendMsg(interface{}) error
RecvMsg(interface{}) error
Close() error
Recv() (*Advert, error)
}
type routerServiceAdvertise struct {
stream client.Stream
}
func (x *routerServiceAdvertise) Close() error {
return x.stream.Close()
}
func (x *routerServiceAdvertise) SendMsg(m interface{}) error {
return x.stream.Send(m)
}
func (x *routerServiceAdvertise) RecvMsg(m interface{}) error {
return x.stream.Recv(m)
}
func (x *routerServiceAdvertise) Recv() (*Advert, error) {
m := new(Advert)
err := x.stream.Recv(m)
if err != nil {
return nil, err
}
return m, nil
}
func (c *routerService) Process(ctx context.Context, in *Advert, opts ...client.CallOption) (*ProcessResponse, error) {
req := c.c.NewRequest(c.name, "Router.Process", in)
out := new(ProcessResponse)
err := c.c.Call(ctx, req, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// Server API for Router service // Server API for Router service
type RouterHandler interface { type RouterHandler interface {
Watch(context.Context, *WatchRequest, Router_WatchStream) error Watch(context.Context, *WatchRequest, Router_WatchStream) error
Lookup(context.Context, *LookupRequest, *LookupResponse) error Lookup(context.Context, *LookupRequest, *LookupResponse) error
List(context.Context, *ListRequest, *ListResponse) error List(context.Context, *ListRequest, *ListResponse) error
Advertise(context.Context, *AdvertiseRequest, Router_AdvertiseStream) error
Process(context.Context, *Advert, *ProcessResponse) error
} }
func RegisterRouterHandler(s server.Server, hdlr RouterHandler, opts ...server.HandlerOption) error { func RegisterRouterHandler(s server.Server, hdlr RouterHandler, opts ...server.HandlerOption) error {
@ -134,6 +192,8 @@ func RegisterRouterHandler(s server.Server, hdlr RouterHandler, opts ...server.H
Watch(ctx context.Context, stream server.Stream) error Watch(ctx context.Context, stream server.Stream) error
Lookup(ctx context.Context, in *LookupRequest, out *LookupResponse) error Lookup(ctx context.Context, in *LookupRequest, out *LookupResponse) error
List(ctx context.Context, in *ListRequest, out *ListResponse) error List(ctx context.Context, in *ListRequest, out *ListResponse) error
Advertise(ctx context.Context, stream server.Stream) error
Process(ctx context.Context, in *Advert, out *ProcessResponse) error
} }
type Router struct { type Router struct {
router router
@ -188,3 +248,42 @@ func (h *routerHandler) Lookup(ctx context.Context, in *LookupRequest, out *Look
func (h *routerHandler) List(ctx context.Context, in *ListRequest, out *ListResponse) error { func (h *routerHandler) List(ctx context.Context, in *ListRequest, out *ListResponse) error {
return h.RouterHandler.List(ctx, in, out) return h.RouterHandler.List(ctx, in, out)
} }
func (h *routerHandler) Advertise(ctx context.Context, stream server.Stream) error {
m := new(AdvertiseRequest)
if err := stream.Recv(m); err != nil {
return err
}
return h.RouterHandler.Advertise(ctx, m, &routerAdvertiseStream{stream})
}
type Router_AdvertiseStream interface {
SendMsg(interface{}) error
RecvMsg(interface{}) error
Close() error
Send(*Advert) error
}
type routerAdvertiseStream struct {
stream server.Stream
}
func (x *routerAdvertiseStream) Close() error {
return x.stream.Close()
}
func (x *routerAdvertiseStream) SendMsg(m interface{}) error {
return x.stream.Send(m)
}
func (x *routerAdvertiseStream) RecvMsg(m interface{}) error {
return x.stream.Recv(m)
}
func (x *routerAdvertiseStream) Send(m *Advert) error {
return x.stream.Send(m)
}
func (h *routerHandler) Process(ctx context.Context, in *Advert, out *ProcessResponse) error {
return h.RouterHandler.Process(ctx, in, out)
}

View File

@ -187,6 +187,38 @@ func (m *WatchRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_WatchRequest proto.InternalMessageInfo var xxx_messageInfo_WatchRequest proto.InternalMessageInfo
// AdvertiseRequest request a stream of Adverts
type AdvertiseRequest struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *AdvertiseRequest) Reset() { *m = AdvertiseRequest{} }
func (m *AdvertiseRequest) String() string { return proto.CompactTextString(m) }
func (*AdvertiseRequest) ProtoMessage() {}
func (*AdvertiseRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_367072455c71aedc, []int{3}
}
func (m *AdvertiseRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AdvertiseRequest.Unmarshal(m, b)
}
func (m *AdvertiseRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AdvertiseRequest.Marshal(b, m, deterministic)
}
func (m *AdvertiseRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_AdvertiseRequest.Merge(m, src)
}
func (m *AdvertiseRequest) XXX_Size() int {
return xxx_messageInfo_AdvertiseRequest.Size(m)
}
func (m *AdvertiseRequest) XXX_DiscardUnknown() {
xxx_messageInfo_AdvertiseRequest.DiscardUnknown(m)
}
var xxx_messageInfo_AdvertiseRequest proto.InternalMessageInfo
// Advert is router advertsement streamed by Watch // Advert is router advertsement streamed by Watch
type Advert struct { type Advert struct {
// id of the advertising router // id of the advertising router
@ -208,7 +240,7 @@ func (m *Advert) Reset() { *m = Advert{} }
func (m *Advert) String() string { return proto.CompactTextString(m) } func (m *Advert) String() string { return proto.CompactTextString(m) }
func (*Advert) ProtoMessage() {} func (*Advert) ProtoMessage() {}
func (*Advert) Descriptor() ([]byte, []int) { func (*Advert) Descriptor() ([]byte, []int) {
return fileDescriptor_367072455c71aedc, []int{3} return fileDescriptor_367072455c71aedc, []int{4}
} }
func (m *Advert) XXX_Unmarshal(b []byte) error { func (m *Advert) XXX_Unmarshal(b []byte) error {
@ -264,6 +296,38 @@ func (m *Advert) GetEvents() []*Event {
return nil return nil
} }
// ProcessResponse is returned by Process
type ProcessResponse struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ProcessResponse) Reset() { *m = ProcessResponse{} }
func (m *ProcessResponse) String() string { return proto.CompactTextString(m) }
func (*ProcessResponse) ProtoMessage() {}
func (*ProcessResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_367072455c71aedc, []int{5}
}
func (m *ProcessResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProcessResponse.Unmarshal(m, b)
}
func (m *ProcessResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ProcessResponse.Marshal(b, m, deterministic)
}
func (m *ProcessResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_ProcessResponse.Merge(m, src)
}
func (m *ProcessResponse) XXX_Size() int {
return xxx_messageInfo_ProcessResponse.Size(m)
}
func (m *ProcessResponse) XXX_DiscardUnknown() {
xxx_messageInfo_ProcessResponse.DiscardUnknown(m)
}
var xxx_messageInfo_ProcessResponse proto.InternalMessageInfo
// Event is routing table event // Event is routing table event
type Event struct { type Event struct {
// type of event // type of event
@ -281,7 +345,7 @@ func (m *Event) Reset() { *m = Event{} }
func (m *Event) String() string { return proto.CompactTextString(m) } func (m *Event) String() string { return proto.CompactTextString(m) }
func (*Event) ProtoMessage() {} func (*Event) ProtoMessage() {}
func (*Event) Descriptor() ([]byte, []int) { func (*Event) Descriptor() ([]byte, []int) {
return fileDescriptor_367072455c71aedc, []int{4} return fileDescriptor_367072455c71aedc, []int{6}
} }
func (m *Event) XXX_Unmarshal(b []byte) error { func (m *Event) XXX_Unmarshal(b []byte) error {
@ -334,7 +398,7 @@ func (m *ListRequest) Reset() { *m = ListRequest{} }
func (m *ListRequest) String() string { return proto.CompactTextString(m) } func (m *ListRequest) String() string { return proto.CompactTextString(m) }
func (*ListRequest) ProtoMessage() {} func (*ListRequest) ProtoMessage() {}
func (*ListRequest) Descriptor() ([]byte, []int) { func (*ListRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_367072455c71aedc, []int{5} return fileDescriptor_367072455c71aedc, []int{7}
} }
func (m *ListRequest) XXX_Unmarshal(b []byte) error { func (m *ListRequest) XXX_Unmarshal(b []byte) error {
@ -367,7 +431,7 @@ func (m *ListResponse) Reset() { *m = ListResponse{} }
func (m *ListResponse) String() string { return proto.CompactTextString(m) } func (m *ListResponse) String() string { return proto.CompactTextString(m) }
func (*ListResponse) ProtoMessage() {} func (*ListResponse) ProtoMessage() {}
func (*ListResponse) Descriptor() ([]byte, []int) { func (*ListResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_367072455c71aedc, []int{6} return fileDescriptor_367072455c71aedc, []int{8}
} }
func (m *ListResponse) XXX_Unmarshal(b []byte) error { func (m *ListResponse) XXX_Unmarshal(b []byte) error {
@ -408,7 +472,7 @@ func (m *Query) Reset() { *m = Query{} }
func (m *Query) String() string { return proto.CompactTextString(m) } func (m *Query) String() string { return proto.CompactTextString(m) }
func (*Query) ProtoMessage() {} func (*Query) ProtoMessage() {}
func (*Query) Descriptor() ([]byte, []int) { func (*Query) Descriptor() ([]byte, []int) {
return fileDescriptor_367072455c71aedc, []int{7} return fileDescriptor_367072455c71aedc, []int{9}
} }
func (m *Query) XXX_Unmarshal(b []byte) error { func (m *Query) XXX_Unmarshal(b []byte) error {
@ -459,7 +523,7 @@ func (m *Route) Reset() { *m = Route{} }
func (m *Route) String() string { return proto.CompactTextString(m) } func (m *Route) String() string { return proto.CompactTextString(m) }
func (*Route) ProtoMessage() {} func (*Route) ProtoMessage() {}
func (*Route) Descriptor() ([]byte, []int) { func (*Route) Descriptor() ([]byte, []int) {
return fileDescriptor_367072455c71aedc, []int{8} return fileDescriptor_367072455c71aedc, []int{10}
} }
func (m *Route) XXX_Unmarshal(b []byte) error { func (m *Route) XXX_Unmarshal(b []byte) error {
@ -528,7 +592,9 @@ func init() {
proto.RegisterType((*LookupRequest)(nil), "LookupRequest") proto.RegisterType((*LookupRequest)(nil), "LookupRequest")
proto.RegisterType((*LookupResponse)(nil), "LookupResponse") proto.RegisterType((*LookupResponse)(nil), "LookupResponse")
proto.RegisterType((*WatchRequest)(nil), "WatchRequest") proto.RegisterType((*WatchRequest)(nil), "WatchRequest")
proto.RegisterType((*AdvertiseRequest)(nil), "AdvertiseRequest")
proto.RegisterType((*Advert)(nil), "Advert") proto.RegisterType((*Advert)(nil), "Advert")
proto.RegisterType((*ProcessResponse)(nil), "ProcessResponse")
proto.RegisterType((*Event)(nil), "Event") proto.RegisterType((*Event)(nil), "Event")
proto.RegisterType((*ListRequest)(nil), "ListRequest") proto.RegisterType((*ListRequest)(nil), "ListRequest")
proto.RegisterType((*ListResponse)(nil), "ListResponse") proto.RegisterType((*ListResponse)(nil), "ListResponse")
@ -539,34 +605,37 @@ func init() {
func init() { proto.RegisterFile("router.proto", fileDescriptor_367072455c71aedc) } func init() { proto.RegisterFile("router.proto", fileDescriptor_367072455c71aedc) }
var fileDescriptor_367072455c71aedc = []byte{ var fileDescriptor_367072455c71aedc = []byte{
// 461 bytes of a gzipped FileDescriptorProto // 508 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x41, 0x8f, 0xd3, 0x4c, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x51, 0x6e, 0xd3, 0x40,
0x0c, 0xcd, 0xa4, 0x4d, 0x3e, 0xc5, 0x4d, 0xf3, 0x55, 0x3e, 0xa0, 0xa8, 0xaa, 0x96, 0x32, 0x12, 0x10, 0xf5, 0x26, 0xb1, 0x2b, 0x4f, 0x13, 0xd7, 0x9d, 0x0f, 0x64, 0x45, 0x55, 0x09, 0x2b, 0x81,
0x52, 0xb5, 0x88, 0xb0, 0x2a, 0xbf, 0x60, 0x05, 0xdc, 0xf6, 0xc2, 0x08, 0xc4, 0x39, 0x24, 0x16, 0xa2, 0x56, 0x2c, 0x55, 0x38, 0x41, 0x05, 0xfc, 0xf5, 0x03, 0x56, 0x20, 0xbe, 0x8d, 0x3d, 0x02,
0x44, 0x6d, 0x93, 0xec, 0xcc, 0xa4, 0xab, 0xde, 0xb8, 0xf2, 0x1b, 0xf8, 0xb3, 0x68, 0x9c, 0x84, 0x2b, 0x89, 0xed, 0xee, 0x6e, 0x52, 0xe5, 0x08, 0x9c, 0x81, 0x73, 0x71, 0x1f, 0xb4, 0xeb, 0x75,
0x76, 0x91, 0x56, 0xe2, 0xe6, 0xf7, 0x6c, 0xc7, 0x9e, 0xf7, 0x1c, 0x88, 0x75, 0xd3, 0x59, 0xd2, 0x93, 0x46, 0xaa, 0xc4, 0xdf, 0xbc, 0x37, 0x33, 0xeb, 0xe7, 0x37, 0x33, 0x30, 0x56, 0xcd, 0xc6,
0x59, 0xab, 0x1b, 0xdb, 0xc8, 0xd7, 0x30, 0xbf, 0x6b, 0x9a, 0x5d, 0xd7, 0x2a, 0xba, 0xef, 0xc8, 0x90, 0x12, 0xad, 0x6a, 0x4c, 0xc3, 0xdf, 0xc2, 0xe4, 0xae, 0x69, 0x96, 0x9b, 0x56, 0xd2, 0xfd,
0x58, 0x5c, 0x41, 0x70, 0xdf, 0x91, 0x3e, 0xa5, 0x62, 0x2d, 0x36, 0xb3, 0x6d, 0x98, 0x7d, 0x74, 0x86, 0xb4, 0xc1, 0x0b, 0x08, 0xef, 0x37, 0xa4, 0x76, 0x19, 0x9b, 0xb1, 0xf9, 0xe9, 0x22, 0x12,
0x48, 0xf5, 0xa4, 0xbc, 0x81, 0x64, 0x2c, 0x37, 0x6d, 0x53, 0x1b, 0xc2, 0x2b, 0x08, 0xf9, 0x83, 0x5f, 0x2c, 0x92, 0x1d, 0xc9, 0x6f, 0x20, 0xe9, 0xcb, 0x75, 0xdb, 0xd4, 0x9a, 0xf0, 0x12, 0x22,
0x26, 0x15, 0xeb, 0x09, 0x37, 0x28, 0x07, 0xd5, 0xc0, 0xca, 0x04, 0xe2, 0x2f, 0xb9, 0x2d, 0xbe, 0xf7, 0xa0, 0xce, 0xd8, 0x6c, 0xe8, 0x1a, 0xa4, 0x85, 0xd2, 0xb3, 0x3c, 0x81, 0xf1, 0xf7, 0xdc,
0x0f, 0xdf, 0x97, 0x3f, 0x05, 0x84, 0xb7, 0xe5, 0x91, 0xb4, 0xc5, 0x04, 0xfc, 0xaa, 0xe4, 0x39, 0x14, 0xbf, 0xfc, 0xfb, 0x1c, 0x21, 0xbd, 0x2d, 0xb7, 0xa4, 0x4c, 0xa5, 0xa9, 0xe7, 0x7e, 0x33,
0x91, 0xf2, 0xab, 0x12, 0x9f, 0xc3, 0xd4, 0x9e, 0x5a, 0x4a, 0xfd, 0xb5, 0xd8, 0x24, 0xdb, 0x59, 0x88, 0x3a, 0x12, 0x13, 0x18, 0x54, 0xa5, 0xfb, 0x76, 0x2c, 0x07, 0x55, 0x89, 0x2f, 0x61, 0x64,
0xd6, 0x97, 0x7d, 0x3a, 0xb5, 0xa4, 0x38, 0x81, 0x2b, 0x88, 0x6c, 0x75, 0x20, 0x63, 0xf3, 0x43, 0x76, 0x2d, 0x65, 0x83, 0x19, 0x9b, 0x27, 0x8b, 0x53, 0xd1, 0x95, 0x7d, 0xdd, 0xb5, 0x24, 0x5d,
0x9b, 0x4e, 0xd6, 0x62, 0x33, 0x51, 0x67, 0x02, 0x17, 0x30, 0xb1, 0x76, 0x9f, 0x4e, 0x99, 0x77, 0x02, 0x2f, 0x20, 0x36, 0xd5, 0x9a, 0xb4, 0xc9, 0xd7, 0x6d, 0x36, 0x9c, 0xb1, 0xf9, 0x50, 0xee,
0xa1, 0xdb, 0x8d, 0x8e, 0x54, 0x5b, 0x93, 0x06, 0xc3, 0x6e, 0x1f, 0x1c, 0x54, 0x03, 0x2b, 0x0b, 0x09, 0x4c, 0x61, 0x68, 0xcc, 0x2a, 0x1b, 0x39, 0xde, 0x86, 0x56, 0x2f, 0x6d, 0xa9, 0x36, 0x3a,
0x08, 0x98, 0xc0, 0xab, 0x61, 0xb2, 0xe0, 0xc9, 0xd0, 0x97, 0x3d, 0x35, 0xd8, 0xff, 0x7b, 0xf0, 0x0b, 0xbd, 0xde, 0x4f, 0x16, 0x4a, 0xcf, 0xf2, 0x73, 0x38, 0xfb, 0xac, 0x9a, 0x82, 0xb4, 0xee,
0x0a, 0x02, 0x7e, 0x2c, 0xaf, 0x74, 0x56, 0xa0, 0x27, 0xe5, 0x1c, 0x66, 0x77, 0x95, 0xb1, 0xe3, 0x7f, 0x91, 0x17, 0x10, 0xba, 0x1a, 0xbc, 0xf4, 0x62, 0x98, 0x13, 0x03, 0x5d, 0xe7, 0x73, 0x5a,
0xfb, 0x33, 0x88, 0x7b, 0xf8, 0x8f, 0xfa, 0xbd, 0x80, 0x80, 0x1d, 0xc0, 0x14, 0xfe, 0x33, 0xa4, 0x06, 0xc7, 0x5a, 0x2e, 0x20, 0x74, 0x9e, 0x38, 0x95, 0x7b, 0xa3, 0x3a, 0x92, 0x4f, 0xe0, 0xf4,
0x8f, 0x55, 0x41, 0x83, 0x64, 0x23, 0x94, 0xbf, 0x04, 0x04, 0xdc, 0xf4, 0x74, 0x8d, 0xcb, 0xe4, 0xae, 0xd2, 0xa6, 0xb7, 0x44, 0xc0, 0xb8, 0x83, 0xff, 0x69, 0xf3, 0x2b, 0x08, 0xdd, 0xa0, 0x30,
0x65, 0xa9, 0xc9, 0x18, 0xde, 0x3f, 0x52, 0x23, 0x74, 0x99, 0x6f, 0xb9, 0xa5, 0x87, 0xfc, 0xc4, 0x83, 0x13, 0x4d, 0x6a, 0x5b, 0x15, 0xe4, 0x5d, 0xec, 0x21, 0xff, 0xc3, 0x20, 0x74, 0x4d, 0xcf,
0xfb, 0x47, 0x6a, 0x84, 0x2e, 0x53, 0x93, 0x7d, 0x68, 0xf4, 0x8e, 0x45, 0x8d, 0xd4, 0x08, 0x11, 0xd7, 0xd8, 0x4c, 0x5e, 0x96, 0x8a, 0xb4, 0x76, 0xfa, 0x63, 0xd9, 0x43, 0x9b, 0xf9, 0x99, 0x1b,
0x61, 0xba, 0xaf, 0xea, 0x5d, 0x1a, 0x30, 0xcd, 0x31, 0x3e, 0x83, 0xf0, 0x40, 0x56, 0x57, 0x45, 0x7a, 0xc8, 0x77, 0x4e, 0x7f, 0x2c, 0x7b, 0x68, 0x33, 0x35, 0x99, 0x87, 0x46, 0x2d, 0x9d, 0xcf,
0x1a, 0xb2, 0x40, 0x03, 0xba, 0xde, 0x02, 0x9c, 0x8d, 0x44, 0x84, 0xa4, 0x47, 0xb7, 0x75, 0xdd, 0xb1, 0xec, 0x21, 0x22, 0x8c, 0x56, 0x55, 0xbd, 0xcc, 0x42, 0x47, 0xbb, 0x18, 0x5f, 0x40, 0xb4,
0x74, 0x75, 0x41, 0x0b, 0x0f, 0x17, 0x10, 0xf7, 0xdc, 0xe7, 0xb6, 0xcc, 0x2d, 0x2d, 0xc4, 0xf5, 0x26, 0xa3, 0xaa, 0x22, 0x8b, 0x9c, 0x41, 0x1e, 0x5d, 0x2d, 0x00, 0xf6, 0xb3, 0x45, 0x84, 0xa4,
0x1b, 0x88, 0xfe, 0x58, 0x80, 0x00, 0xe1, 0x3b, 0x4d, 0x2e, 0xe1, 0xb9, 0xf8, 0x3d, 0xed, 0xc9, 0x43, 0xb7, 0x75, 0xdd, 0x6c, 0xea, 0x82, 0xd2, 0x00, 0x53, 0x18, 0x77, 0xdc, 0xb7, 0xb6, 0xcc,
0x15, 0xb9, 0x78, 0x68, 0xf0, 0xb7, 0x3f, 0x04, 0x84, 0x2c, 0x81, 0x46, 0x09, 0x01, 0x1f, 0x1c, 0x0d, 0xa5, 0xec, 0xea, 0x1d, 0xc4, 0x8f, 0x23, 0x40, 0x80, 0xe8, 0x83, 0x22, 0x9b, 0x08, 0x6c,
0xce, 0xb3, 0xcb, 0xc3, 0x5b, 0x0e, 0xe6, 0x4b, 0xef, 0x46, 0xe0, 0x2b, 0x08, 0xfb, 0x33, 0xc6, 0xfc, 0x91, 0x56, 0x64, 0x8b, 0x6c, 0xec, 0x1b, 0x06, 0x8b, 0xbf, 0x0c, 0x22, 0x67, 0x81, 0x42,
0x24, 0x7b, 0x74, 0xfe, 0xcb, 0xff, 0xb3, 0xc7, 0xf7, 0x2d, 0x3d, 0x7c, 0x09, 0x53, 0xe7, 0x18, 0x0e, 0xa1, 0xdb, 0x4b, 0x9c, 0x88, 0xc3, 0xfd, 0x9c, 0xfa, 0x7d, 0xe0, 0xc1, 0x0d, 0xc3, 0x6b,
0xc6, 0xd9, 0x85, 0x8f, 0xcb, 0x79, 0x76, 0x69, 0xa3, 0xf4, 0xbe, 0x86, 0xfc, 0x43, 0xbd, 0xfd, 0x88, 0xba, 0x6d, 0xc7, 0x44, 0x3c, 0xb9, 0x92, 0xe9, 0x99, 0x78, 0x7a, 0x06, 0x3c, 0xc0, 0xd7,
0x1d, 0x00, 0x00, 0xff, 0xff, 0x5e, 0x52, 0x2f, 0xa0, 0x60, 0x03, 0x00, 0x00, 0x30, 0xb2, 0x13, 0xc3, 0xb1, 0x38, 0x98, 0xe3, 0x74, 0x22, 0x0e, 0xc7, 0xc8, 0x03, 0xbc, 0x86,
0xf8, 0x71, 0xff, 0xf1, 0x5c, 0x1c, 0xdf, 0xc2, 0xf4, 0xc4, 0x53, 0x4e, 0xc0, 0x1b, 0x38, 0xf1,
0xcb, 0x88, 0x3d, 0x3f, 0x4d, 0xc5, 0xf1, 0x7e, 0x06, 0x3f, 0x22, 0x77, 0xcc, 0xef, 0xff, 0x05,
0x00, 0x00, 0xff, 0xff, 0x05, 0x67, 0xe4, 0x0e, 0xdc, 0x03, 0x00, 0x00,
} }

View File

@ -5,6 +5,8 @@ service Router {
rpc Watch(WatchRequest) returns (stream Event) {}; rpc Watch(WatchRequest) returns (stream Event) {};
rpc Lookup(LookupRequest) returns (LookupResponse) {}; rpc Lookup(LookupRequest) returns (LookupResponse) {};
rpc List(ListRequest) returns (ListResponse) {}; rpc List(ListRequest) returns (ListResponse) {};
rpc Advertise(AdvertiseRequest) returns (stream Advert) {};
rpc Process(Advert) returns (ProcessResponse) {};
} }
// LookupRequest is made to Lookup // LookupRequest is made to Lookup
@ -20,6 +22,10 @@ message LookupResponse {
// WatchRequest is made to Watch Router // WatchRequest is made to Watch Router
message WatchRequest {} message WatchRequest {}
// AdvertiseRequest request a stream of Adverts
message AdvertiseRequest {}
// AdvertType defines the type of advert // AdvertType defines the type of advert
enum AdvertType { enum AdvertType {
AdvertAnnounce = 0; AdvertAnnounce = 0;
@ -40,6 +46,9 @@ message Advert {
repeated Event events = 5; repeated Event events = 5;
} }
// ProcessResponse is returned by Process
message ProcessResponse {}
// EventType defines the type of event // EventType defines the type of event
enum EventType { enum EventType {
Create = 0; Create = 0;