From 7f1dd479aaf033dc718b094cb92264cb2a2a0657 Mon Sep 17 00:00:00 2001 From: yanweidong Date: Sat, 6 Sep 2025 20:38:38 +0800 Subject: [PATCH] add golang sdk --- golnag/go.mod | 1 + golnag/initial/check.pb.go | 360 ++++++++++++++++++ golnag/initial/check_grpc.pb.go | 167 ++++++++ golnag/initial/data.pb.go | 649 ++++++++++++++++++++++++++++++++ golnag/initial/data_grpc.pb.go | 207 ++++++++++ 5 files changed, 1384 insertions(+) create mode 100644 golnag/go.mod create mode 100644 golnag/initial/check.pb.go create mode 100644 golnag/initial/check_grpc.pb.go create mode 100644 golnag/initial/data.pb.go create mode 100644 golnag/initial/data_grpc.pb.go diff --git a/golnag/go.mod b/golnag/go.mod new file mode 100644 index 0000000..57515bc --- /dev/null +++ b/golnag/go.mod @@ -0,0 +1 @@ +module git.apinb.com/bsm-sdk/client/golnag diff --git a/golnag/initial/check.pb.go b/golnag/initial/check.pb.go new file mode 100644 index 0000000..c1fdd69 --- /dev/null +++ b/golnag/initial/check.pb.go @@ -0,0 +1,360 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.8 +// protoc (unknown) +// source: check.proto + +package initial + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Crc struct { + state protoimpl.MessageState `protogen:"open.v1"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Crc) Reset() { + *x = Crc{} + mi := &file_check_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Crc) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Crc) ProtoMessage() {} + +func (x *Crc) ProtoReflect() protoreflect.Message { + mi := &file_check_proto_msgTypes[0] + 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 Crc.ProtoReflect.Descriptor instead. +func (*Crc) Descriptor() ([]byte, []int) { + return file_check_proto_rawDescGZIP(), []int{0} +} + +func (x *Crc) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +type StatusReply struct { + state protoimpl.MessageState `protogen:"open.v1"` + Status int64 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // 状态码 + Identity string `protobuf:"bytes,2,opt,name=identity,proto3" json:"identity,omitempty"` // 标识码 + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` //状态说明 + Timeseq int64 `protobuf:"varint,4,opt,name=timeseq,proto3" json:"timeseq,omitempty"` // 响应时间序列 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StatusReply) Reset() { + *x = StatusReply{} + mi := &file_check_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StatusReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatusReply) ProtoMessage() {} + +func (x *StatusReply) ProtoReflect() protoreflect.Message { + mi := &file_check_proto_msgTypes[1] + 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 StatusReply.ProtoReflect.Descriptor instead. +func (*StatusReply) Descriptor() ([]byte, []int) { + return file_check_proto_rawDescGZIP(), []int{1} +} + +func (x *StatusReply) GetStatus() int64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *StatusReply) GetIdentity() string { + if x != nil { + return x.Identity + } + return "" +} + +func (x *StatusReply) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *StatusReply) GetTimeseq() int64 { + if x != nil { + return x.Timeseq + } + return 0 +} + +type CheckForUpdatesRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + App string `protobuf:"bytes,1,opt,name=app,proto3" json:"app,omitempty"` // 应用程序名称 <必填> + Os string `protobuf:"bytes,2,opt,name=os,proto3" json:"os,omitempty"` // 操作系统 <必填> + Arch string `protobuf:"bytes,3,opt,name=arch,proto3" json:"arch,omitempty"` // 构架名称 <必填> + Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` // 版本号 <必填> + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CheckForUpdatesRequest) Reset() { + *x = CheckForUpdatesRequest{} + mi := &file_check_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CheckForUpdatesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckForUpdatesRequest) ProtoMessage() {} + +func (x *CheckForUpdatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_check_proto_msgTypes[2] + 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 CheckForUpdatesRequest.ProtoReflect.Descriptor instead. +func (*CheckForUpdatesRequest) Descriptor() ([]byte, []int) { + return file_check_proto_rawDescGZIP(), []int{2} +} + +func (x *CheckForUpdatesRequest) GetApp() string { + if x != nil { + return x.App + } + return "" +} + +func (x *CheckForUpdatesRequest) GetOs() string { + if x != nil { + return x.Os + } + return "" +} + +func (x *CheckForUpdatesRequest) GetArch() string { + if x != nil { + return x.Arch + } + return "" +} + +func (x *CheckForUpdatesRequest) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type CheckForUpdatesReply struct { + state protoimpl.MessageState `protogen:"open.v1"` + Identity string `protobuf:"bytes,1,opt,name=identity,proto3" json:"identity,omitempty"` // 唯一码 + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // 版本号 + Summary string `protobuf:"bytes,3,opt,name=summary,proto3" json:"summary,omitempty"` // 更析说明 + Files string `protobuf:"bytes,4,opt,name=files,proto3" json:"files,omitempty"` // 更新文件以及文件hash + Pubdate string `protobuf:"bytes,5,opt,name=pubdate,proto3" json:"pubdate,omitempty"` // 发布时间 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CheckForUpdatesReply) Reset() { + *x = CheckForUpdatesReply{} + mi := &file_check_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CheckForUpdatesReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckForUpdatesReply) ProtoMessage() {} + +func (x *CheckForUpdatesReply) ProtoReflect() protoreflect.Message { + mi := &file_check_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 CheckForUpdatesReply.ProtoReflect.Descriptor instead. +func (*CheckForUpdatesReply) Descriptor() ([]byte, []int) { + return file_check_proto_rawDescGZIP(), []int{3} +} + +func (x *CheckForUpdatesReply) GetIdentity() string { + if x != nil { + return x.Identity + } + return "" +} + +func (x *CheckForUpdatesReply) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *CheckForUpdatesReply) GetSummary() string { + if x != nil { + return x.Summary + } + return "" +} + +func (x *CheckForUpdatesReply) GetFiles() string { + if x != nil { + return x.Files + } + return "" +} + +func (x *CheckForUpdatesReply) GetPubdate() string { + if x != nil { + return x.Pubdate + } + return "" +} + +var File_check_proto protoreflect.FileDescriptor + +const file_check_proto_rawDesc = "" + + "\n" + + "\vcheck.proto\x12\ainitial\"\x19\n" + + "\x03Crc\x12\x12\n" + + "\x04code\x18\x01 \x01(\tR\x04code\"u\n" + + "\vStatusReply\x12\x16\n" + + "\x06status\x18\x01 \x01(\x03R\x06status\x12\x1a\n" + + "\bidentity\x18\x02 \x01(\tR\bidentity\x12\x18\n" + + "\amessage\x18\x03 \x01(\tR\amessage\x12\x18\n" + + "\atimeseq\x18\x04 \x01(\x03R\atimeseq\"h\n" + + "\x16CheckForUpdatesRequest\x12\x10\n" + + "\x03app\x18\x01 \x01(\tR\x03app\x12\x0e\n" + + "\x02os\x18\x02 \x01(\tR\x02os\x12\x12\n" + + "\x04arch\x18\x03 \x01(\tR\x04arch\x12\x18\n" + + "\aversion\x18\x04 \x01(\tR\aversion\"\x96\x01\n" + + "\x14CheckForUpdatesReply\x12\x1a\n" + + "\bidentity\x18\x01 \x01(\tR\bidentity\x12\x18\n" + + "\aversion\x18\x02 \x01(\tR\aversion\x12\x18\n" + + "\asummary\x18\x03 \x01(\tR\asummary\x12\x14\n" + + "\x05files\x18\x04 \x01(\tR\x05files\x12\x18\n" + + "\apubdate\x18\x05 \x01(\tR\apubdate2\x83\x01\n" + + "\x05Check\x12-\n" + + "\x05Hello\x12\f.initial.Crc\x1a\x14.initial.StatusReply\"\x00\x12K\n" + + "\aUpdates\x12\x1f.initial.CheckForUpdatesRequest\x1a\x1d.initial.CheckForUpdatesReply\"\x00B\vZ\t.;initialb\x06proto3" + +var ( + file_check_proto_rawDescOnce sync.Once + file_check_proto_rawDescData []byte +) + +func file_check_proto_rawDescGZIP() []byte { + file_check_proto_rawDescOnce.Do(func() { + file_check_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_check_proto_rawDesc), len(file_check_proto_rawDesc))) + }) + return file_check_proto_rawDescData +} + +var file_check_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_check_proto_goTypes = []any{ + (*Crc)(nil), // 0: initial.Crc + (*StatusReply)(nil), // 1: initial.StatusReply + (*CheckForUpdatesRequest)(nil), // 2: initial.CheckForUpdatesRequest + (*CheckForUpdatesReply)(nil), // 3: initial.CheckForUpdatesReply +} +var file_check_proto_depIdxs = []int32{ + 0, // 0: initial.Check.Hello:input_type -> initial.Crc + 2, // 1: initial.Check.Updates:input_type -> initial.CheckForUpdatesRequest + 1, // 2: initial.Check.Hello:output_type -> initial.StatusReply + 3, // 3: initial.Check.Updates:output_type -> initial.CheckForUpdatesReply + 2, // [2:4] is the sub-list for method output_type + 0, // [0:2] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_check_proto_init() } +func file_check_proto_init() { + if File_check_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_check_proto_rawDesc), len(file_check_proto_rawDesc)), + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_check_proto_goTypes, + DependencyIndexes: file_check_proto_depIdxs, + MessageInfos: file_check_proto_msgTypes, + }.Build() + File_check_proto = out.File + file_check_proto_goTypes = nil + file_check_proto_depIdxs = nil +} diff --git a/golnag/initial/check_grpc.pb.go b/golnag/initial/check_grpc.pb.go new file mode 100644 index 0000000..3f63592 --- /dev/null +++ b/golnag/initial/check_grpc.pb.go @@ -0,0 +1,167 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.5.1 +// - protoc (unknown) +// source: check.proto + +package initial + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Check_Hello_FullMethodName = "/initial.Check/Hello" + Check_Updates_FullMethodName = "/initial.Check/Updates" +) + +// CheckClient is the client API for Check service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// initial-检测是否有新版或新的配置 +type CheckClient interface { + // HELLO + Hello(ctx context.Context, in *Crc, opts ...grpc.CallOption) (*StatusReply, error) + // 检查更新 + Updates(ctx context.Context, in *CheckForUpdatesRequest, opts ...grpc.CallOption) (*CheckForUpdatesReply, error) +} + +type checkClient struct { + cc grpc.ClientConnInterface +} + +func NewCheckClient(cc grpc.ClientConnInterface) CheckClient { + return &checkClient{cc} +} + +func (c *checkClient) Hello(ctx context.Context, in *Crc, opts ...grpc.CallOption) (*StatusReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(StatusReply) + err := c.cc.Invoke(ctx, Check_Hello_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *checkClient) Updates(ctx context.Context, in *CheckForUpdatesRequest, opts ...grpc.CallOption) (*CheckForUpdatesReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(CheckForUpdatesReply) + err := c.cc.Invoke(ctx, Check_Updates_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CheckServer is the server API for Check service. +// All implementations must embed UnimplementedCheckServer +// for forward compatibility. +// +// initial-检测是否有新版或新的配置 +type CheckServer interface { + // HELLO + Hello(context.Context, *Crc) (*StatusReply, error) + // 检查更新 + Updates(context.Context, *CheckForUpdatesRequest) (*CheckForUpdatesReply, error) + mustEmbedUnimplementedCheckServer() +} + +// UnimplementedCheckServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedCheckServer struct{} + +func (UnimplementedCheckServer) Hello(context.Context, *Crc) (*StatusReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Hello not implemented") +} +func (UnimplementedCheckServer) Updates(context.Context, *CheckForUpdatesRequest) (*CheckForUpdatesReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Updates not implemented") +} +func (UnimplementedCheckServer) mustEmbedUnimplementedCheckServer() {} +func (UnimplementedCheckServer) testEmbeddedByValue() {} + +// UnsafeCheckServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to CheckServer will +// result in compilation errors. +type UnsafeCheckServer interface { + mustEmbedUnimplementedCheckServer() +} + +func RegisterCheckServer(s grpc.ServiceRegistrar, srv CheckServer) { + // If the following call pancis, it indicates UnimplementedCheckServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&Check_ServiceDesc, srv) +} + +func _Check_Hello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Crc) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CheckServer).Hello(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Check_Hello_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CheckServer).Hello(ctx, req.(*Crc)) + } + return interceptor(ctx, in, info, handler) +} + +func _Check_Updates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CheckForUpdatesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CheckServer).Updates(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Check_Updates_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CheckServer).Updates(ctx, req.(*CheckForUpdatesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Check_ServiceDesc is the grpc.ServiceDesc for Check service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Check_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "initial.Check", + HandlerType: (*CheckServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Hello", + Handler: _Check_Hello_Handler, + }, + { + MethodName: "Updates", + Handler: _Check_Updates_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "check.proto", +} diff --git a/golnag/initial/data.pb.go b/golnag/initial/data.pb.go new file mode 100644 index 0000000..60adc49 --- /dev/null +++ b/golnag/initial/data.pb.go @@ -0,0 +1,649 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.8 +// protoc (unknown) +// source: data.proto + +package initial + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Empty struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Empty) Reset() { + *x = Empty{} + mi := &file_data_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Empty) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Empty) ProtoMessage() {} + +func (x *Empty) ProtoReflect() protoreflect.Message { + mi := &file_data_proto_msgTypes[0] + 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 Empty.ProtoReflect.Descriptor instead. +func (*Empty) Descriptor() ([]byte, []int) { + return file_data_proto_rawDescGZIP(), []int{0} +} + +type AreasRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ShowTown bool `protobuf:"varint,1,opt,name=show_town,json=showTown,proto3" json:"show_town,omitempty"` // 是否输出乡镇,默认:市级 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AreasRequest) Reset() { + *x = AreasRequest{} + mi := &file_data_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AreasRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AreasRequest) ProtoMessage() {} + +func (x *AreasRequest) ProtoReflect() protoreflect.Message { + mi := &file_data_proto_msgTypes[1] + 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 AreasRequest.ProtoReflect.Descriptor instead. +func (*AreasRequest) Descriptor() ([]byte, []int) { + return file_data_proto_rawDescGZIP(), []int{1} +} + +func (x *AreasRequest) GetShowTown() bool { + if x != nil { + return x.ShowTown + } + return false +} + +type ConfigRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + App string `protobuf:"bytes,1,opt,name=app,proto3" json:"app,omitempty"` // 应用程序名称 <必填> + Os string `protobuf:"bytes,2,opt,name=os,proto3" json:"os,omitempty"` // 操作系统 <必填> + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ConfigRequest) Reset() { + *x = ConfigRequest{} + mi := &file_data_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest) ProtoMessage() {} + +func (x *ConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_data_proto_msgTypes[2] + 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 ConfigRequest.ProtoReflect.Descriptor instead. +func (*ConfigRequest) Descriptor() ([]byte, []int) { + return file_data_proto_rawDescGZIP(), []int{2} +} + +func (x *ConfigRequest) GetApp() string { + if x != nil { + return x.App + } + return "" +} + +func (x *ConfigRequest) GetOs() string { + if x != nil { + return x.Os + } + return "" +} + +type ConfigReply struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []*ConfigItem `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` // 配置参数列表 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ConfigReply) Reset() { + *x = ConfigReply{} + mi := &file_data_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ConfigReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigReply) ProtoMessage() {} + +func (x *ConfigReply) ProtoReflect() protoreflect.Message { + mi := &file_data_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 ConfigReply.ProtoReflect.Descriptor instead. +func (*ConfigReply) Descriptor() ([]byte, []int) { + return file_data_proto_rawDescGZIP(), []int{3} +} + +func (x *ConfigReply) GetData() []*ConfigItem { + if x != nil { + return x.Data + } + return nil +} + +type ConfigItem struct { + state protoimpl.MessageState `protogen:"open.v1"` + Identity string `protobuf:"bytes,1,opt,name=Identity,proto3" json:"Identity,omitempty"` //唯一标识 + Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` //配置键 + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` //配置值 + Version int64 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` //版本号 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ConfigItem) Reset() { + *x = ConfigItem{} + mi := &file_data_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ConfigItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigItem) ProtoMessage() {} + +func (x *ConfigItem) ProtoReflect() protoreflect.Message { + mi := &file_data_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 ConfigItem.ProtoReflect.Descriptor instead. +func (*ConfigItem) Descriptor() ([]byte, []int) { + return file_data_proto_rawDescGZIP(), []int{4} +} + +func (x *ConfigItem) GetIdentity() string { + if x != nil { + return x.Identity + } + return "" +} + +func (x *ConfigItem) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *ConfigItem) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +func (x *ConfigItem) GetVersion() int64 { + if x != nil { + return x.Version + } + return 0 +} + +type AreasReply struct { + state protoimpl.MessageState `protogen:"open.v1"` + Areas []*AreasItem `protobuf:"bytes,1,rep,name=areas,proto3" json:"areas,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AreasReply) Reset() { + *x = AreasReply{} + mi := &file_data_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AreasReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AreasReply) ProtoMessage() {} + +func (x *AreasReply) ProtoReflect() protoreflect.Message { + mi := &file_data_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 AreasReply.ProtoReflect.Descriptor instead. +func (*AreasReply) Descriptor() ([]byte, []int) { + return file_data_proto_rawDescGZIP(), []int{5} +} + +func (x *AreasReply) GetAreas() []*AreasItem { + if x != nil { + return x.Areas + } + return nil +} + +type AreasItem struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Pid string `protobuf:"bytes,2,opt,name=pid,proto3" json:"pid,omitempty"` + Deep int32 `protobuf:"varint,3,opt,name=deep,proto3" json:"deep,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + PinyinPrefix string `protobuf:"bytes,5,opt,name=pinyin_prefix,json=pinyinPrefix,proto3" json:"pinyin_prefix,omitempty"` + Pinyin string `protobuf:"bytes,6,opt,name=pinyin,proto3" json:"pinyin,omitempty"` + ExtId string `protobuf:"bytes,7,opt,name=ext_id,json=extId,proto3" json:"ext_id,omitempty"` + ExtName string `protobuf:"bytes,8,opt,name=ext_name,json=extName,proto3" json:"ext_name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AreasItem) Reset() { + *x = AreasItem{} + mi := &file_data_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AreasItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AreasItem) ProtoMessage() {} + +func (x *AreasItem) ProtoReflect() protoreflect.Message { + mi := &file_data_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 AreasItem.ProtoReflect.Descriptor instead. +func (*AreasItem) Descriptor() ([]byte, []int) { + return file_data_proto_rawDescGZIP(), []int{6} +} + +func (x *AreasItem) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *AreasItem) GetPid() string { + if x != nil { + return x.Pid + } + return "" +} + +func (x *AreasItem) GetDeep() int32 { + if x != nil { + return x.Deep + } + return 0 +} + +func (x *AreasItem) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AreasItem) GetPinyinPrefix() string { + if x != nil { + return x.PinyinPrefix + } + return "" +} + +func (x *AreasItem) GetPinyin() string { + if x != nil { + return x.Pinyin + } + return "" +} + +func (x *AreasItem) GetExtId() string { + if x != nil { + return x.ExtId + } + return "" +} + +func (x *AreasItem) GetExtName() string { + if x != nil { + return x.ExtName + } + return "" +} + +type TagsReply struct { + state protoimpl.MessageState `protogen:"open.v1"` + Tags []*TagsItem `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TagsReply) Reset() { + *x = TagsReply{} + mi := &file_data_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TagsReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TagsReply) ProtoMessage() {} + +func (x *TagsReply) ProtoReflect() protoreflect.Message { + mi := &file_data_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 TagsReply.ProtoReflect.Descriptor instead. +func (*TagsReply) Descriptor() ([]byte, []int) { + return file_data_proto_rawDescGZIP(), []int{7} +} + +func (x *TagsReply) GetTags() []*TagsItem { + if x != nil { + return x.Tags + } + return nil +} + +type TagsItem struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Type int32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` + Key string `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` + Title string `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"` + Remark string `protobuf:"bytes,5,opt,name=remark,proto3" json:"remark,omitempty"` + Icon string `protobuf:"bytes,6,opt,name=icon,proto3" json:"icon,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TagsItem) Reset() { + *x = TagsItem{} + mi := &file_data_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TagsItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TagsItem) ProtoMessage() {} + +func (x *TagsItem) ProtoReflect() protoreflect.Message { + mi := &file_data_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 TagsItem.ProtoReflect.Descriptor instead. +func (*TagsItem) Descriptor() ([]byte, []int) { + return file_data_proto_rawDescGZIP(), []int{8} +} + +func (x *TagsItem) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *TagsItem) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *TagsItem) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *TagsItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *TagsItem) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +func (x *TagsItem) GetIcon() string { + if x != nil { + return x.Icon + } + return "" +} + +var File_data_proto protoreflect.FileDescriptor + +const file_data_proto_rawDesc = "" + + "\n" + + "\n" + + "data.proto\x12\ainitial\"\a\n" + + "\x05Empty\"+\n" + + "\fAreasRequest\x12\x1b\n" + + "\tshow_town\x18\x01 \x01(\bR\bshowTown\"1\n" + + "\rConfigRequest\x12\x10\n" + + "\x03app\x18\x01 \x01(\tR\x03app\x12\x0e\n" + + "\x02os\x18\x02 \x01(\tR\x02os\"6\n" + + "\vConfigReply\x12'\n" + + "\x04data\x18\x01 \x03(\v2\x13.initial.ConfigItemR\x04data\"j\n" + + "\n" + + "ConfigItem\x12\x1a\n" + + "\bIdentity\x18\x01 \x01(\tR\bIdentity\x12\x10\n" + + "\x03key\x18\x02 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x03 \x01(\tR\x05value\x12\x18\n" + + "\aversion\x18\x04 \x01(\x03R\aversion\"6\n" + + "\n" + + "AreasReply\x12(\n" + + "\x05areas\x18\x01 \x03(\v2\x12.initial.AreasItemR\x05areas\"\xc4\x01\n" + + "\tAreasItem\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n" + + "\x03pid\x18\x02 \x01(\tR\x03pid\x12\x12\n" + + "\x04deep\x18\x03 \x01(\x05R\x04deep\x12\x12\n" + + "\x04name\x18\x04 \x01(\tR\x04name\x12#\n" + + "\rpinyin_prefix\x18\x05 \x01(\tR\fpinyinPrefix\x12\x16\n" + + "\x06pinyin\x18\x06 \x01(\tR\x06pinyin\x12\x15\n" + + "\x06ext_id\x18\a \x01(\tR\x05extId\x12\x19\n" + + "\bext_name\x18\b \x01(\tR\aextName\"2\n" + + "\tTagsReply\x12%\n" + + "\x04tags\x18\x01 \x03(\v2\x11.initial.TagsItemR\x04tags\"\x82\x01\n" + + "\bTagsItem\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" + + "\x04type\x18\x02 \x01(\x05R\x04type\x12\x10\n" + + "\x03key\x18\x03 \x01(\tR\x03key\x12\x14\n" + + "\x05title\x18\x04 \x01(\tR\x05title\x12\x16\n" + + "\x06remark\x18\x05 \x01(\tR\x06remark\x12\x12\n" + + "\x04icon\x18\x06 \x01(\tR\x04icon2\xa5\x01\n" + + "\x04Data\x128\n" + + "\x06Config\x12\x16.initial.ConfigRequest\x1a\x14.initial.ConfigReply\"\x00\x125\n" + + "\x05Areas\x12\x15.initial.AreasRequest\x1a\x13.initial.AreasReply\"\x00\x12,\n" + + "\x04Tags\x12\x0e.initial.Empty\x1a\x12.initial.TagsReply\"\x00B\vZ\t.;initialb\x06proto3" + +var ( + file_data_proto_rawDescOnce sync.Once + file_data_proto_rawDescData []byte +) + +func file_data_proto_rawDescGZIP() []byte { + file_data_proto_rawDescOnce.Do(func() { + file_data_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_data_proto_rawDesc), len(file_data_proto_rawDesc))) + }) + return file_data_proto_rawDescData +} + +var file_data_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_data_proto_goTypes = []any{ + (*Empty)(nil), // 0: initial.Empty + (*AreasRequest)(nil), // 1: initial.AreasRequest + (*ConfigRequest)(nil), // 2: initial.ConfigRequest + (*ConfigReply)(nil), // 3: initial.ConfigReply + (*ConfigItem)(nil), // 4: initial.ConfigItem + (*AreasReply)(nil), // 5: initial.AreasReply + (*AreasItem)(nil), // 6: initial.AreasItem + (*TagsReply)(nil), // 7: initial.TagsReply + (*TagsItem)(nil), // 8: initial.TagsItem +} +var file_data_proto_depIdxs = []int32{ + 4, // 0: initial.ConfigReply.data:type_name -> initial.ConfigItem + 6, // 1: initial.AreasReply.areas:type_name -> initial.AreasItem + 8, // 2: initial.TagsReply.tags:type_name -> initial.TagsItem + 2, // 3: initial.Data.Config:input_type -> initial.ConfigRequest + 1, // 4: initial.Data.Areas:input_type -> initial.AreasRequest + 0, // 5: initial.Data.Tags:input_type -> initial.Empty + 3, // 6: initial.Data.Config:output_type -> initial.ConfigReply + 5, // 7: initial.Data.Areas:output_type -> initial.AreasReply + 7, // 8: initial.Data.Tags:output_type -> initial.TagsReply + 6, // [6:9] is the sub-list for method output_type + 3, // [3:6] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_data_proto_init() } +func file_data_proto_init() { + if File_data_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_data_proto_rawDesc), len(file_data_proto_rawDesc)), + NumEnums: 0, + NumMessages: 9, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_data_proto_goTypes, + DependencyIndexes: file_data_proto_depIdxs, + MessageInfos: file_data_proto_msgTypes, + }.Build() + File_data_proto = out.File + file_data_proto_goTypes = nil + file_data_proto_depIdxs = nil +} diff --git a/golnag/initial/data_grpc.pb.go b/golnag/initial/data_grpc.pb.go new file mode 100644 index 0000000..241a3a1 --- /dev/null +++ b/golnag/initial/data_grpc.pb.go @@ -0,0 +1,207 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.5.1 +// - protoc (unknown) +// source: data.proto + +package initial + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Data_Config_FullMethodName = "/initial.Data/Config" + Data_Areas_FullMethodName = "/initial.Data/Areas" + Data_Tags_FullMethodName = "/initial.Data/Tags" +) + +// DataClient is the client API for Data service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// initial-数据 +type DataClient interface { + // 获取应用的相关配置信息 + Config(ctx context.Context, in *ConfigRequest, opts ...grpc.CallOption) (*ConfigReply, error) + // 系统区域数据,默认级别:市 + Areas(ctx context.Context, in *AreasRequest, opts ...grpc.CallOption) (*AreasReply, error) + // 系统标签数据 + Tags(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*TagsReply, error) +} + +type dataClient struct { + cc grpc.ClientConnInterface +} + +func NewDataClient(cc grpc.ClientConnInterface) DataClient { + return &dataClient{cc} +} + +func (c *dataClient) Config(ctx context.Context, in *ConfigRequest, opts ...grpc.CallOption) (*ConfigReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ConfigReply) + err := c.cc.Invoke(ctx, Data_Config_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataClient) Areas(ctx context.Context, in *AreasRequest, opts ...grpc.CallOption) (*AreasReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(AreasReply) + err := c.cc.Invoke(ctx, Data_Areas_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataClient) Tags(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*TagsReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(TagsReply) + err := c.cc.Invoke(ctx, Data_Tags_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// DataServer is the server API for Data service. +// All implementations must embed UnimplementedDataServer +// for forward compatibility. +// +// initial-数据 +type DataServer interface { + // 获取应用的相关配置信息 + Config(context.Context, *ConfigRequest) (*ConfigReply, error) + // 系统区域数据,默认级别:市 + Areas(context.Context, *AreasRequest) (*AreasReply, error) + // 系统标签数据 + Tags(context.Context, *Empty) (*TagsReply, error) + mustEmbedUnimplementedDataServer() +} + +// UnimplementedDataServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedDataServer struct{} + +func (UnimplementedDataServer) Config(context.Context, *ConfigRequest) (*ConfigReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Config not implemented") +} +func (UnimplementedDataServer) Areas(context.Context, *AreasRequest) (*AreasReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Areas not implemented") +} +func (UnimplementedDataServer) Tags(context.Context, *Empty) (*TagsReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Tags not implemented") +} +func (UnimplementedDataServer) mustEmbedUnimplementedDataServer() {} +func (UnimplementedDataServer) testEmbeddedByValue() {} + +// UnsafeDataServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to DataServer will +// result in compilation errors. +type UnsafeDataServer interface { + mustEmbedUnimplementedDataServer() +} + +func RegisterDataServer(s grpc.ServiceRegistrar, srv DataServer) { + // If the following call pancis, it indicates UnimplementedDataServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&Data_ServiceDesc, srv) +} + +func _Data_Config_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataServer).Config(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Data_Config_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataServer).Config(ctx, req.(*ConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Data_Areas_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AreasRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataServer).Areas(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Data_Areas_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataServer).Areas(ctx, req.(*AreasRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Data_Tags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataServer).Tags(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Data_Tags_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataServer).Tags(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + +// Data_ServiceDesc is the grpc.ServiceDesc for Data service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Data_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "initial.Data", + HandlerType: (*DataServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Config", + Handler: _Data_Config_Handler, + }, + { + MethodName: "Areas", + Handler: _Data_Areas_Handler, + }, + { + MethodName: "Tags", + Handler: _Data_Tags_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "data.proto", +}