From 8db040f5f993fd042bf6d913fdfbc3c55670c494 Mon Sep 17 00:00:00 2001 From: Zhenghao Zhang Date: Wed, 4 Dec 2024 20:07:23 +0800 Subject: [PATCH] implement cache proxy --- protocol/cache_store.pb.go | 1490 +++++++++++++++++++++++++++++------- protocol/cache_store.proto | 79 +- protocol/protocol.pb.go | 1012 +----------------------- protocol/protocol.proto | 73 -- storage/cache/proxy.go | 170 +++- 5 files changed, 1462 insertions(+), 1362 deletions(-) diff --git a/protocol/cache_store.pb.go b/protocol/cache_store.pb.go index 9f8f214d6..f0cf0825b 100644 --- a/protocol/cache_store.pb.go +++ b/protocol/cache_store.pb.go @@ -238,23 +238,665 @@ type TimeSeriesPoint struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Timestamp *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Value float64 `protobuf:"fixed64,3,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *TimeSeriesPoint) Reset() { + *x = TimeSeriesPoint{} + mi := &file_cache_store_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TimeSeriesPoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TimeSeriesPoint) ProtoMessage() {} + +func (x *TimeSeriesPoint) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TimeSeriesPoint.ProtoReflect.Descriptor instead. +func (*TimeSeriesPoint) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{3} +} + +func (x *TimeSeriesPoint) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *TimeSeriesPoint) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *TimeSeriesPoint) GetValue() float64 { + if x != nil { + return x.Value + } + return 0 +} + +type GetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetRequest) Reset() { + *x = GetRequest{} + mi := &file_cache_store_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRequest) ProtoMessage() {} + +func (x *GetRequest) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetRequest.ProtoReflect.Descriptor instead. +func (*GetRequest) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{4} +} + +func (x *GetRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type GetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *GetResponse) Reset() { + *x = GetResponse{} + mi := &file_cache_store_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetResponse) ProtoMessage() {} + +func (x *GetResponse) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetResponse.ProtoReflect.Descriptor instead. +func (*GetResponse) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{5} +} + +func (x *GetResponse) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type SetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *SetRequest) Reset() { + *x = SetRequest{} + mi := &file_cache_store_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetRequest) ProtoMessage() {} + +func (x *SetRequest) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetRequest.ProtoReflect.Descriptor instead. +func (*SetRequest) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{6} +} + +func (x *SetRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SetRequest) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type SetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SetResponse) Reset() { + *x = SetResponse{} + mi := &file_cache_store_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetResponse) ProtoMessage() {} + +func (x *SetResponse) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetResponse.ProtoReflect.Descriptor instead. +func (*SetResponse) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{7} +} + +type DeleteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteRequest) Reset() { + *x = DeleteRequest{} + mi := &file_cache_store_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteRequest) ProtoMessage() {} + +func (x *DeleteRequest) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead. +func (*DeleteRequest) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{8} +} + +func (x *DeleteRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type DeleteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteResponse) Reset() { + *x = DeleteResponse{} + mi := &file_cache_store_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteResponse) ProtoMessage() {} + +func (x *DeleteResponse) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteResponse.ProtoReflect.Descriptor instead. +func (*DeleteResponse) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{9} +} + +type GetSetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *GetSetRequest) Reset() { + *x = GetSetRequest{} + mi := &file_cache_store_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetSetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSetRequest) ProtoMessage() {} + +func (x *GetSetRequest) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSetRequest.ProtoReflect.Descriptor instead. +func (*GetSetRequest) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{10} +} + +func (x *GetSetRequest) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +type GetSetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Members []string `protobuf:"bytes,1,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *GetSetResponse) Reset() { + *x = GetSetResponse{} + mi := &file_cache_store_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetSetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSetResponse) ProtoMessage() {} + +func (x *GetSetResponse) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSetResponse.ProtoReflect.Descriptor instead. +func (*GetSetResponse) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{11} +} + +func (x *GetSetResponse) GetMembers() []string { + if x != nil { + return x.Members + } + return nil +} + +type SetSetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Members []string `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *SetSetRequest) Reset() { + *x = SetSetRequest{} + mi := &file_cache_store_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SetSetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetSetRequest) ProtoMessage() {} + +func (x *SetSetRequest) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetSetRequest.ProtoReflect.Descriptor instead. +func (*SetSetRequest) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{12} +} + +func (x *SetSetRequest) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *SetSetRequest) GetMembers() []string { + if x != nil { + return x.Members + } + return nil +} + +type SetSetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SetSetResponse) Reset() { + *x = SetSetResponse{} + mi := &file_cache_store_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SetSetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetSetResponse) ProtoMessage() {} + +func (x *SetSetResponse) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetSetResponse.ProtoReflect.Descriptor instead. +func (*SetSetResponse) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{13} +} + +type AddSetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Members []string `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *AddSetRequest) Reset() { + *x = AddSetRequest{} + mi := &file_cache_store_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AddSetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddSetRequest) ProtoMessage() {} + +func (x *AddSetRequest) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddSetRequest.ProtoReflect.Descriptor instead. +func (*AddSetRequest) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{14} +} + +func (x *AddSetRequest) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *AddSetRequest) GetMembers() []string { + if x != nil { + return x.Members + } + return nil +} + +type AddSetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AddSetResponse) Reset() { + *x = AddSetResponse{} + mi := &file_cache_store_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AddSetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddSetResponse) ProtoMessage() {} + +func (x *AddSetResponse) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddSetResponse.ProtoReflect.Descriptor instead. +func (*AddSetResponse) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{15} +} + +type RemSetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Members []string `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *RemSetRequest) Reset() { + *x = RemSetRequest{} + mi := &file_cache_store_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemSetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemSetRequest) ProtoMessage() {} + +func (x *RemSetRequest) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (x *TimeSeriesPoint) Reset() { - *x = TimeSeriesPoint{} - mi := &file_cache_store_proto_msgTypes[3] +// Deprecated: Use RemSetRequest.ProtoReflect.Descriptor instead. +func (*RemSetRequest) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{16} +} + +func (x *RemSetRequest) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *RemSetRequest) GetMembers() []string { + if x != nil { + return x.Members + } + return nil +} + +type RemSetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RemSetResponse) Reset() { + *x = RemSetResponse{} + mi := &file_cache_store_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TimeSeriesPoint) String() string { +func (x *RemSetResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TimeSeriesPoint) ProtoMessage() {} +func (*RemSetResponse) ProtoMessage() {} -func (x *TimeSeriesPoint) ProtoReflect() protoreflect.Message { - mi := &file_cache_store_proto_msgTypes[3] +func (x *RemSetResponse) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -265,9 +907,278 @@ func (x *TimeSeriesPoint) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TimeSeriesPoint.ProtoReflect.Descriptor instead. -func (*TimeSeriesPoint) Descriptor() ([]byte, []int) { - return file_cache_store_proto_rawDescGZIP(), []int{3} +// Deprecated: Use RemSetResponse.ProtoReflect.Descriptor instead. +func (*RemSetResponse) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{17} +} + +type PushRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *PushRequest) Reset() { + *x = PushRequest{} + mi := &file_cache_store_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PushRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushRequest) ProtoMessage() {} + +func (x *PushRequest) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PushRequest.ProtoReflect.Descriptor instead. +func (*PushRequest) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{18} +} + +func (x *PushRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *PushRequest) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type PushResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PushResponse) Reset() { + *x = PushResponse{} + mi := &file_cache_store_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PushResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushResponse) ProtoMessage() {} + +func (x *PushResponse) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PushResponse.ProtoReflect.Descriptor instead. +func (*PushResponse) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{19} +} + +type PopRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *PopRequest) Reset() { + *x = PopRequest{} + mi := &file_cache_store_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PopRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PopRequest) ProtoMessage() {} + +func (x *PopRequest) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PopRequest.ProtoReflect.Descriptor instead. +func (*PopRequest) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{20} +} + +func (x *PopRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type PopResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value *string `protobuf:"bytes,1,opt,name=value,proto3,oneof" json:"value,omitempty"` +} + +func (x *PopResponse) Reset() { + *x = PopResponse{} + mi := &file_cache_store_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PopResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PopResponse) ProtoMessage() {} + +func (x *PopResponse) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PopResponse.ProtoReflect.Descriptor instead. +func (*PopResponse) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{21} +} + +func (x *PopResponse) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +type RemainRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *RemainRequest) Reset() { + *x = RemainRequest{} + mi := &file_cache_store_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemainRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemainRequest) ProtoMessage() {} + +func (x *RemainRequest) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemainRequest.ProtoReflect.Descriptor instead. +func (*RemainRequest) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{22} +} + +func (x *RemainRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type RemainResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *RemainResponse) Reset() { + *x = RemainResponse{} + mi := &file_cache_store_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemainResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemainResponse) ProtoMessage() {} + +func (x *RemainResponse) ProtoReflect() protoreflect.Message { + mi := &file_cache_store_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemainResponse.ProtoReflect.Descriptor instead. +func (*RemainResponse) Descriptor() ([]byte, []int) { + return file_cache_store_proto_rawDescGZIP(), []int{23} +} + +func (x *RemainResponse) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 } type AddScoresRequest struct { @@ -282,7 +1193,7 @@ type AddScoresRequest struct { func (x *AddScoresRequest) Reset() { *x = AddScoresRequest{} - mi := &file_cache_store_proto_msgTypes[4] + mi := &file_cache_store_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -294,7 +1205,7 @@ func (x *AddScoresRequest) String() string { func (*AddScoresRequest) ProtoMessage() {} func (x *AddScoresRequest) ProtoReflect() protoreflect.Message { - mi := &file_cache_store_proto_msgTypes[4] + mi := &file_cache_store_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -307,7 +1218,7 @@ func (x *AddScoresRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScoresRequest.ProtoReflect.Descriptor instead. func (*AddScoresRequest) Descriptor() ([]byte, []int) { - return file_cache_store_proto_rawDescGZIP(), []int{4} + return file_cache_store_proto_rawDescGZIP(), []int{24} } func (x *AddScoresRequest) GetCollection() string { @@ -339,7 +1250,7 @@ type AddScoresResponse struct { func (x *AddScoresResponse) Reset() { *x = AddScoresResponse{} - mi := &file_cache_store_proto_msgTypes[5] + mi := &file_cache_store_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -351,7 +1262,7 @@ func (x *AddScoresResponse) String() string { func (*AddScoresResponse) ProtoMessage() {} func (x *AddScoresResponse) ProtoReflect() protoreflect.Message { - mi := &file_cache_store_proto_msgTypes[5] + mi := &file_cache_store_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -364,7 +1275,7 @@ func (x *AddScoresResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScoresResponse.ProtoReflect.Descriptor instead. func (*AddScoresResponse) Descriptor() ([]byte, []int) { - return file_cache_store_proto_rawDescGZIP(), []int{5} + return file_cache_store_proto_rawDescGZIP(), []int{25} } type SearchScoresRequest struct { @@ -381,7 +1292,7 @@ type SearchScoresRequest struct { func (x *SearchScoresRequest) Reset() { *x = SearchScoresRequest{} - mi := &file_cache_store_proto_msgTypes[6] + mi := &file_cache_store_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -393,7 +1304,7 @@ func (x *SearchScoresRequest) String() string { func (*SearchScoresRequest) ProtoMessage() {} func (x *SearchScoresRequest) ProtoReflect() protoreflect.Message { - mi := &file_cache_store_proto_msgTypes[6] + mi := &file_cache_store_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -406,7 +1317,7 @@ func (x *SearchScoresRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchScoresRequest.ProtoReflect.Descriptor instead. func (*SearchScoresRequest) Descriptor() ([]byte, []int) { - return file_cache_store_proto_rawDescGZIP(), []int{6} + return file_cache_store_proto_rawDescGZIP(), []int{26} } func (x *SearchScoresRequest) GetCollection() string { @@ -454,7 +1365,7 @@ type SearchScoresResponse struct { func (x *SearchScoresResponse) Reset() { *x = SearchScoresResponse{} - mi := &file_cache_store_proto_msgTypes[7] + mi := &file_cache_store_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -466,7 +1377,7 @@ func (x *SearchScoresResponse) String() string { func (*SearchScoresResponse) ProtoMessage() {} func (x *SearchScoresResponse) ProtoReflect() protoreflect.Message { - mi := &file_cache_store_proto_msgTypes[7] + mi := &file_cache_store_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -479,7 +1390,7 @@ func (x *SearchScoresResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchScoresResponse.ProtoReflect.Descriptor instead. func (*SearchScoresResponse) Descriptor() ([]byte, []int) { - return file_cache_store_proto_rawDescGZIP(), []int{7} + return file_cache_store_proto_rawDescGZIP(), []int{27} } func (x *SearchScoresResponse) GetDocuments() []*Score { @@ -500,7 +1411,7 @@ type DeleteScoresRequest struct { func (x *DeleteScoresRequest) Reset() { *x = DeleteScoresRequest{} - mi := &file_cache_store_proto_msgTypes[8] + mi := &file_cache_store_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -512,7 +1423,7 @@ func (x *DeleteScoresRequest) String() string { func (*DeleteScoresRequest) ProtoMessage() {} func (x *DeleteScoresRequest) ProtoReflect() protoreflect.Message { - mi := &file_cache_store_proto_msgTypes[8] + mi := &file_cache_store_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -525,7 +1436,7 @@ func (x *DeleteScoresRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScoresRequest.ProtoReflect.Descriptor instead. func (*DeleteScoresRequest) Descriptor() ([]byte, []int) { - return file_cache_store_proto_rawDescGZIP(), []int{8} + return file_cache_store_proto_rawDescGZIP(), []int{28} } func (x *DeleteScoresRequest) GetCollection() []string { @@ -550,7 +1461,7 @@ type DeleteScoresResponse struct { func (x *DeleteScoresResponse) Reset() { *x = DeleteScoresResponse{} - mi := &file_cache_store_proto_msgTypes[9] + mi := &file_cache_store_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -562,7 +1473,7 @@ func (x *DeleteScoresResponse) String() string { func (*DeleteScoresResponse) ProtoMessage() {} func (x *DeleteScoresResponse) ProtoReflect() protoreflect.Message { - mi := &file_cache_store_proto_msgTypes[9] + mi := &file_cache_store_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -575,7 +1486,7 @@ func (x *DeleteScoresResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScoresResponse.ProtoReflect.Descriptor instead. func (*DeleteScoresResponse) Descriptor() ([]byte, []int) { - return file_cache_store_proto_rawDescGZIP(), []int{9} + return file_cache_store_proto_rawDescGZIP(), []int{29} } type UpdateScoresRequest struct { @@ -590,7 +1501,7 @@ type UpdateScoresRequest struct { func (x *UpdateScoresRequest) Reset() { *x = UpdateScoresRequest{} - mi := &file_cache_store_proto_msgTypes[10] + mi := &file_cache_store_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -602,7 +1513,7 @@ func (x *UpdateScoresRequest) String() string { func (*UpdateScoresRequest) ProtoMessage() {} func (x *UpdateScoresRequest) ProtoReflect() protoreflect.Message { - mi := &file_cache_store_proto_msgTypes[10] + mi := &file_cache_store_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -615,7 +1526,7 @@ func (x *UpdateScoresRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScoresRequest.ProtoReflect.Descriptor instead. func (*UpdateScoresRequest) Descriptor() ([]byte, []int) { - return file_cache_store_proto_rawDescGZIP(), []int{10} + return file_cache_store_proto_rawDescGZIP(), []int{30} } func (x *UpdateScoresRequest) GetCollection() []string { @@ -647,7 +1558,7 @@ type UpdateScoresResponse struct { func (x *UpdateScoresResponse) Reset() { *x = UpdateScoresResponse{} - mi := &file_cache_store_proto_msgTypes[11] + mi := &file_cache_store_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -659,7 +1570,7 @@ func (x *UpdateScoresResponse) String() string { func (*UpdateScoresResponse) ProtoMessage() {} func (x *UpdateScoresResponse) ProtoReflect() protoreflect.Message { - mi := &file_cache_store_proto_msgTypes[11] + mi := &file_cache_store_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -672,7 +1583,7 @@ func (x *UpdateScoresResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScoresResponse.ProtoReflect.Descriptor instead. func (*UpdateScoresResponse) Descriptor() ([]byte, []int) { - return file_cache_store_proto_rawDescGZIP(), []int{11} + return file_cache_store_proto_rawDescGZIP(), []int{31} } type AddTimeSeriesPointsRequest struct { @@ -685,7 +1596,7 @@ type AddTimeSeriesPointsRequest struct { func (x *AddTimeSeriesPointsRequest) Reset() { *x = AddTimeSeriesPointsRequest{} - mi := &file_cache_store_proto_msgTypes[12] + mi := &file_cache_store_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -697,7 +1608,7 @@ func (x *AddTimeSeriesPointsRequest) String() string { func (*AddTimeSeriesPointsRequest) ProtoMessage() {} func (x *AddTimeSeriesPointsRequest) ProtoReflect() protoreflect.Message { - mi := &file_cache_store_proto_msgTypes[12] + mi := &file_cache_store_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -710,7 +1621,7 @@ func (x *AddTimeSeriesPointsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTimeSeriesPointsRequest.ProtoReflect.Descriptor instead. func (*AddTimeSeriesPointsRequest) Descriptor() ([]byte, []int) { - return file_cache_store_proto_rawDescGZIP(), []int{12} + return file_cache_store_proto_rawDescGZIP(), []int{32} } func (x *AddTimeSeriesPointsRequest) GetPoints() []*TimeSeriesPoint { @@ -728,7 +1639,7 @@ type AddTimeSeriesPointsResponse struct { func (x *AddTimeSeriesPointsResponse) Reset() { *x = AddTimeSeriesPointsResponse{} - mi := &file_cache_store_proto_msgTypes[13] + mi := &file_cache_store_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -740,7 +1651,7 @@ func (x *AddTimeSeriesPointsResponse) String() string { func (*AddTimeSeriesPointsResponse) ProtoMessage() {} func (x *AddTimeSeriesPointsResponse) ProtoReflect() protoreflect.Message { - mi := &file_cache_store_proto_msgTypes[13] + mi := &file_cache_store_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -753,7 +1664,7 @@ func (x *AddTimeSeriesPointsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTimeSeriesPointsResponse.ProtoReflect.Descriptor instead. func (*AddTimeSeriesPointsResponse) Descriptor() ([]byte, []int) { - return file_cache_store_proto_rawDescGZIP(), []int{13} + return file_cache_store_proto_rawDescGZIP(), []int{33} } type GetTimeSeriesPointsRequest struct { @@ -768,7 +1679,7 @@ type GetTimeSeriesPointsRequest struct { func (x *GetTimeSeriesPointsRequest) Reset() { *x = GetTimeSeriesPointsRequest{} - mi := &file_cache_store_proto_msgTypes[14] + mi := &file_cache_store_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -780,7 +1691,7 @@ func (x *GetTimeSeriesPointsRequest) String() string { func (*GetTimeSeriesPointsRequest) ProtoMessage() {} func (x *GetTimeSeriesPointsRequest) ProtoReflect() protoreflect.Message { - mi := &file_cache_store_proto_msgTypes[14] + mi := &file_cache_store_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -793,7 +1704,7 @@ func (x *GetTimeSeriesPointsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTimeSeriesPointsRequest.ProtoReflect.Descriptor instead. func (*GetTimeSeriesPointsRequest) Descriptor() ([]byte, []int) { - return file_cache_store_proto_rawDescGZIP(), []int{14} + return file_cache_store_proto_rawDescGZIP(), []int{34} } func (x *GetTimeSeriesPointsRequest) GetName() string { @@ -827,7 +1738,7 @@ type GetTimeSeriesPointsResponse struct { func (x *GetTimeSeriesPointsResponse) Reset() { *x = GetTimeSeriesPointsResponse{} - mi := &file_cache_store_proto_msgTypes[15] + mi := &file_cache_store_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -839,7 +1750,7 @@ func (x *GetTimeSeriesPointsResponse) String() string { func (*GetTimeSeriesPointsResponse) ProtoMessage() {} func (x *GetTimeSeriesPointsResponse) ProtoReflect() protoreflect.Message { - mi := &file_cache_store_proto_msgTypes[15] + mi := &file_cache_store_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -852,7 +1763,7 @@ func (x *GetTimeSeriesPointsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTimeSeriesPointsResponse.ProtoReflect.Descriptor instead. func (*GetTimeSeriesPointsResponse) Descriptor() ([]byte, []int) { - return file_cache_store_proto_rawDescGZIP(), []int{15} + return file_cache_store_proto_rawDescGZIP(), []int{35} } func (x *GetTimeSeriesPointsResponse) GetPoints() []*TimeSeriesPoint { @@ -868,8 +1779,7 @@ var file_cache_store_proto_rawDesc = []byte{ 0x0a, 0x11, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa4, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa4, 0x01, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1b, @@ -898,142 +1808,195 @@ var file_cache_store_proto_rawDesc = []byte{ 0x73, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x73, 0x5f, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, - 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x79, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x53, 0x63, + 0x63, 0x6f, 0x72, 0x65, 0x22, 0x75, 0x0a, 0x0f, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x0a, 0x0a, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x23, 0x0a, + 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x36, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x0d, 0x0a, 0x0b, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x0a, 0x0d, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x10, + 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x21, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x22, 0x2a, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, + 0x3b, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x10, 0x0a, 0x0e, + 0x53, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, + 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x10, 0x0a, 0x0e, 0x41, + 0x64, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x0a, + 0x0d, 0x52, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, + 0x6d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x0a, 0x0b, + 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x0a, 0x0a, 0x50, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x32, 0x0a, 0x0b, 0x50, 0x6f, 0x70, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0d, 0x52, + 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x79, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, + 0x62, 0x73, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, + 0x65, 0x67, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x45, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, + 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x52, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x6d, 0x0a, + 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x16, 0x0a, 0x14, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x75, 0x62, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, - 0x73, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, - 0x67, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x45, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, - 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x52, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x6d, 0x0a, 0x13, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x16, 0x0a, 0x14, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x70, 0x61, - 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, - 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x06, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, - 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, - 0x1d, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x90, - 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x30, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x62, 0x65, - 0x67, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6e, - 0x64, 0x22, 0x50, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, - 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x31, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x32, 0xe8, 0x08, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x74, 0x6f, - 0x72, 0x65, 0x12, 0x34, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x03, 0x53, 0x65, 0x74, 0x12, - 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, - 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, - 0x06, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x70, + 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x4f, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, + 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x22, 0x1d, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x90, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x62, + 0x65, 0x67, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, + 0x6e, 0x64, 0x22, 0x50, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x31, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x32, 0xe8, 0x08, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x65, 0x12, 0x34, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x03, 0x53, 0x65, 0x74, + 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x3d, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, + 0x0a, 0x06, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, + 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, + 0x06, 0x53, 0x65, 0x74, 0x53, 0x65, 0x74, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, - 0x53, 0x65, 0x74, 0x53, 0x65, 0x74, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x41, - 0x64, 0x64, 0x53, 0x65, 0x74, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, - 0x6d, 0x53, 0x65, 0x74, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, - 0x52, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x04, 0x50, 0x75, 0x73, - 0x68, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x75, 0x73, - 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x34, 0x0a, 0x03, 0x50, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x6f, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, - 0x69, 0x6e, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, - 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, - 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x4f, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, - 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x74, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, + 0x65, 0x6d, 0x53, 0x65, 0x74, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x52, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x53, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x04, 0x50, 0x75, + 0x73, 0x68, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x75, + 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x03, 0x50, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x6f, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, + 0x61, 0x69, 0x6e, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, + 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x4f, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x12, 0x4f, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, + 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, - 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, - 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, - 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x25, - 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x7a, 0x68, 0x65, - 0x6e, 0x67, 0x68, 0x61, 0x6f, 0x7a, 0x2f, 0x67, 0x6f, 0x72, 0x73, 0x65, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x12, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, + 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x7a, 0x68, + 0x65, 0x6e, 0x67, 0x68, 0x61, 0x6f, 0x7a, 0x2f, 0x67, 0x6f, 0x72, 0x73, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1048,94 +2011,95 @@ func file_cache_store_proto_rawDescGZIP() []byte { return file_cache_store_proto_rawDescData } -var file_cache_store_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_cache_store_proto_msgTypes = make([]protoimpl.MessageInfo, 36) var file_cache_store_proto_goTypes = []any{ (*Score)(nil), // 0: protocol.Score (*ScoreCondition)(nil), // 1: protocol.ScoreCondition (*ScorePatch)(nil), // 2: protocol.ScorePatch (*TimeSeriesPoint)(nil), // 3: protocol.TimeSeriesPoint - (*AddScoresRequest)(nil), // 4: protocol.AddScoresRequest - (*AddScoresResponse)(nil), // 5: protocol.AddScoresResponse - (*SearchScoresRequest)(nil), // 6: protocol.SearchScoresRequest - (*SearchScoresResponse)(nil), // 7: protocol.SearchScoresResponse - (*DeleteScoresRequest)(nil), // 8: protocol.DeleteScoresRequest - (*DeleteScoresResponse)(nil), // 9: protocol.DeleteScoresResponse - (*UpdateScoresRequest)(nil), // 10: protocol.UpdateScoresRequest - (*UpdateScoresResponse)(nil), // 11: protocol.UpdateScoresResponse - (*AddTimeSeriesPointsRequest)(nil), // 12: protocol.AddTimeSeriesPointsRequest - (*AddTimeSeriesPointsResponse)(nil), // 13: protocol.AddTimeSeriesPointsResponse - (*GetTimeSeriesPointsRequest)(nil), // 14: protocol.GetTimeSeriesPointsRequest - (*GetTimeSeriesPointsResponse)(nil), // 15: protocol.GetTimeSeriesPointsResponse - (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp - (*GetRequest)(nil), // 17: protocol.GetRequest - (*SetRequest)(nil), // 18: protocol.SetRequest - (*DeleteRequest)(nil), // 19: protocol.DeleteRequest - (*GetSetRequest)(nil), // 20: protocol.GetSetRequest - (*SetSetRequest)(nil), // 21: protocol.SetSetRequest - (*AddSetRequest)(nil), // 22: protocol.AddSetRequest - (*RemSetRequest)(nil), // 23: protocol.RemSetRequest - (*PushRequest)(nil), // 24: protocol.PushRequest - (*PopRequest)(nil), // 25: protocol.PopRequest - (*RemainRequest)(nil), // 26: protocol.RemainRequest - (*GetResponse)(nil), // 27: protocol.GetResponse - (*SetResponse)(nil), // 28: protocol.SetResponse - (*DeleteResponse)(nil), // 29: protocol.DeleteResponse - (*GetSetResponse)(nil), // 30: protocol.GetSetResponse - (*SetSetResponse)(nil), // 31: protocol.SetSetResponse - (*AddSetResponse)(nil), // 32: protocol.AddSetResponse - (*RemSetResponse)(nil), // 33: protocol.RemSetResponse - (*PushResponse)(nil), // 34: protocol.PushResponse - (*PopResponse)(nil), // 35: protocol.PopResponse - (*RemainResponse)(nil), // 36: protocol.RemainResponse + (*GetRequest)(nil), // 4: protocol.GetRequest + (*GetResponse)(nil), // 5: protocol.GetResponse + (*SetRequest)(nil), // 6: protocol.SetRequest + (*SetResponse)(nil), // 7: protocol.SetResponse + (*DeleteRequest)(nil), // 8: protocol.DeleteRequest + (*DeleteResponse)(nil), // 9: protocol.DeleteResponse + (*GetSetRequest)(nil), // 10: protocol.GetSetRequest + (*GetSetResponse)(nil), // 11: protocol.GetSetResponse + (*SetSetRequest)(nil), // 12: protocol.SetSetRequest + (*SetSetResponse)(nil), // 13: protocol.SetSetResponse + (*AddSetRequest)(nil), // 14: protocol.AddSetRequest + (*AddSetResponse)(nil), // 15: protocol.AddSetResponse + (*RemSetRequest)(nil), // 16: protocol.RemSetRequest + (*RemSetResponse)(nil), // 17: protocol.RemSetResponse + (*PushRequest)(nil), // 18: protocol.PushRequest + (*PushResponse)(nil), // 19: protocol.PushResponse + (*PopRequest)(nil), // 20: protocol.PopRequest + (*PopResponse)(nil), // 21: protocol.PopResponse + (*RemainRequest)(nil), // 22: protocol.RemainRequest + (*RemainResponse)(nil), // 23: protocol.RemainResponse + (*AddScoresRequest)(nil), // 24: protocol.AddScoresRequest + (*AddScoresResponse)(nil), // 25: protocol.AddScoresResponse + (*SearchScoresRequest)(nil), // 26: protocol.SearchScoresRequest + (*SearchScoresResponse)(nil), // 27: protocol.SearchScoresResponse + (*DeleteScoresRequest)(nil), // 28: protocol.DeleteScoresRequest + (*DeleteScoresResponse)(nil), // 29: protocol.DeleteScoresResponse + (*UpdateScoresRequest)(nil), // 30: protocol.UpdateScoresRequest + (*UpdateScoresResponse)(nil), // 31: protocol.UpdateScoresResponse + (*AddTimeSeriesPointsRequest)(nil), // 32: protocol.AddTimeSeriesPointsRequest + (*AddTimeSeriesPointsResponse)(nil), // 33: protocol.AddTimeSeriesPointsResponse + (*GetTimeSeriesPointsRequest)(nil), // 34: protocol.GetTimeSeriesPointsRequest + (*GetTimeSeriesPointsResponse)(nil), // 35: protocol.GetTimeSeriesPointsResponse + (*timestamppb.Timestamp)(nil), // 36: google.protobuf.Timestamp } var file_cache_store_proto_depIdxs = []int32{ - 16, // 0: protocol.Score.timestamp:type_name -> google.protobuf.Timestamp - 16, // 1: protocol.ScoreCondition.before:type_name -> google.protobuf.Timestamp - 0, // 2: protocol.AddScoresRequest.documents:type_name -> protocol.Score - 0, // 3: protocol.SearchScoresResponse.documents:type_name -> protocol.Score - 1, // 4: protocol.DeleteScoresRequest.condition:type_name -> protocol.ScoreCondition - 2, // 5: protocol.UpdateScoresRequest.patch:type_name -> protocol.ScorePatch - 3, // 6: protocol.AddTimeSeriesPointsRequest.points:type_name -> protocol.TimeSeriesPoint - 16, // 7: protocol.GetTimeSeriesPointsRequest.begin:type_name -> google.protobuf.Timestamp - 16, // 8: protocol.GetTimeSeriesPointsRequest.end:type_name -> google.protobuf.Timestamp - 3, // 9: protocol.GetTimeSeriesPointsResponse.points:type_name -> protocol.TimeSeriesPoint - 17, // 10: protocol.CacheStore.Get:input_type -> protocol.GetRequest - 18, // 11: protocol.CacheStore.Set:input_type -> protocol.SetRequest - 19, // 12: protocol.CacheStore.Delete:input_type -> protocol.DeleteRequest - 20, // 13: protocol.CacheStore.GetSet:input_type -> protocol.GetSetRequest - 21, // 14: protocol.CacheStore.SetSet:input_type -> protocol.SetSetRequest - 22, // 15: protocol.CacheStore.AddSet:input_type -> protocol.AddSetRequest - 23, // 16: protocol.CacheStore.RemSet:input_type -> protocol.RemSetRequest - 24, // 17: protocol.CacheStore.Push:input_type -> protocol.PushRequest - 25, // 18: protocol.CacheStore.Pop:input_type -> protocol.PopRequest - 26, // 19: protocol.CacheStore.Remain:input_type -> protocol.RemainRequest - 4, // 20: protocol.CacheStore.AddScores:input_type -> protocol.AddScoresRequest - 6, // 21: protocol.CacheStore.SearchScores:input_type -> protocol.SearchScoresRequest - 8, // 22: protocol.CacheStore.DeleteScores:input_type -> protocol.DeleteScoresRequest - 10, // 23: protocol.CacheStore.UpdateScores:input_type -> protocol.UpdateScoresRequest - 12, // 24: protocol.CacheStore.AddTimeSeriesPoints:input_type -> protocol.AddTimeSeriesPointsRequest - 14, // 25: protocol.CacheStore.GetTimeSeriesPoints:input_type -> protocol.GetTimeSeriesPointsRequest - 27, // 26: protocol.CacheStore.Get:output_type -> protocol.GetResponse - 28, // 27: protocol.CacheStore.Set:output_type -> protocol.SetResponse - 29, // 28: protocol.CacheStore.Delete:output_type -> protocol.DeleteResponse - 30, // 29: protocol.CacheStore.GetSet:output_type -> protocol.GetSetResponse - 31, // 30: protocol.CacheStore.SetSet:output_type -> protocol.SetSetResponse - 32, // 31: protocol.CacheStore.AddSet:output_type -> protocol.AddSetResponse - 33, // 32: protocol.CacheStore.RemSet:output_type -> protocol.RemSetResponse - 34, // 33: protocol.CacheStore.Push:output_type -> protocol.PushResponse - 35, // 34: protocol.CacheStore.Pop:output_type -> protocol.PopResponse - 36, // 35: protocol.CacheStore.Remain:output_type -> protocol.RemainResponse - 5, // 36: protocol.CacheStore.AddScores:output_type -> protocol.AddScoresResponse - 7, // 37: protocol.CacheStore.SearchScores:output_type -> protocol.SearchScoresResponse - 9, // 38: protocol.CacheStore.DeleteScores:output_type -> protocol.DeleteScoresResponse - 11, // 39: protocol.CacheStore.UpdateScores:output_type -> protocol.UpdateScoresResponse - 13, // 40: protocol.CacheStore.AddTimeSeriesPoints:output_type -> protocol.AddTimeSeriesPointsResponse - 15, // 41: protocol.CacheStore.GetTimeSeriesPoints:output_type -> protocol.GetTimeSeriesPointsResponse - 26, // [26:42] is the sub-list for method output_type - 10, // [10:26] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 36, // 0: protocol.Score.timestamp:type_name -> google.protobuf.Timestamp + 36, // 1: protocol.ScoreCondition.before:type_name -> google.protobuf.Timestamp + 36, // 2: protocol.TimeSeriesPoint.timestamp:type_name -> google.protobuf.Timestamp + 0, // 3: protocol.AddScoresRequest.documents:type_name -> protocol.Score + 0, // 4: protocol.SearchScoresResponse.documents:type_name -> protocol.Score + 1, // 5: protocol.DeleteScoresRequest.condition:type_name -> protocol.ScoreCondition + 2, // 6: protocol.UpdateScoresRequest.patch:type_name -> protocol.ScorePatch + 3, // 7: protocol.AddTimeSeriesPointsRequest.points:type_name -> protocol.TimeSeriesPoint + 36, // 8: protocol.GetTimeSeriesPointsRequest.begin:type_name -> google.protobuf.Timestamp + 36, // 9: protocol.GetTimeSeriesPointsRequest.end:type_name -> google.protobuf.Timestamp + 3, // 10: protocol.GetTimeSeriesPointsResponse.points:type_name -> protocol.TimeSeriesPoint + 4, // 11: protocol.CacheStore.Get:input_type -> protocol.GetRequest + 6, // 12: protocol.CacheStore.Set:input_type -> protocol.SetRequest + 8, // 13: protocol.CacheStore.Delete:input_type -> protocol.DeleteRequest + 10, // 14: protocol.CacheStore.GetSet:input_type -> protocol.GetSetRequest + 12, // 15: protocol.CacheStore.SetSet:input_type -> protocol.SetSetRequest + 14, // 16: protocol.CacheStore.AddSet:input_type -> protocol.AddSetRequest + 16, // 17: protocol.CacheStore.RemSet:input_type -> protocol.RemSetRequest + 18, // 18: protocol.CacheStore.Push:input_type -> protocol.PushRequest + 20, // 19: protocol.CacheStore.Pop:input_type -> protocol.PopRequest + 22, // 20: protocol.CacheStore.Remain:input_type -> protocol.RemainRequest + 24, // 21: protocol.CacheStore.AddScores:input_type -> protocol.AddScoresRequest + 26, // 22: protocol.CacheStore.SearchScores:input_type -> protocol.SearchScoresRequest + 28, // 23: protocol.CacheStore.DeleteScores:input_type -> protocol.DeleteScoresRequest + 30, // 24: protocol.CacheStore.UpdateScores:input_type -> protocol.UpdateScoresRequest + 32, // 25: protocol.CacheStore.AddTimeSeriesPoints:input_type -> protocol.AddTimeSeriesPointsRequest + 34, // 26: protocol.CacheStore.GetTimeSeriesPoints:input_type -> protocol.GetTimeSeriesPointsRequest + 5, // 27: protocol.CacheStore.Get:output_type -> protocol.GetResponse + 7, // 28: protocol.CacheStore.Set:output_type -> protocol.SetResponse + 9, // 29: protocol.CacheStore.Delete:output_type -> protocol.DeleteResponse + 11, // 30: protocol.CacheStore.GetSet:output_type -> protocol.GetSetResponse + 13, // 31: protocol.CacheStore.SetSet:output_type -> protocol.SetSetResponse + 15, // 32: protocol.CacheStore.AddSet:output_type -> protocol.AddSetResponse + 17, // 33: protocol.CacheStore.RemSet:output_type -> protocol.RemSetResponse + 19, // 34: protocol.CacheStore.Push:output_type -> protocol.PushResponse + 21, // 35: protocol.CacheStore.Pop:output_type -> protocol.PopResponse + 23, // 36: protocol.CacheStore.Remain:output_type -> protocol.RemainResponse + 25, // 37: protocol.CacheStore.AddScores:output_type -> protocol.AddScoresResponse + 27, // 38: protocol.CacheStore.SearchScores:output_type -> protocol.SearchScoresResponse + 29, // 39: protocol.CacheStore.DeleteScores:output_type -> protocol.DeleteScoresResponse + 31, // 40: protocol.CacheStore.UpdateScores:output_type -> protocol.UpdateScoresResponse + 33, // 41: protocol.CacheStore.AddTimeSeriesPoints:output_type -> protocol.AddTimeSeriesPointsResponse + 35, // 42: protocol.CacheStore.GetTimeSeriesPoints:output_type -> protocol.GetTimeSeriesPointsResponse + 27, // [27:43] is the sub-list for method output_type + 11, // [11:27] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_cache_store_proto_init() } @@ -1143,16 +2107,16 @@ func file_cache_store_proto_init() { if File_cache_store_proto != nil { return } - file_protocol_proto_init() file_cache_store_proto_msgTypes[1].OneofWrappers = []any{} file_cache_store_proto_msgTypes[2].OneofWrappers = []any{} + file_cache_store_proto_msgTypes[21].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cache_store_proto_rawDesc, NumEnums: 0, - NumMessages: 16, + NumMessages: 36, NumExtensions: 0, NumServices: 1, }, diff --git a/protocol/cache_store.proto b/protocol/cache_store.proto index 24e6baf4e..fc060b32b 100644 --- a/protocol/cache_store.proto +++ b/protocol/cache_store.proto @@ -19,7 +19,6 @@ option go_package = "github.com/zhenghaoz/gorse/protocol"; package protocol; import "google/protobuf/timestamp.proto"; -import "protocol.proto"; message Score { string id = 1; @@ -41,8 +40,84 @@ message ScorePatch { optional double score = 3; } -message TimeSeriesPoint {} +message TimeSeriesPoint { + string name = 1; + google.protobuf.Timestamp timestamp = 2; + double value = 3; +} + +message GetRequest { + string name = 1; +} + +message GetResponse { + string value = 1; +} + +message SetRequest { + string name = 1; + string value = 2; +} + +message SetResponse {} + +message DeleteRequest { + string name = 1; +} + +message DeleteResponse {} + +message GetSetRequest { + string key = 1; +} + +message GetSetResponse { + repeated string members = 1; +} + +message SetSetRequest { + string key = 1; + repeated string members = 2; +} +message SetSetResponse {} + +message AddSetRequest { + string key = 1; + repeated string members = 2; +} + +message AddSetResponse {} + +message RemSetRequest { + string key = 1; + repeated string members = 2; +} + +message RemSetResponse {} + +message PushRequest { + string name = 1; + string value = 2; +} + +message PushResponse {} + +message PopRequest { + string name = 1; +} + +message PopResponse { + optional string value = 1; +} + +message RemainRequest { + string name = 1; +} + +message RemainResponse { + int64 count = 1; +} message AddScoresRequest { string collection = 1; diff --git a/protocol/protocol.pb.go b/protocol/protocol.pb.go index a55b2f13d..8907518b0 100644 --- a/protocol/protocol.pb.go +++ b/protocol/protocol.pb.go @@ -757,892 +757,6 @@ func (*PushProgressResponse) Descriptor() ([]byte, []int) { return file_protocol_proto_rawDescGZIP(), []int{9} } -type GetRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` -} - -func (x *GetRequest) Reset() { - *x = GetRequest{} - mi := &file_protocol_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetRequest) ProtoMessage() {} - -func (x *GetRequest) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[10] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetRequest.ProtoReflect.Descriptor instead. -func (*GetRequest) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{10} -} - -func (x *GetRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -type GetResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *GetResponse) Reset() { - *x = GetResponse{} - mi := &file_protocol_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetResponse) ProtoMessage() {} - -func (x *GetResponse) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[11] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetResponse.ProtoReflect.Descriptor instead. -func (*GetResponse) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{11} -} - -func (x *GetResponse) GetValue() string { - if x != nil { - return x.Value - } - return "" -} - -type SetRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *SetRequest) Reset() { - *x = SetRequest{} - mi := &file_protocol_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *SetRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetRequest) ProtoMessage() {} - -func (x *SetRequest) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[12] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetRequest.ProtoReflect.Descriptor instead. -func (*SetRequest) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{12} -} - -func (x *SetRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *SetRequest) GetValue() string { - if x != nil { - return x.Value - } - return "" -} - -type SetResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *SetResponse) Reset() { - *x = SetResponse{} - mi := &file_protocol_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *SetResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetResponse) ProtoMessage() {} - -func (x *SetResponse) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[13] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetResponse.ProtoReflect.Descriptor instead. -func (*SetResponse) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{13} -} - -type DeleteRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` -} - -func (x *DeleteRequest) Reset() { - *x = DeleteRequest{} - mi := &file_protocol_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteRequest) ProtoMessage() {} - -func (x *DeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[14] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead. -func (*DeleteRequest) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{14} -} - -func (x *DeleteRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -type DeleteResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *DeleteResponse) Reset() { - *x = DeleteResponse{} - mi := &file_protocol_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteResponse) ProtoMessage() {} - -func (x *DeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[15] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteResponse.ProtoReflect.Descriptor instead. -func (*DeleteResponse) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{15} -} - -type GetSetRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` -} - -func (x *GetSetRequest) Reset() { - *x = GetSetRequest{} - mi := &file_protocol_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetSetRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetSetRequest) ProtoMessage() {} - -func (x *GetSetRequest) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[16] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetSetRequest.ProtoReflect.Descriptor instead. -func (*GetSetRequest) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{16} -} - -func (x *GetSetRequest) GetKey() string { - if x != nil { - return x.Key - } - return "" -} - -type GetSetResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Members []string `protobuf:"bytes,1,rep,name=members,proto3" json:"members,omitempty"` -} - -func (x *GetSetResponse) Reset() { - *x = GetSetResponse{} - mi := &file_protocol_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetSetResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetSetResponse) ProtoMessage() {} - -func (x *GetSetResponse) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[17] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetSetResponse.ProtoReflect.Descriptor instead. -func (*GetSetResponse) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{17} -} - -func (x *GetSetResponse) GetMembers() []string { - if x != nil { - return x.Members - } - return nil -} - -type SetSetRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Members []string `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` -} - -func (x *SetSetRequest) Reset() { - *x = SetSetRequest{} - mi := &file_protocol_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *SetSetRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetSetRequest) ProtoMessage() {} - -func (x *SetSetRequest) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[18] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetSetRequest.ProtoReflect.Descriptor instead. -func (*SetSetRequest) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{18} -} - -func (x *SetSetRequest) GetKey() string { - if x != nil { - return x.Key - } - return "" -} - -func (x *SetSetRequest) GetMembers() []string { - if x != nil { - return x.Members - } - return nil -} - -type SetSetResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *SetSetResponse) Reset() { - *x = SetSetResponse{} - mi := &file_protocol_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *SetSetResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetSetResponse) ProtoMessage() {} - -func (x *SetSetResponse) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[19] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetSetResponse.ProtoReflect.Descriptor instead. -func (*SetSetResponse) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{19} -} - -type AddSetRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Members []string `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` -} - -func (x *AddSetRequest) Reset() { - *x = AddSetRequest{} - mi := &file_protocol_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AddSetRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddSetRequest) ProtoMessage() {} - -func (x *AddSetRequest) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[20] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddSetRequest.ProtoReflect.Descriptor instead. -func (*AddSetRequest) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{20} -} - -func (x *AddSetRequest) GetKey() string { - if x != nil { - return x.Key - } - return "" -} - -func (x *AddSetRequest) GetMembers() []string { - if x != nil { - return x.Members - } - return nil -} - -type AddSetResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *AddSetResponse) Reset() { - *x = AddSetResponse{} - mi := &file_protocol_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AddSetResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddSetResponse) ProtoMessage() {} - -func (x *AddSetResponse) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[21] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddSetResponse.ProtoReflect.Descriptor instead. -func (*AddSetResponse) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{21} -} - -type RemSetRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Members []string `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` -} - -func (x *RemSetRequest) Reset() { - *x = RemSetRequest{} - mi := &file_protocol_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *RemSetRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemSetRequest) ProtoMessage() {} - -func (x *RemSetRequest) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[22] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RemSetRequest.ProtoReflect.Descriptor instead. -func (*RemSetRequest) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{22} -} - -func (x *RemSetRequest) GetKey() string { - if x != nil { - return x.Key - } - return "" -} - -func (x *RemSetRequest) GetMembers() []string { - if x != nil { - return x.Members - } - return nil -} - -type RemSetResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *RemSetResponse) Reset() { - *x = RemSetResponse{} - mi := &file_protocol_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *RemSetResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemSetResponse) ProtoMessage() {} - -func (x *RemSetResponse) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[23] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RemSetResponse.ProtoReflect.Descriptor instead. -func (*RemSetResponse) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{23} -} - -type PushRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *PushRequest) Reset() { - *x = PushRequest{} - mi := &file_protocol_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *PushRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PushRequest) ProtoMessage() {} - -func (x *PushRequest) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[24] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PushRequest.ProtoReflect.Descriptor instead. -func (*PushRequest) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{24} -} - -func (x *PushRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *PushRequest) GetValue() string { - if x != nil { - return x.Value - } - return "" -} - -type PushResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *PushResponse) Reset() { - *x = PushResponse{} - mi := &file_protocol_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *PushResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PushResponse) ProtoMessage() {} - -func (x *PushResponse) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[25] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PushResponse.ProtoReflect.Descriptor instead. -func (*PushResponse) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{25} -} - -type PopRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` -} - -func (x *PopRequest) Reset() { - *x = PopRequest{} - mi := &file_protocol_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *PopRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PopRequest) ProtoMessage() {} - -func (x *PopRequest) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[26] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PopRequest.ProtoReflect.Descriptor instead. -func (*PopRequest) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{26} -} - -func (x *PopRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -type PopResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *PopResponse) Reset() { - *x = PopResponse{} - mi := &file_protocol_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *PopResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PopResponse) ProtoMessage() {} - -func (x *PopResponse) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[27] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PopResponse.ProtoReflect.Descriptor instead. -func (*PopResponse) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{27} -} - -func (x *PopResponse) GetValue() string { - if x != nil { - return x.Value - } - return "" -} - -type RemainRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` -} - -func (x *RemainRequest) Reset() { - *x = RemainRequest{} - mi := &file_protocol_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *RemainRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemainRequest) ProtoMessage() {} - -func (x *RemainRequest) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[28] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RemainRequest.ProtoReflect.Descriptor instead. -func (*RemainRequest) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{28} -} - -func (x *RemainRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -type RemainResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` -} - -func (x *RemainResponse) Reset() { - *x = RemainResponse{} - mi := &file_protocol_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *RemainResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemainResponse) ProtoMessage() {} - -func (x *RemainResponse) ProtoReflect() protoreflect.Message { - mi := &file_protocol_proto_msgTypes[29] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RemainResponse.ProtoReflect.Descriptor instead. -func (*RemainResponse) Descriptor() ([]byte, []int) { - return file_protocol_proto_rawDescGZIP(), []int{29} -} - -func (x *RemainResponse) GetCount() int64 { - if x != nil { - return x.Count - } - return 0 -} - var File_protocol_proto protoreflect.FileDescriptor var file_protocol_proto_rawDesc = []byte{ @@ -1730,77 +844,31 @@ var file_protocol_proto_rawDesc = []byte{ 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x50, 0x75, 0x73, 0x68, 0x50, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, - 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x23, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x36, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x0d, 0x0a, - 0x0b, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x0a, 0x0d, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x21, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x2a, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x22, 0x3b, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, - 0x10, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x3b, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x10, - 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x3b, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x10, 0x0a, - 0x0e, 0x52, 0x65, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x37, 0x0a, 0x0b, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x50, 0x75, 0x73, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x0a, 0x0a, 0x50, 0x6f, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x50, 0x6f, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x23, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2a, 0x3a, 0x0a, 0x08, - 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x10, 0x02, 0x32, 0x8c, 0x02, 0x0a, 0x06, 0x4d, 0x61, 0x73, - 0x74, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, - 0x74, 0x61, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x69, - 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x12, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, - 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x12, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x00, 0x30, 0x01, 0x12, 0x4f, 0x0a, 0x0c, 0x50, 0x75, 0x73, 0x68, 0x50, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x50, 0x75, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x7a, 0x68, 0x65, 0x6e, 0x67, 0x68, 0x61, 0x6f, 0x7a, 0x2f, - 0x67, 0x6f, 0x72, 0x73, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x3a, + 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x10, 0x02, 0x32, 0x8c, 0x02, 0x0a, 0x06, 0x4d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x12, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x64, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x4d, 0x65, 0x74, 0x61, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, + 0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x69, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x30, 0x01, 0x12, 0x4f, 0x0a, 0x0c, 0x50, 0x75, 0x73, 0x68, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x7a, 0x68, 0x65, 0x6e, 0x67, 0x68, 0x61, 0x6f, + 0x7a, 0x2f, 0x67, 0x6f, 0x72, 0x73, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1816,7 +884,7 @@ func file_protocol_proto_rawDescGZIP() []byte { } var file_protocol_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_protocol_proto_msgTypes = make([]protoimpl.MessageInfo, 30) +var file_protocol_proto_msgTypes = make([]protoimpl.MessageInfo, 10) var file_protocol_proto_goTypes = []any{ (NodeType)(0), // 0: protocol.NodeType (*User)(nil), // 1: protocol.User @@ -1829,31 +897,11 @@ var file_protocol_proto_goTypes = []any{ (*Progress)(nil), // 8: protocol.Progress (*PushProgressRequest)(nil), // 9: protocol.PushProgressRequest (*PushProgressResponse)(nil), // 10: protocol.PushProgressResponse - (*GetRequest)(nil), // 11: protocol.GetRequest - (*GetResponse)(nil), // 12: protocol.GetResponse - (*SetRequest)(nil), // 13: protocol.SetRequest - (*SetResponse)(nil), // 14: protocol.SetResponse - (*DeleteRequest)(nil), // 15: protocol.DeleteRequest - (*DeleteResponse)(nil), // 16: protocol.DeleteResponse - (*GetSetRequest)(nil), // 17: protocol.GetSetRequest - (*GetSetResponse)(nil), // 18: protocol.GetSetResponse - (*SetSetRequest)(nil), // 19: protocol.SetSetRequest - (*SetSetResponse)(nil), // 20: protocol.SetSetResponse - (*AddSetRequest)(nil), // 21: protocol.AddSetRequest - (*AddSetResponse)(nil), // 22: protocol.AddSetResponse - (*RemSetRequest)(nil), // 23: protocol.RemSetRequest - (*RemSetResponse)(nil), // 24: protocol.RemSetResponse - (*PushRequest)(nil), // 25: protocol.PushRequest - (*PushResponse)(nil), // 26: protocol.PushResponse - (*PopRequest)(nil), // 27: protocol.PopRequest - (*PopResponse)(nil), // 28: protocol.PopResponse - (*RemainRequest)(nil), // 29: protocol.RemainRequest - (*RemainResponse)(nil), // 30: protocol.RemainResponse - (*timestamppb.Timestamp)(nil), // 31: google.protobuf.Timestamp + (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp } var file_protocol_proto_depIdxs = []int32{ - 31, // 0: protocol.Item.timestamp:type_name -> google.protobuf.Timestamp - 31, // 1: protocol.Feedback.timestamp:type_name -> google.protobuf.Timestamp + 11, // 0: protocol.Item.timestamp:type_name -> google.protobuf.Timestamp + 11, // 1: protocol.Feedback.timestamp:type_name -> google.protobuf.Timestamp 0, // 2: protocol.NodeInfo.node_type:type_name -> protocol.NodeType 8, // 3: protocol.PushProgressRequest.progress:type_name -> protocol.Progress 7, // 4: protocol.Master.GetMeta:input_type -> protocol.NodeInfo @@ -1882,7 +930,7 @@ func file_protocol_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_proto_rawDesc, NumEnums: 1, - NumMessages: 30, + NumMessages: 10, NumExtensions: 0, NumServices: 1, }, diff --git a/protocol/protocol.proto b/protocol/protocol.proto index 812460657..017223555 100644 --- a/protocol/protocol.proto +++ b/protocol/protocol.proto @@ -105,76 +105,3 @@ message PushProgressRequest { } message PushProgressResponse {} - -message GetRequest { - string name = 1; -} - -message GetResponse { - string value = 1; -} - -message SetRequest { - string name = 1; - string value = 2; -} - -message SetResponse {} - -message DeleteRequest { - string name = 1; -} - -message DeleteResponse {} - -message GetSetRequest { - string key = 1; -} - -message GetSetResponse { - repeated string members = 1; -} - -message SetSetRequest { - string key = 1; - repeated string members = 2; -} - -message SetSetResponse {} - -message AddSetRequest { - string key = 1; - repeated string members = 2; -} - -message AddSetResponse {} - -message RemSetRequest { - string key = 1; - repeated string members = 2; -} - -message RemSetResponse {} - -message PushRequest { - string name = 1; - string value = 2; -} - -message PushResponse {} - -message PopRequest { - string name = 1; -} - -message PopResponse { - string value = 1; -} - -message RemainRequest { - string name = 1; -} - -message RemainResponse { - int64 count = 1; -} diff --git a/storage/cache/proxy.go b/storage/cache/proxy.go index 714ddfe8b..3d2ead51e 100644 --- a/storage/cache/proxy.go +++ b/storage/cache/proxy.go @@ -20,7 +20,9 @@ import ( "github.com/samber/lo" "github.com/zhenghaoz/gorse/protocol" "google.golang.org/grpc" + "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/timestamppb" + "io" "net" "time" ) @@ -61,38 +63,46 @@ func (p *ProxyServer) Delete(ctx context.Context, request *protocol.DeleteReques } func (p *ProxyServer) GetSet(ctx context.Context, request *protocol.GetSetRequest) (*protocol.GetSetResponse, error) { - //TODO implement me - panic("implement me") + members, err := p.database.GetSet(ctx, request.GetKey()) + if err != nil { + return nil, err + } + return &protocol.GetSetResponse{Members: members}, nil } func (p *ProxyServer) SetSet(ctx context.Context, request *protocol.SetSetRequest) (*protocol.SetSetResponse, error) { - //TODO implement me - panic("implement me") + return &protocol.SetSetResponse{}, p.database.SetSet(ctx, request.GetKey(), request.GetMembers()...) } func (p *ProxyServer) AddSet(ctx context.Context, request *protocol.AddSetRequest) (*protocol.AddSetResponse, error) { - //TODO implement me - panic("implement me") + return &protocol.AddSetResponse{}, p.database.AddSet(ctx, request.GetKey(), request.GetMembers()...) } func (p *ProxyServer) RemSet(ctx context.Context, request *protocol.RemSetRequest) (*protocol.RemSetResponse, error) { - //TODO implement me - panic("implement me") + return &protocol.RemSetResponse{}, p.database.RemSet(ctx, request.GetKey(), request.GetMembers()...) } func (p *ProxyServer) Push(ctx context.Context, request *protocol.PushRequest) (*protocol.PushResponse, error) { - //TODO implement me - panic("implement me") + return &protocol.PushResponse{}, p.database.Push(ctx, request.GetName(), request.GetValue()) } func (p *ProxyServer) Pop(ctx context.Context, request *protocol.PopRequest) (*protocol.PopResponse, error) { - //TODO implement me - panic("implement me") + value, err := p.database.Pop(ctx, request.GetName()) + if err != nil { + if errors.Is(err, io.EOF) { + return &protocol.PopResponse{}, nil + } + return nil, err + } + return &protocol.PopResponse{Value: proto.String(value)}, nil } func (p *ProxyServer) Remain(ctx context.Context, request *protocol.RemainRequest) (*protocol.RemainResponse, error) { - //TODO implement me - panic("implement me") + count, err := p.database.Remain(ctx, request.GetName()) + if err != nil { + return nil, err + } + return &protocol.RemainResponse{Count: count}, nil } func (p *ProxyServer) AddScores(ctx context.Context, request *protocol.AddScoresRequest) (*protocol.AddScoresResponse, error) { @@ -148,13 +158,31 @@ func (p *ProxyServer) UpdateScores(ctx context.Context, request *protocol.Update } func (p *ProxyServer) AddTimeSeriesPoints(ctx context.Context, request *protocol.AddTimeSeriesPointsRequest) (*protocol.AddTimeSeriesPointsResponse, error) { - //TODO implement me - panic("implement me") + points := make([]TimeSeriesPoint, len(request.Points)) + for i, point := range request.Points { + points[i] = TimeSeriesPoint{ + Name: point.Name, + Timestamp: point.Timestamp.AsTime(), + Value: point.Value, + } + } + return &protocol.AddTimeSeriesPointsResponse{}, p.database.AddTimeSeriesPoints(ctx, points) } func (p *ProxyServer) GetTimeSeriesPoints(ctx context.Context, request *protocol.GetTimeSeriesPointsRequest) (*protocol.GetTimeSeriesPointsResponse, error) { - //TODO implement me - panic("implement me") + resp, err := p.database.GetTimeSeriesPoints(ctx, request.GetName(), request.GetBegin().AsTime(), request.GetEnd().AsTime()) + if err != nil { + return nil, err + } + points := make([]*protocol.TimeSeriesPoint, len(resp)) + for i, point := range resp { + points[i] = &protocol.TimeSeriesPoint{ + Name: point.Name, + Timestamp: timestamppb.New(point.Timestamp), + Value: point.Value, + } + } + return &protocol.GetTimeSeriesPointsResponse{Points: points}, nil } type ProxyClient struct { @@ -168,8 +196,7 @@ func (p ProxyClient) Ping() error { } func (p ProxyClient) Init() error { - //TODO implement me - panic("implement me") + return errors.MethodNotAllowedf("init is not allowed in proxy client") } func (p ProxyClient) Scan(work func(string) error) error { @@ -178,8 +205,7 @@ func (p ProxyClient) Scan(work func(string) error) error { } func (p ProxyClient) Purge() error { - //TODO implement me - panic("implement me") + return errors.MethodNotAllowedf("purge is not allowed in proxy client") } func (p ProxyClient) Set(ctx context.Context, values ...Value) error { @@ -188,8 +214,13 @@ func (p ProxyClient) Set(ctx context.Context, values ...Value) error { } func (p ProxyClient) Get(ctx context.Context, name string) *ReturnValue { - //TODO implement me - panic("implement me") + resp, err := p.CacheStoreClient.Get(ctx, &protocol.GetRequest{ + Name: name, + }) + if err != nil { + return &ReturnValue{err: err} + } + return &ReturnValue{value: resp.GetValue(), err: err} } func (p ProxyClient) Delete(ctx context.Context, name string) error { @@ -198,38 +229,68 @@ func (p ProxyClient) Delete(ctx context.Context, name string) error { } func (p ProxyClient) GetSet(ctx context.Context, key string) ([]string, error) { - //TODO implement me - panic("implement me") + resp, err := p.CacheStoreClient.GetSet(ctx, &protocol.GetSetRequest{ + Key: key, + }) + if err != nil { + return nil, err + } + return resp.Members, nil } func (p ProxyClient) SetSet(ctx context.Context, key string, members ...string) error { - //TODO implement me - panic("implement me") + _, err := p.CacheStoreClient.SetSet(ctx, &protocol.SetSetRequest{ + Key: key, + Members: members, + }) + return err } func (p ProxyClient) AddSet(ctx context.Context, key string, members ...string) error { - //TODO implement me - panic("implement me") + _, err := p.CacheStoreClient.AddSet(ctx, &protocol.AddSetRequest{ + Key: key, + Members: members, + }) + return err } func (p ProxyClient) RemSet(ctx context.Context, key string, members ...string) error { - //TODO implement me - panic("implement me") + _, err := p.CacheStoreClient.RemSet(ctx, &protocol.RemSetRequest{ + Key: key, + Members: members, + }) + return err } func (p ProxyClient) Push(ctx context.Context, name, value string) error { - //TODO implement me - panic("implement me") + _, err := p.CacheStoreClient.Push(ctx, &protocol.PushRequest{ + Name: name, + Value: value, + }) + return err } func (p ProxyClient) Pop(ctx context.Context, name string) (string, error) { - //TODO implement me - panic("implement me") + resp, err := p.CacheStoreClient.Pop(ctx, &protocol.PopRequest{ + Name: name, + }) + if err != nil { + return "", err + } + if resp.Value == nil { + return "", io.EOF + } + return resp.GetValue(), nil } func (p ProxyClient) Remain(ctx context.Context, name string) (int64, error) { - //TODO implement me - panic("implement me") + resp, err := p.CacheStoreClient.Remain(ctx, &protocol.RemainRequest{ + Name: name, + }) + if err != nil { + return 0, err + } + return resp.Count, nil } func (p ProxyClient) AddScores(ctx context.Context, collection, subset string, documents []Score) error { @@ -308,13 +369,38 @@ func (p ProxyClient) UpdateScores(ctx context.Context, collection []string, id s } func (p ProxyClient) AddTimeSeriesPoints(ctx context.Context, points []TimeSeriesPoint) error { - //TODO implement me - panic("implement me") + pbPoints := make([]*protocol.TimeSeriesPoint, len(points)) + for i, point := range points { + pbPoints[i] = &protocol.TimeSeriesPoint{ + Name: point.Name, + Timestamp: timestamppb.New(point.Timestamp), + Value: point.Value, + } + } + _, err := p.CacheStoreClient.AddTimeSeriesPoints(ctx, &protocol.AddTimeSeriesPointsRequest{ + Points: pbPoints, + }) + return err } func (p ProxyClient) GetTimeSeriesPoints(ctx context.Context, name string, begin, end time.Time) ([]TimeSeriesPoint, error) { - //TODO implement me - panic("implement me") + resp, err := p.CacheStoreClient.GetTimeSeriesPoints(ctx, &protocol.GetTimeSeriesPointsRequest{ + Name: name, + Begin: timestamppb.New(begin), + End: timestamppb.New(end), + }) + if err != nil { + return nil, err + } + points := make([]TimeSeriesPoint, len(resp.Points)) + for i, point := range resp.Points { + points[i] = TimeSeriesPoint{ + Name: point.Name, + Timestamp: point.Timestamp.AsTime(), + Value: point.Value, + } + } + return points, nil } func OpenProxyClient(address string) (*ProxyClient, error) {