diff --git a/src/FM.GrpcDashboard/Readme.md b/src/FM.GrpcDashboard/Readme.md new file mode 100644 index 0000000..53a3396 --- /dev/null +++ b/src/FM.GrpcDashboard/Readme.md @@ -0,0 +1,23 @@ +# 使用两种方法对接DashBoard +## 方法1:实现FMGrpcExtensions.proto协议 +### dotnet对接GrpcDashBoard +使用FM.Grpc.Extensions或者FM.Droplet + +### 其它语言对接GrpcDashBoard +需要自己实现FMGrpcExtensions.proto协议 + +## 方法2:使用GrpcReflection +### dotnet对接GrpcDashBoard +netcore1.x-2.x +https://github.com/grpc/grpc/blob/master/doc/csharp/server_reflection.md +netcore3.x-5.x +https://docs.microsoft.com/en-us/aspnet/core/grpc/test-tools?view=aspnetcore-3.0 + +### java对接GrpcDashBoard +https://github.com/grpc/grpc-java/blob/master/documentation/server-reflection-tutorial.md + +### golang对接GrpcDashBoard +https://github.com/grpc/grpc-go/blob/master/Documentation/server-reflection-tutorial.md + +### python对接GrpcDashBoard +https://github.com/grpc/grpc/blob/master/doc/python/server_reflection.md diff --git a/src/FM.GrpcDashboard/dockerfile b/src/FM.GrpcDashboard/dockerfile index 3fcad14..3142c8a 100644 --- a/src/FM.GrpcDashboard/dockerfile +++ b/src/FM.GrpcDashboard/dockerfile @@ -1,4 +1,5 @@ FROM microsoft/aspnetcore:2.0.0 WORKDIR /app -COPY ./ /app +COPY ./ /app +COPY ./grpcurl /usr/bin/ ENTRYPOINT ["dotnet", "FM.GrpcDashboard.dll"] \ No newline at end of file diff --git a/src/FM.GrpcDashboard/makefile b/src/FM.GrpcDashboard/makefile new file mode 100644 index 0000000..0191b56 --- /dev/null +++ b/src/FM.GrpcDashboard/makefile @@ -0,0 +1,34 @@ +#sln init +PROJECT = FM.GrpcDashboard +SOLUTION_NAME = ${PROJECT_NAME}.sln + +#service build +SRV_NAME = cs-grpc_dashboard-web +CURRENT_VERSION := `head -1 CHANGELOG ` +TIME = $(shell date +%y%m%d%H%M) + +SRV_FULL_NAME := $(SRV_NAME):$(CURRENT_VERSION).$(TIME) + +build:clean + dotnet publish ./src/$(PROJECT)/$(PROJECT).csproj -c Release -o ./dist + +clean: + rm -rf dist/ + +# 仅编译镜像,不推 +build-image:build + cp Dockerfile ./dist/Dockerfile + docker build -f ./dist/Dockerfile --no-cache --rm -t $(SRV_FULL_NAME) ./dist + +# 发布项目 +publish:build-image + docker tag $(SRV_FULL_NAME) $(DH_URL)$(SRV_FULL_NAME) + docker login -u $(DH_USER) -p $(DH_PASS) $(DH_URL) && docker push $(DH_URL)$(SRV_FULL_NAME) + +test: + echo $(DH_USER) + echo $(DH_PASS) + echo $(DH_URL) + +.PHONY: gen build build-image publish clean test + diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/JsonSerialization.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/JsonSerialization.cs index 05d92eb..9d236ca 100644 --- a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/JsonSerialization.cs +++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/JsonSerialization.cs @@ -8,18 +8,20 @@ public static class JsonSerialization /// /// 使用json序列化为字符串 /// + /// /// 默认null,即使用json.net默认的序列化机制,如:"\/Date(1439335800000+0800)\/" + /// /// public static string ToJson(this object input, string dateTimeFormat = "yyyy-MM-dd HH:mm:ss", bool ignoreNullValue = true) { var settings = new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, - PreserveReferencesHandling = PreserveReferencesHandling.Objects + PreserveReferencesHandling = PreserveReferencesHandling.None }; if (ignoreNullValue) { - settings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore; + settings.NullValueHandling = NullValueHandling.Ignore; }; if (!string.IsNullOrWhiteSpace(dateTimeFormat)) @@ -30,7 +32,7 @@ public static string ToJson(this object input, string dateTimeFormat = "yyyy-MM- }; settings.Converters = jsonConverter; } - var format = Newtonsoft.Json.Formatting.Indented; + var format = Formatting.Indented; var json = JsonConvert.SerializeObject(input, format, settings); return json; } @@ -41,6 +43,7 @@ public static string ToJson(this object input, string dateTimeFormat = "yyyy-MM- /// /// /// 默认null,即使用json.net默认的序列化机制 + /// /// public static T TryFromJson(this string input, string dateTimeFormat = "yyyy-MM-dd HH:mm:ss", bool ignoreNullValue = true) { @@ -69,7 +72,7 @@ public static T FromJson(this string input, string dateTimeFormat = "yyyy-MM- }; if (ignoreNullValue) { - settings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore; + settings.NullValueHandling = NullValueHandling.Ignore; } if (!string.IsNullOrWhiteSpace(dateTimeFormat)) diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/ProtobufSerialization.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/ProtobufSerialization.cs new file mode 100644 index 0000000..4d1397e --- /dev/null +++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/ProtobufSerialization.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using ProtoBuf; + +namespace System +{ + /// + /// ProtobufExtensions + /// + public class ProtobufExtensions + { + /// + /// 序列化 + /// + /// + /// + /// + public static byte[] Serialize(T input) + { + using (MemoryStream memoryStream = new MemoryStream()) + { + Serializer.Serialize((Stream)memoryStream, input); + return memoryStream.ToArray(); + } + } + + /// + /// 反序列化 + /// + /// + /// + /// + public static T Deserialize(byte[] data) + { + using (MemoryStream memoryStream = new MemoryStream(data)) + return Serializer.Deserialize((Stream)memoryStream); + } + } +} diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/ShellHelper.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/ShellHelper.cs new file mode 100644 index 0000000..af151d2 --- /dev/null +++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Common/ShellHelper.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; + +namespace System +{ + public static class ShellHelper + { + public static string Bash(this string cmd) + { + var escapedArgs = cmd.Replace("\"", "\\\""); + + var process = new Process() + { + StartInfo = new ProcessStartInfo + { + FileName = "bash", + Arguments = $"-c \"{escapedArgs}\" 2>&1", + RedirectStandardOutput = true, + RedirectStandardError = true, + UseShellExecute = false, + CreateNoWindow = true, + } + }; + process.Start(); + string result = process.StandardOutput.ReadToEnd(); + string error = process.StandardError.ReadToEnd(); + + process.WaitForExit(); + return !string.IsNullOrWhiteSpace(result) ? result : error; + } + + public static string Cmd(this string cmd) + { + var escapedArgs = cmd.Replace("\"", "\\\""); + + var process = new Process() + { + StartInfo = new ProcessStartInfo + { + FileName = "cmd", + Arguments = $"/c \"{escapedArgs}\" 2>&1", + RedirectStandardOutput = true, + UseShellExecute = false, + CreateNoWindow = true, + } + }; + process.Start(); + string result = process.StandardOutput.ReadToEnd(); + + process.WaitForExit(); + return result; + } + + public static string Execute(this string exeFileName, string arguments) + { + var process = new Process() + { + StartInfo = new ProcessStartInfo + { + FileName = exeFileName, + Arguments = arguments, + RedirectStandardOutput = true, + UseShellExecute = false, + CreateNoWindow = true, + } + }; + process.Start(); + string result = process.StandardOutput.ReadToEnd(); + process.WaitForExit(); + return result; + } + } +} diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/FM.GrpcDashboard.csproj b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/FM.GrpcDashboard.csproj index 39edeaf..55ed7fe 100644 --- a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/FM.GrpcDashboard.csproj +++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/FM.GrpcDashboard.csproj @@ -12,9 +12,10 @@ - + + diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/FMGrpcExtensions.proto b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/FMGrpcExtensions.proto new file mode 100644 index 0000000..ab52888 --- /dev/null +++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/FMGrpcExtensions.proto @@ -0,0 +1,67 @@ +syntax = "proto3"; +option csharp_namespace = "Grpc"; +package grpc; + + +service BaseService { + //服务基本信息(方法列表) + rpc Info(InfoRQ) returns(InfoRS); + //服务方法的详细信息 + rpc MethodInfo(MethodInfoRQ) returns(MethodInfoRS); + //服务方法调用 + rpc MethodInvoke(MethodInvokeRQ) returns(MethodInvokeRS); + + //添加删除截流的method + rpc AddDelThrottle(AddDelThrottleRQ) returns(CmdRS); + //添加删除是否允许保存响应的method + rpc AddDelSaveResponseEnable(AddDelSaveResponseEnableRQ) returns(CmdRS); +} + +message AddDelThrottleRQ { + string MethodName = 1; + bool IsDel = 2; +} + +message AddDelSaveResponseEnableRQ { + string MethodName = 1; + bool IsDel = 2; +} + +message InfoRQ { + string MethodName = 1; +} + +message MethodInfoRQ { + string FullName = 1; +} + +message MethodInvokeRQ { + string FullName = 1; + string RequestJson = 2; +} + +message CmdRS { + bool Result = 1; + string Message = 2; +} + +message InfoRS { + string IpAndPort = 1; + int64 StartTime = 2; + repeated MethodInfo MethodInfos = 3; +} + +message MethodInfo { + bool IsThrottled = 1; + string Name = 2; + bool SaveResponseEnable = 3; +} + +message MethodInfoRS { + string RequestJson = 1; + string ResponseJson = 2; +} + +message MethodInvokeRS { + string ResponseJson = 1; +} \ No newline at end of file diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/Descriptor.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/Descriptor.cs new file mode 100644 index 0000000..b7ce86a --- /dev/null +++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/Descriptor.cs @@ -0,0 +1,1327 @@ +// +// This file was generated by a tool; you should avoid making direct changes. +// Consider using 'partial classes' to extend these types +// Input: my.proto +// + +#region Designer generated code +#pragma warning disable CS0612, CS0618, CS1591, CS3021, IDE0079, IDE1006, RCS1036, RCS1057, RCS1085, RCS1192 +namespace Google.Protobuf.Reflection +{ + + [global::ProtoBuf.ProtoContract()] + public partial class FileDescriptorSet : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"file")] + public global::System.Collections.Generic.List Files { get; } = new global::System.Collections.Generic.List(); + + } + + [global::ProtoBuf.ProtoContract()] + public partial class FileDescriptorProto : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"name")] + [global::System.ComponentModel.DefaultValue("")] + public string Name + { + get => __pbn__Name ?? ""; + set => __pbn__Name = value; + } + public bool ShouldSerializeName() => __pbn__Name != null; + public void ResetName() => __pbn__Name = null; + private string __pbn__Name; + + [global::ProtoBuf.ProtoMember(2, Name = @"package")] + [global::System.ComponentModel.DefaultValue("")] + public string Package + { + get => __pbn__Package ?? ""; + set => __pbn__Package = value; + } + public bool ShouldSerializePackage() => __pbn__Package != null; + public void ResetPackage() => __pbn__Package = null; + private string __pbn__Package; + + [global::ProtoBuf.ProtoMember(3, Name = @"dependency")] + public global::System.Collections.Generic.List Dependencies { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(10, Name = @"public_dependency")] + public int[] PublicDependencies { get; set; } + + [global::ProtoBuf.ProtoMember(11, Name = @"weak_dependency")] + public int[] WeakDependencies { get; set; } + + [global::ProtoBuf.ProtoMember(4, Name = @"message_type")] + public global::System.Collections.Generic.List MessageTypes { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(5, Name = @"enum_type")] + public global::System.Collections.Generic.List EnumTypes { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(6, Name = @"service")] + public global::System.Collections.Generic.List Services { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(7, Name = @"extension")] + public global::System.Collections.Generic.List Extensions { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(8, Name = @"options")] + public FileOptions Options { get; set; } + + [global::ProtoBuf.ProtoMember(9, Name = @"source_code_info")] + public SourceCodeInfo SourceCodeInfo { get; set; } + + [global::ProtoBuf.ProtoMember(12, Name = @"syntax")] + [global::System.ComponentModel.DefaultValue("")] + public string Syntax + { + get => __pbn__Syntax ?? ""; + set => __pbn__Syntax = value; + } + public bool ShouldSerializeSyntax() => __pbn__Syntax != null; + public void ResetSyntax() => __pbn__Syntax = null; + private string __pbn__Syntax; + + } + + [global::ProtoBuf.ProtoContract()] + public partial class DescriptorProto : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"name")] + [global::System.ComponentModel.DefaultValue("")] + public string Name + { + get => __pbn__Name ?? ""; + set => __pbn__Name = value; + } + public bool ShouldSerializeName() => __pbn__Name != null; + public void ResetName() => __pbn__Name = null; + private string __pbn__Name; + + [global::ProtoBuf.ProtoMember(2, Name = @"field")] + public global::System.Collections.Generic.List Fields { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(6, Name = @"extension")] + public global::System.Collections.Generic.List Extensions { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(3, Name = @"nested_type")] + public global::System.Collections.Generic.List NestedTypes { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(4, Name = @"enum_type")] + public global::System.Collections.Generic.List EnumTypes { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(5, Name = @"extension_range")] + public global::System.Collections.Generic.List ExtensionRanges { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(8, Name = @"oneof_decl")] + public global::System.Collections.Generic.List OneofDecls { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(7, Name = @"options")] + public MessageOptions Options { get; set; } + + [global::ProtoBuf.ProtoMember(9, Name = @"reserved_range")] + public global::System.Collections.Generic.List ReservedRanges { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(10, Name = @"reserved_name")] + public global::System.Collections.Generic.List ReservedNames { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoContract()] + public partial class ExtensionRange : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"start")] + public int Start + { + get => __pbn__Start.GetValueOrDefault(); + set => __pbn__Start = value; + } + public bool ShouldSerializeStart() => __pbn__Start != null; + public void ResetStart() => __pbn__Start = null; + private int? __pbn__Start; + + [global::ProtoBuf.ProtoMember(2, Name = @"end")] + public int End + { + get => __pbn__End.GetValueOrDefault(); + set => __pbn__End = value; + } + public bool ShouldSerializeEnd() => __pbn__End != null; + public void ResetEnd() => __pbn__End = null; + private int? __pbn__End; + + [global::ProtoBuf.ProtoMember(3, Name = @"options")] + public ExtensionRangeOptions Options { get; set; } + + } + + [global::ProtoBuf.ProtoContract()] + public partial class ReservedRange : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"start")] + public int Start + { + get => __pbn__Start.GetValueOrDefault(); + set => __pbn__Start = value; + } + public bool ShouldSerializeStart() => __pbn__Start != null; + public void ResetStart() => __pbn__Start = null; + private int? __pbn__Start; + + [global::ProtoBuf.ProtoMember(2, Name = @"end")] + public int End + { + get => __pbn__End.GetValueOrDefault(); + set => __pbn__End = value; + } + public bool ShouldSerializeEnd() => __pbn__End != null; + public void ResetEnd() => __pbn__End = null; + private int? __pbn__End; + + } + + } + + [global::ProtoBuf.ProtoContract()] + public partial class ExtensionRangeOptions : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")] + public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List(); + + } + + [global::ProtoBuf.ProtoContract()] + public partial class FieldDescriptorProto : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"name")] + [global::System.ComponentModel.DefaultValue("")] + public string Name + { + get => __pbn__Name ?? ""; + set => __pbn__Name = value; + } + public bool ShouldSerializeName() => __pbn__Name != null; + public void ResetName() => __pbn__Name = null; + private string __pbn__Name; + + [global::ProtoBuf.ProtoMember(3, Name = @"number")] + public int Number + { + get => __pbn__Number.GetValueOrDefault(); + set => __pbn__Number = value; + } + public bool ShouldSerializeNumber() => __pbn__Number != null; + public void ResetNumber() => __pbn__Number = null; + private int? __pbn__Number; + + [global::ProtoBuf.ProtoMember(4)] + [global::System.ComponentModel.DefaultValue(Label.LabelOptional)] + public Label label + { + get => __pbn__label ?? Label.LabelOptional; + set => __pbn__label = value; + } + public bool ShouldSerializelabel() => __pbn__label != null; + public void Resetlabel() => __pbn__label = null; + private Label? __pbn__label; + + [global::ProtoBuf.ProtoMember(5)] + [global::System.ComponentModel.DefaultValue(Type.TypeDouble)] + public Type type + { + get => __pbn__type ?? Type.TypeDouble; + set => __pbn__type = value; + } + public bool ShouldSerializetype() => __pbn__type != null; + public void Resettype() => __pbn__type = null; + private Type? __pbn__type; + + [global::ProtoBuf.ProtoMember(6, Name = @"type_name")] + [global::System.ComponentModel.DefaultValue("")] + public string TypeName + { + get => __pbn__TypeName ?? ""; + set => __pbn__TypeName = value; + } + public bool ShouldSerializeTypeName() => __pbn__TypeName != null; + public void ResetTypeName() => __pbn__TypeName = null; + private string __pbn__TypeName; + + [global::ProtoBuf.ProtoMember(2, Name = @"extendee")] + [global::System.ComponentModel.DefaultValue("")] + public string Extendee + { + get => __pbn__Extendee ?? ""; + set => __pbn__Extendee = value; + } + public bool ShouldSerializeExtendee() => __pbn__Extendee != null; + public void ResetExtendee() => __pbn__Extendee = null; + private string __pbn__Extendee; + + [global::ProtoBuf.ProtoMember(7, Name = @"default_value")] + [global::System.ComponentModel.DefaultValue("")] + public string DefaultValue + { + get => __pbn__DefaultValue ?? ""; + set => __pbn__DefaultValue = value; + } + public bool ShouldSerializeDefaultValue() => __pbn__DefaultValue != null; + public void ResetDefaultValue() => __pbn__DefaultValue = null; + private string __pbn__DefaultValue; + + [global::ProtoBuf.ProtoMember(9, Name = @"oneof_index")] + public int OneofIndex + { + get => __pbn__OneofIndex.GetValueOrDefault(); + set => __pbn__OneofIndex = value; + } + public bool ShouldSerializeOneofIndex() => __pbn__OneofIndex != null; + public void ResetOneofIndex() => __pbn__OneofIndex = null; + private int? __pbn__OneofIndex; + + [global::ProtoBuf.ProtoMember(10, Name = @"json_name")] + [global::System.ComponentModel.DefaultValue("")] + public string JsonName + { + get => __pbn__JsonName ?? ""; + set => __pbn__JsonName = value; + } + public bool ShouldSerializeJsonName() => __pbn__JsonName != null; + public void ResetJsonName() => __pbn__JsonName = null; + private string __pbn__JsonName; + + [global::ProtoBuf.ProtoMember(8, Name = @"options")] + public FieldOptions Options { get; set; } + + [global::ProtoBuf.ProtoMember(17, Name = @"proto3_optional")] + public bool Proto3Optional + { + get => __pbn__Proto3Optional.GetValueOrDefault(); + set => __pbn__Proto3Optional = value; + } + public bool ShouldSerializeProto3Optional() => __pbn__Proto3Optional != null; + public void ResetProto3Optional() => __pbn__Proto3Optional = null; + private bool? __pbn__Proto3Optional; + + [global::ProtoBuf.ProtoContract()] + public enum Type + { + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_DOUBLE")] + TypeDouble = 1, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_FLOAT")] + TypeFloat = 2, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_INT64")] + TypeInt64 = 3, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_UINT64")] + TypeUint64 = 4, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_INT32")] + TypeInt32 = 5, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_FIXED64")] + TypeFixed64 = 6, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_FIXED32")] + TypeFixed32 = 7, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_BOOL")] + TypeBool = 8, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_STRING")] + TypeString = 9, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_GROUP")] + TypeGroup = 10, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_MESSAGE")] + TypeMessage = 11, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_BYTES")] + TypeBytes = 12, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_UINT32")] + TypeUint32 = 13, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_ENUM")] + TypeEnum = 14, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_SFIXED32")] + TypeSfixed32 = 15, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_SFIXED64")] + TypeSfixed64 = 16, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_SINT32")] + TypeSint32 = 17, + [global::ProtoBuf.ProtoEnum(Name = @"TYPE_SINT64")] + TypeSint64 = 18, + } + + [global::ProtoBuf.ProtoContract()] + public enum Label + { + [global::ProtoBuf.ProtoEnum(Name = @"LABEL_OPTIONAL")] + LabelOptional = 1, + [global::ProtoBuf.ProtoEnum(Name = @"LABEL_REQUIRED")] + LabelRequired = 2, + [global::ProtoBuf.ProtoEnum(Name = @"LABEL_REPEATED")] + LabelRepeated = 3, + } + + } + + [global::ProtoBuf.ProtoContract()] + public partial class OneofDescriptorProto : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"name")] + [global::System.ComponentModel.DefaultValue("")] + public string Name + { + get => __pbn__Name ?? ""; + set => __pbn__Name = value; + } + public bool ShouldSerializeName() => __pbn__Name != null; + public void ResetName() => __pbn__Name = null; + private string __pbn__Name; + + [global::ProtoBuf.ProtoMember(2, Name = @"options")] + public OneofOptions Options { get; set; } + + } + + [global::ProtoBuf.ProtoContract()] + public partial class EnumDescriptorProto : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"name")] + [global::System.ComponentModel.DefaultValue("")] + public string Name + { + get => __pbn__Name ?? ""; + set => __pbn__Name = value; + } + public bool ShouldSerializeName() => __pbn__Name != null; + public void ResetName() => __pbn__Name = null; + private string __pbn__Name; + + [global::ProtoBuf.ProtoMember(2, Name = @"value")] + public global::System.Collections.Generic.List Values { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(3, Name = @"options")] + public EnumOptions Options { get; set; } + + [global::ProtoBuf.ProtoMember(4, Name = @"reserved_range")] + public global::System.Collections.Generic.List ReservedRanges { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(5, Name = @"reserved_name")] + public global::System.Collections.Generic.List ReservedNames { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoContract()] + public partial class EnumReservedRange : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"start")] + public int Start + { + get => __pbn__Start.GetValueOrDefault(); + set => __pbn__Start = value; + } + public bool ShouldSerializeStart() => __pbn__Start != null; + public void ResetStart() => __pbn__Start = null; + private int? __pbn__Start; + + [global::ProtoBuf.ProtoMember(2, Name = @"end")] + public int End + { + get => __pbn__End.GetValueOrDefault(); + set => __pbn__End = value; + } + public bool ShouldSerializeEnd() => __pbn__End != null; + public void ResetEnd() => __pbn__End = null; + private int? __pbn__End; + + } + + } + + [global::ProtoBuf.ProtoContract()] + public partial class EnumValueDescriptorProto : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"name")] + [global::System.ComponentModel.DefaultValue("")] + public string Name + { + get => __pbn__Name ?? ""; + set => __pbn__Name = value; + } + public bool ShouldSerializeName() => __pbn__Name != null; + public void ResetName() => __pbn__Name = null; + private string __pbn__Name; + + [global::ProtoBuf.ProtoMember(2, Name = @"number")] + public int Number + { + get => __pbn__Number.GetValueOrDefault(); + set => __pbn__Number = value; + } + public bool ShouldSerializeNumber() => __pbn__Number != null; + public void ResetNumber() => __pbn__Number = null; + private int? __pbn__Number; + + [global::ProtoBuf.ProtoMember(3, Name = @"options")] + public EnumValueOptions Options { get; set; } + + } + + [global::ProtoBuf.ProtoContract()] + public partial class ServiceDescriptorProto : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"name")] + [global::System.ComponentModel.DefaultValue("")] + public string Name + { + get => __pbn__Name ?? ""; + set => __pbn__Name = value; + } + public bool ShouldSerializeName() => __pbn__Name != null; + public void ResetName() => __pbn__Name = null; + private string __pbn__Name; + + [global::ProtoBuf.ProtoMember(2, Name = @"method")] + public global::System.Collections.Generic.List Methods { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(3, Name = @"options")] + public ServiceOptions Options { get; set; } + + } + + [global::ProtoBuf.ProtoContract()] + public partial class MethodDescriptorProto : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"name")] + [global::System.ComponentModel.DefaultValue("")] + public string Name + { + get => __pbn__Name ?? ""; + set => __pbn__Name = value; + } + public bool ShouldSerializeName() => __pbn__Name != null; + public void ResetName() => __pbn__Name = null; + private string __pbn__Name; + + [global::ProtoBuf.ProtoMember(2, Name = @"input_type")] + [global::System.ComponentModel.DefaultValue("")] + public string InputType + { + get => __pbn__InputType ?? ""; + set => __pbn__InputType = value; + } + public bool ShouldSerializeInputType() => __pbn__InputType != null; + public void ResetInputType() => __pbn__InputType = null; + private string __pbn__InputType; + + [global::ProtoBuf.ProtoMember(3, Name = @"output_type")] + [global::System.ComponentModel.DefaultValue("")] + public string OutputType + { + get => __pbn__OutputType ?? ""; + set => __pbn__OutputType = value; + } + public bool ShouldSerializeOutputType() => __pbn__OutputType != null; + public void ResetOutputType() => __pbn__OutputType = null; + private string __pbn__OutputType; + + [global::ProtoBuf.ProtoMember(4, Name = @"options")] + public MethodOptions Options { get; set; } + + [global::ProtoBuf.ProtoMember(5, Name = @"client_streaming")] + [global::System.ComponentModel.DefaultValue(false)] + public bool ClientStreaming + { + get => __pbn__ClientStreaming ?? false; + set => __pbn__ClientStreaming = value; + } + public bool ShouldSerializeClientStreaming() => __pbn__ClientStreaming != null; + public void ResetClientStreaming() => __pbn__ClientStreaming = null; + private bool? __pbn__ClientStreaming; + + [global::ProtoBuf.ProtoMember(6, Name = @"server_streaming")] + [global::System.ComponentModel.DefaultValue(false)] + public bool ServerStreaming + { + get => __pbn__ServerStreaming ?? false; + set => __pbn__ServerStreaming = value; + } + public bool ShouldSerializeServerStreaming() => __pbn__ServerStreaming != null; + public void ResetServerStreaming() => __pbn__ServerStreaming = null; + private bool? __pbn__ServerStreaming; + + } + + [global::ProtoBuf.ProtoContract()] + public partial class FileOptions : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"java_package")] + [global::System.ComponentModel.DefaultValue("")] + public string JavaPackage + { + get => __pbn__JavaPackage ?? ""; + set => __pbn__JavaPackage = value; + } + public bool ShouldSerializeJavaPackage() => __pbn__JavaPackage != null; + public void ResetJavaPackage() => __pbn__JavaPackage = null; + private string __pbn__JavaPackage; + + [global::ProtoBuf.ProtoMember(8, Name = @"java_outer_classname")] + [global::System.ComponentModel.DefaultValue("")] + public string JavaOuterClassname + { + get => __pbn__JavaOuterClassname ?? ""; + set => __pbn__JavaOuterClassname = value; + } + public bool ShouldSerializeJavaOuterClassname() => __pbn__JavaOuterClassname != null; + public void ResetJavaOuterClassname() => __pbn__JavaOuterClassname = null; + private string __pbn__JavaOuterClassname; + + [global::ProtoBuf.ProtoMember(10, Name = @"java_multiple_files")] + [global::System.ComponentModel.DefaultValue(false)] + public bool JavaMultipleFiles + { + get => __pbn__JavaMultipleFiles ?? false; + set => __pbn__JavaMultipleFiles = value; + } + public bool ShouldSerializeJavaMultipleFiles() => __pbn__JavaMultipleFiles != null; + public void ResetJavaMultipleFiles() => __pbn__JavaMultipleFiles = null; + private bool? __pbn__JavaMultipleFiles; + + [global::ProtoBuf.ProtoMember(20, Name = @"java_generate_equals_and_hash")] + [global::System.Obsolete] + public bool JavaGenerateEqualsAndHash + { + get => __pbn__JavaGenerateEqualsAndHash.GetValueOrDefault(); + set => __pbn__JavaGenerateEqualsAndHash = value; + } + public bool ShouldSerializeJavaGenerateEqualsAndHash() => __pbn__JavaGenerateEqualsAndHash != null; + public void ResetJavaGenerateEqualsAndHash() => __pbn__JavaGenerateEqualsAndHash = null; + private bool? __pbn__JavaGenerateEqualsAndHash; + + [global::ProtoBuf.ProtoMember(27, Name = @"java_string_check_utf8")] + [global::System.ComponentModel.DefaultValue(false)] + public bool JavaStringCheckUtf8 + { + get => __pbn__JavaStringCheckUtf8 ?? false; + set => __pbn__JavaStringCheckUtf8 = value; + } + public bool ShouldSerializeJavaStringCheckUtf8() => __pbn__JavaStringCheckUtf8 != null; + public void ResetJavaStringCheckUtf8() => __pbn__JavaStringCheckUtf8 = null; + private bool? __pbn__JavaStringCheckUtf8; + + [global::ProtoBuf.ProtoMember(9, Name = @"optimize_for")] + [global::System.ComponentModel.DefaultValue(OptimizeMode.Speed)] + public OptimizeMode OptimizeFor + { + get => __pbn__OptimizeFor ?? OptimizeMode.Speed; + set => __pbn__OptimizeFor = value; + } + public bool ShouldSerializeOptimizeFor() => __pbn__OptimizeFor != null; + public void ResetOptimizeFor() => __pbn__OptimizeFor = null; + private OptimizeMode? __pbn__OptimizeFor; + + [global::ProtoBuf.ProtoMember(11, Name = @"go_package")] + [global::System.ComponentModel.DefaultValue("")] + public string GoPackage + { + get => __pbn__GoPackage ?? ""; + set => __pbn__GoPackage = value; + } + public bool ShouldSerializeGoPackage() => __pbn__GoPackage != null; + public void ResetGoPackage() => __pbn__GoPackage = null; + private string __pbn__GoPackage; + + [global::ProtoBuf.ProtoMember(16, Name = @"cc_generic_services")] + [global::System.ComponentModel.DefaultValue(false)] + public bool CcGenericServices + { + get => __pbn__CcGenericServices ?? false; + set => __pbn__CcGenericServices = value; + } + public bool ShouldSerializeCcGenericServices() => __pbn__CcGenericServices != null; + public void ResetCcGenericServices() => __pbn__CcGenericServices = null; + private bool? __pbn__CcGenericServices; + + [global::ProtoBuf.ProtoMember(17, Name = @"java_generic_services")] + [global::System.ComponentModel.DefaultValue(false)] + public bool JavaGenericServices + { + get => __pbn__JavaGenericServices ?? false; + set => __pbn__JavaGenericServices = value; + } + public bool ShouldSerializeJavaGenericServices() => __pbn__JavaGenericServices != null; + public void ResetJavaGenericServices() => __pbn__JavaGenericServices = null; + private bool? __pbn__JavaGenericServices; + + [global::ProtoBuf.ProtoMember(18, Name = @"py_generic_services")] + [global::System.ComponentModel.DefaultValue(false)] + public bool PyGenericServices + { + get => __pbn__PyGenericServices ?? false; + set => __pbn__PyGenericServices = value; + } + public bool ShouldSerializePyGenericServices() => __pbn__PyGenericServices != null; + public void ResetPyGenericServices() => __pbn__PyGenericServices = null; + private bool? __pbn__PyGenericServices; + + [global::ProtoBuf.ProtoMember(42, Name = @"php_generic_services")] + [global::System.ComponentModel.DefaultValue(false)] + public bool PhpGenericServices + { + get => __pbn__PhpGenericServices ?? false; + set => __pbn__PhpGenericServices = value; + } + public bool ShouldSerializePhpGenericServices() => __pbn__PhpGenericServices != null; + public void ResetPhpGenericServices() => __pbn__PhpGenericServices = null; + private bool? __pbn__PhpGenericServices; + + [global::ProtoBuf.ProtoMember(23, Name = @"deprecated")] + [global::System.ComponentModel.DefaultValue(false)] + public bool Deprecated + { + get => __pbn__Deprecated ?? false; + set => __pbn__Deprecated = value; + } + public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null; + public void ResetDeprecated() => __pbn__Deprecated = null; + private bool? __pbn__Deprecated; + + [global::ProtoBuf.ProtoMember(31, Name = @"cc_enable_arenas")] + [global::System.ComponentModel.DefaultValue(true)] + public bool CcEnableArenas + { + get => __pbn__CcEnableArenas ?? true; + set => __pbn__CcEnableArenas = value; + } + public bool ShouldSerializeCcEnableArenas() => __pbn__CcEnableArenas != null; + public void ResetCcEnableArenas() => __pbn__CcEnableArenas = null; + private bool? __pbn__CcEnableArenas; + + [global::ProtoBuf.ProtoMember(36, Name = @"objc_class_prefix")] + [global::System.ComponentModel.DefaultValue("")] + public string ObjcClassPrefix + { + get => __pbn__ObjcClassPrefix ?? ""; + set => __pbn__ObjcClassPrefix = value; + } + public bool ShouldSerializeObjcClassPrefix() => __pbn__ObjcClassPrefix != null; + public void ResetObjcClassPrefix() => __pbn__ObjcClassPrefix = null; + private string __pbn__ObjcClassPrefix; + + [global::ProtoBuf.ProtoMember(37, Name = @"csharp_namespace")] + [global::System.ComponentModel.DefaultValue("")] + public string CsharpNamespace + { + get => __pbn__CsharpNamespace ?? ""; + set => __pbn__CsharpNamespace = value; + } + public bool ShouldSerializeCsharpNamespace() => __pbn__CsharpNamespace != null; + public void ResetCsharpNamespace() => __pbn__CsharpNamespace = null; + private string __pbn__CsharpNamespace; + + [global::ProtoBuf.ProtoMember(39, Name = @"swift_prefix")] + [global::System.ComponentModel.DefaultValue("")] + public string SwiftPrefix + { + get => __pbn__SwiftPrefix ?? ""; + set => __pbn__SwiftPrefix = value; + } + public bool ShouldSerializeSwiftPrefix() => __pbn__SwiftPrefix != null; + public void ResetSwiftPrefix() => __pbn__SwiftPrefix = null; + private string __pbn__SwiftPrefix; + + [global::ProtoBuf.ProtoMember(40, Name = @"php_class_prefix")] + [global::System.ComponentModel.DefaultValue("")] + public string PhpClassPrefix + { + get => __pbn__PhpClassPrefix ?? ""; + set => __pbn__PhpClassPrefix = value; + } + public bool ShouldSerializePhpClassPrefix() => __pbn__PhpClassPrefix != null; + public void ResetPhpClassPrefix() => __pbn__PhpClassPrefix = null; + private string __pbn__PhpClassPrefix; + + [global::ProtoBuf.ProtoMember(41, Name = @"php_namespace")] + [global::System.ComponentModel.DefaultValue("")] + public string PhpNamespace + { + get => __pbn__PhpNamespace ?? ""; + set => __pbn__PhpNamespace = value; + } + public bool ShouldSerializePhpNamespace() => __pbn__PhpNamespace != null; + public void ResetPhpNamespace() => __pbn__PhpNamespace = null; + private string __pbn__PhpNamespace; + + [global::ProtoBuf.ProtoMember(44, Name = @"php_metadata_namespace")] + [global::System.ComponentModel.DefaultValue("")] + public string PhpMetadataNamespace + { + get => __pbn__PhpMetadataNamespace ?? ""; + set => __pbn__PhpMetadataNamespace = value; + } + public bool ShouldSerializePhpMetadataNamespace() => __pbn__PhpMetadataNamespace != null; + public void ResetPhpMetadataNamespace() => __pbn__PhpMetadataNamespace = null; + private string __pbn__PhpMetadataNamespace; + + [global::ProtoBuf.ProtoMember(45, Name = @"ruby_package")] + [global::System.ComponentModel.DefaultValue("")] + public string RubyPackage + { + get => __pbn__RubyPackage ?? ""; + set => __pbn__RubyPackage = value; + } + public bool ShouldSerializeRubyPackage() => __pbn__RubyPackage != null; + public void ResetRubyPackage() => __pbn__RubyPackage = null; + private string __pbn__RubyPackage; + + [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")] + public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoContract()] + public enum OptimizeMode + { + [global::ProtoBuf.ProtoEnum(Name = @"SPEED")] + Speed = 1, + [global::ProtoBuf.ProtoEnum(Name = @"CODE_SIZE")] + CodeSize = 2, + [global::ProtoBuf.ProtoEnum(Name = @"LITE_RUNTIME")] + LiteRuntime = 3, + } + + } + + [global::ProtoBuf.ProtoContract()] + public partial class MessageOptions : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"message_set_wire_format")] + [global::System.ComponentModel.DefaultValue(false)] + public bool MessageSetWireFormat + { + get => __pbn__MessageSetWireFormat ?? false; + set => __pbn__MessageSetWireFormat = value; + } + public bool ShouldSerializeMessageSetWireFormat() => __pbn__MessageSetWireFormat != null; + public void ResetMessageSetWireFormat() => __pbn__MessageSetWireFormat = null; + private bool? __pbn__MessageSetWireFormat; + + [global::ProtoBuf.ProtoMember(2, Name = @"no_standard_descriptor_accessor")] + [global::System.ComponentModel.DefaultValue(false)] + public bool NoStandardDescriptorAccessor + { + get => __pbn__NoStandardDescriptorAccessor ?? false; + set => __pbn__NoStandardDescriptorAccessor = value; + } + public bool ShouldSerializeNoStandardDescriptorAccessor() => __pbn__NoStandardDescriptorAccessor != null; + public void ResetNoStandardDescriptorAccessor() => __pbn__NoStandardDescriptorAccessor = null; + private bool? __pbn__NoStandardDescriptorAccessor; + + [global::ProtoBuf.ProtoMember(3, Name = @"deprecated")] + [global::System.ComponentModel.DefaultValue(false)] + public bool Deprecated + { + get => __pbn__Deprecated ?? false; + set => __pbn__Deprecated = value; + } + public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null; + public void ResetDeprecated() => __pbn__Deprecated = null; + private bool? __pbn__Deprecated; + + [global::ProtoBuf.ProtoMember(7, Name = @"map_entry")] + public bool MapEntry + { + get => __pbn__MapEntry.GetValueOrDefault(); + set => __pbn__MapEntry = value; + } + public bool ShouldSerializeMapEntry() => __pbn__MapEntry != null; + public void ResetMapEntry() => __pbn__MapEntry = null; + private bool? __pbn__MapEntry; + + [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")] + public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List(); + + } + + [global::ProtoBuf.ProtoContract()] + public partial class FieldOptions : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"ctype")] + [global::System.ComponentModel.DefaultValue(CType.String)] + public CType Ctype + { + get => __pbn__Ctype ?? CType.String; + set => __pbn__Ctype = value; + } + public bool ShouldSerializeCtype() => __pbn__Ctype != null; + public void ResetCtype() => __pbn__Ctype = null; + private CType? __pbn__Ctype; + + [global::ProtoBuf.ProtoMember(2, Name = @"packed")] + public bool Packed + { + get => __pbn__Packed.GetValueOrDefault(); + set => __pbn__Packed = value; + } + public bool ShouldSerializePacked() => __pbn__Packed != null; + public void ResetPacked() => __pbn__Packed = null; + private bool? __pbn__Packed; + + [global::ProtoBuf.ProtoMember(6, Name = @"jstype")] + [global::System.ComponentModel.DefaultValue(JSType.JsNormal)] + public JSType Jstype + { + get => __pbn__Jstype ?? JSType.JsNormal; + set => __pbn__Jstype = value; + } + public bool ShouldSerializeJstype() => __pbn__Jstype != null; + public void ResetJstype() => __pbn__Jstype = null; + private JSType? __pbn__Jstype; + + [global::ProtoBuf.ProtoMember(5, Name = @"lazy")] + [global::System.ComponentModel.DefaultValue(false)] + public bool Lazy + { + get => __pbn__Lazy ?? false; + set => __pbn__Lazy = value; + } + public bool ShouldSerializeLazy() => __pbn__Lazy != null; + public void ResetLazy() => __pbn__Lazy = null; + private bool? __pbn__Lazy; + + [global::ProtoBuf.ProtoMember(3, Name = @"deprecated")] + [global::System.ComponentModel.DefaultValue(false)] + public bool Deprecated + { + get => __pbn__Deprecated ?? false; + set => __pbn__Deprecated = value; + } + public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null; + public void ResetDeprecated() => __pbn__Deprecated = null; + private bool? __pbn__Deprecated; + + [global::ProtoBuf.ProtoMember(10, Name = @"weak")] + [global::System.ComponentModel.DefaultValue(false)] + public bool Weak + { + get => __pbn__Weak ?? false; + set => __pbn__Weak = value; + } + public bool ShouldSerializeWeak() => __pbn__Weak != null; + public void ResetWeak() => __pbn__Weak = null; + private bool? __pbn__Weak; + + [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")] + public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoContract()] + public enum CType + { + [global::ProtoBuf.ProtoEnum(Name = @"STRING")] + String = 0, + [global::ProtoBuf.ProtoEnum(Name = @"CORD")] + Cord = 1, + [global::ProtoBuf.ProtoEnum(Name = @"STRING_PIECE")] + StringPiece = 2, + } + + [global::ProtoBuf.ProtoContract()] + public enum JSType + { + [global::ProtoBuf.ProtoEnum(Name = @"JS_NORMAL")] + JsNormal = 0, + [global::ProtoBuf.ProtoEnum(Name = @"JS_STRING")] + JsString = 1, + [global::ProtoBuf.ProtoEnum(Name = @"JS_NUMBER")] + JsNumber = 2, + } + + } + + [global::ProtoBuf.ProtoContract()] + public partial class OneofOptions : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")] + public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List(); + + } + + [global::ProtoBuf.ProtoContract()] + public partial class EnumOptions : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(2, Name = @"allow_alias")] + public bool AllowAlias + { + get => __pbn__AllowAlias.GetValueOrDefault(); + set => __pbn__AllowAlias = value; + } + public bool ShouldSerializeAllowAlias() => __pbn__AllowAlias != null; + public void ResetAllowAlias() => __pbn__AllowAlias = null; + private bool? __pbn__AllowAlias; + + [global::ProtoBuf.ProtoMember(3, Name = @"deprecated")] + [global::System.ComponentModel.DefaultValue(false)] + public bool Deprecated + { + get => __pbn__Deprecated ?? false; + set => __pbn__Deprecated = value; + } + public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null; + public void ResetDeprecated() => __pbn__Deprecated = null; + private bool? __pbn__Deprecated; + + [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")] + public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List(); + + } + + [global::ProtoBuf.ProtoContract()] + public partial class EnumValueOptions : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"deprecated")] + [global::System.ComponentModel.DefaultValue(false)] + public bool Deprecated + { + get => __pbn__Deprecated ?? false; + set => __pbn__Deprecated = value; + } + public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null; + public void ResetDeprecated() => __pbn__Deprecated = null; + private bool? __pbn__Deprecated; + + [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")] + public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List(); + + } + + [global::ProtoBuf.ProtoContract()] + public partial class ServiceOptions : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(33, Name = @"deprecated")] + [global::System.ComponentModel.DefaultValue(false)] + public bool Deprecated + { + get => __pbn__Deprecated ?? false; + set => __pbn__Deprecated = value; + } + public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null; + public void ResetDeprecated() => __pbn__Deprecated = null; + private bool? __pbn__Deprecated; + + [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")] + public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List(); + + } + + [global::ProtoBuf.ProtoContract()] + public partial class MethodOptions : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(33, Name = @"deprecated")] + [global::System.ComponentModel.DefaultValue(false)] + public bool Deprecated + { + get => __pbn__Deprecated ?? false; + set => __pbn__Deprecated = value; + } + public bool ShouldSerializeDeprecated() => __pbn__Deprecated != null; + public void ResetDeprecated() => __pbn__Deprecated = null; + private bool? __pbn__Deprecated; + + [global::ProtoBuf.ProtoMember(34)] + [global::System.ComponentModel.DefaultValue(IdempotencyLevel.IdempotencyUnknown)] + public IdempotencyLevel idempotency_level + { + get => __pbn__idempotency_level ?? IdempotencyLevel.IdempotencyUnknown; + set => __pbn__idempotency_level = value; + } + public bool ShouldSerializeidempotency_level() => __pbn__idempotency_level != null; + public void Resetidempotency_level() => __pbn__idempotency_level = null; + private IdempotencyLevel? __pbn__idempotency_level; + + [global::ProtoBuf.ProtoMember(999, Name = @"uninterpreted_option")] + public global::System.Collections.Generic.List UninterpretedOptions { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoContract()] + public enum IdempotencyLevel + { + [global::ProtoBuf.ProtoEnum(Name = @"IDEMPOTENCY_UNKNOWN")] + IdempotencyUnknown = 0, + [global::ProtoBuf.ProtoEnum(Name = @"NO_SIDE_EFFECTS")] + NoSideEffects = 1, + [global::ProtoBuf.ProtoEnum(Name = @"IDEMPOTENT")] + Idempotent = 2, + } + + } + + [global::ProtoBuf.ProtoContract()] + public partial class UninterpretedOption : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(2, Name = @"name")] + public global::System.Collections.Generic.List Names { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoMember(3, Name = @"identifier_value")] + [global::System.ComponentModel.DefaultValue("")] + public string IdentifierValue + { + get => __pbn__IdentifierValue ?? ""; + set => __pbn__IdentifierValue = value; + } + public bool ShouldSerializeIdentifierValue() => __pbn__IdentifierValue != null; + public void ResetIdentifierValue() => __pbn__IdentifierValue = null; + private string __pbn__IdentifierValue; + + [global::ProtoBuf.ProtoMember(4, Name = @"positive_int_value")] + public ulong PositiveIntValue + { + get => __pbn__PositiveIntValue.GetValueOrDefault(); + set => __pbn__PositiveIntValue = value; + } + public bool ShouldSerializePositiveIntValue() => __pbn__PositiveIntValue != null; + public void ResetPositiveIntValue() => __pbn__PositiveIntValue = null; + private ulong? __pbn__PositiveIntValue; + + [global::ProtoBuf.ProtoMember(5, Name = @"negative_int_value")] + public long NegativeIntValue + { + get => __pbn__NegativeIntValue.GetValueOrDefault(); + set => __pbn__NegativeIntValue = value; + } + public bool ShouldSerializeNegativeIntValue() => __pbn__NegativeIntValue != null; + public void ResetNegativeIntValue() => __pbn__NegativeIntValue = null; + private long? __pbn__NegativeIntValue; + + [global::ProtoBuf.ProtoMember(6, Name = @"double_value")] + public double DoubleValue + { + get => __pbn__DoubleValue.GetValueOrDefault(); + set => __pbn__DoubleValue = value; + } + public bool ShouldSerializeDoubleValue() => __pbn__DoubleValue != null; + public void ResetDoubleValue() => __pbn__DoubleValue = null; + private double? __pbn__DoubleValue; + + [global::ProtoBuf.ProtoMember(7, Name = @"string_value")] + public byte[] StringValue + { + get => __pbn__StringValue; + set => __pbn__StringValue = value; + } + public bool ShouldSerializeStringValue() => __pbn__StringValue != null; + public void ResetStringValue() => __pbn__StringValue = null; + private byte[] __pbn__StringValue; + + [global::ProtoBuf.ProtoMember(8, Name = @"aggregate_value")] + [global::System.ComponentModel.DefaultValue("")] + public string AggregateValue + { + get => __pbn__AggregateValue ?? ""; + set => __pbn__AggregateValue = value; + } + public bool ShouldSerializeAggregateValue() => __pbn__AggregateValue != null; + public void ResetAggregateValue() => __pbn__AggregateValue = null; + private string __pbn__AggregateValue; + + [global::ProtoBuf.ProtoContract()] + public partial class NamePart : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, IsRequired = true)] + public string name_part { get; set; } + + [global::ProtoBuf.ProtoMember(2, Name = @"is_extension", IsRequired = true)] + public bool IsExtension { get; set; } + + } + + } + + [global::ProtoBuf.ProtoContract()] + public partial class SourceCodeInfo : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"location")] + public global::System.Collections.Generic.List Locations { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoContract()] + public partial class Location : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"path", IsPacked = true)] + public int[] Paths { get; set; } + + [global::ProtoBuf.ProtoMember(2, Name = @"span", IsPacked = true)] + public int[] Spans { get; set; } + + [global::ProtoBuf.ProtoMember(3, Name = @"leading_comments")] + [global::System.ComponentModel.DefaultValue("")] + public string LeadingComments + { + get => __pbn__LeadingComments ?? ""; + set => __pbn__LeadingComments = value; + } + public bool ShouldSerializeLeadingComments() => __pbn__LeadingComments != null; + public void ResetLeadingComments() => __pbn__LeadingComments = null; + private string __pbn__LeadingComments; + + [global::ProtoBuf.ProtoMember(4, Name = @"trailing_comments")] + [global::System.ComponentModel.DefaultValue("")] + public string TrailingComments + { + get => __pbn__TrailingComments ?? ""; + set => __pbn__TrailingComments = value; + } + public bool ShouldSerializeTrailingComments() => __pbn__TrailingComments != null; + public void ResetTrailingComments() => __pbn__TrailingComments = null; + private string __pbn__TrailingComments; + + [global::ProtoBuf.ProtoMember(6, Name = @"leading_detached_comments")] + public global::System.Collections.Generic.List LeadingDetachedComments { get; } = new global::System.Collections.Generic.List(); + + } + + } + + [global::ProtoBuf.ProtoContract()] + public partial class GeneratedCodeInfo : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"annotation")] + public global::System.Collections.Generic.List Annotations { get; } = new global::System.Collections.Generic.List(); + + [global::ProtoBuf.ProtoContract()] + public partial class Annotation : global::ProtoBuf.IExtensible + { + private global::ProtoBuf.IExtension __pbn__extensionData; + global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing) + => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing); + + [global::ProtoBuf.ProtoMember(1, Name = @"path", IsPacked = true)] + public int[] Paths { get; set; } + + [global::ProtoBuf.ProtoMember(2, Name = @"source_file")] + [global::System.ComponentModel.DefaultValue("")] + public string SourceFile + { + get => __pbn__SourceFile ?? ""; + set => __pbn__SourceFile = value; + } + public bool ShouldSerializeSourceFile() => __pbn__SourceFile != null; + public void ResetSourceFile() => __pbn__SourceFile = null; + private string __pbn__SourceFile; + + [global::ProtoBuf.ProtoMember(3, Name = @"begin")] + public int Begin + { + get => __pbn__Begin.GetValueOrDefault(); + set => __pbn__Begin = value; + } + public bool ShouldSerializeBegin() => __pbn__Begin != null; + public void ResetBegin() => __pbn__Begin = null; + private int? __pbn__Begin; + + [global::ProtoBuf.ProtoMember(4, Name = @"end")] + public int End + { + get => __pbn__End.GetValueOrDefault(); + set => __pbn__End = value; + } + public bool ShouldSerializeEnd() => __pbn__End != null; + public void ResetEnd() => __pbn__End = null; + private int? __pbn__End; + + } + + } + +} + +#pragma warning restore CS0612, CS0618, CS1591, CS3021, IDE0079, IDE1006, RCS1036, RCS1057, RCS1085, RCS1192 +#endregion + diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/Reflection.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/Reflection.cs new file mode 100644 index 0000000..b371c75 --- /dev/null +++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/Reflection.cs @@ -0,0 +1,1669 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: reflection.proto +// +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Grpc.Reflection.V1Alpha { + + /// Holder for reflection information generated from reflection.proto + public static partial class ReflectionReflection { + + #region Descriptor + /// File descriptor for reflection.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ReflectionReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "ChByZWZsZWN0aW9uLnByb3RvEhdncnBjLnJlZmxlY3Rpb24udjFhbHBoYSKK", + "AgoXU2VydmVyUmVmbGVjdGlvblJlcXVlc3QSDAoEaG9zdBgBIAEoCRIaChBm", + "aWxlX2J5X2ZpbGVuYW1lGAMgASgJSAASIAoWZmlsZV9jb250YWluaW5nX3N5", + "bWJvbBgEIAEoCUgAEk4KGWZpbGVfY29udGFpbmluZ19leHRlbnNpb24YBSAB", + "KAsyKS5ncnBjLnJlZmxlY3Rpb24udjFhbHBoYS5FeHRlbnNpb25SZXF1ZXN0", + "SAASJwodYWxsX2V4dGVuc2lvbl9udW1iZXJzX29mX3R5cGUYBiABKAlIABIX", + "Cg1saXN0X3NlcnZpY2VzGAcgASgJSABCEQoPbWVzc2FnZV9yZXF1ZXN0IkUK", + "EEV4dGVuc2lvblJlcXVlc3QSFwoPY29udGFpbmluZ190eXBlGAEgASgJEhgK", + "EGV4dGVuc2lvbl9udW1iZXIYAiABKAUi0QMKGFNlcnZlclJlZmxlY3Rpb25S", + "ZXNwb25zZRISCgp2YWxpZF9ob3N0GAEgASgJEkoKEG9yaWdpbmFsX3JlcXVl", + "c3QYAiABKAsyMC5ncnBjLnJlZmxlY3Rpb24udjFhbHBoYS5TZXJ2ZXJSZWZs", + "ZWN0aW9uUmVxdWVzdBJTChhmaWxlX2Rlc2NyaXB0b3JfcmVzcG9uc2UYBCAB", + "KAsyLy5ncnBjLnJlZmxlY3Rpb24udjFhbHBoYS5GaWxlRGVzY3JpcHRvclJl", + "c3BvbnNlSAASWgoeYWxsX2V4dGVuc2lvbl9udW1iZXJzX3Jlc3BvbnNlGAUg", + "ASgLMjAuZ3JwYy5yZWZsZWN0aW9uLnYxYWxwaGEuRXh0ZW5zaW9uTnVtYmVy", + "UmVzcG9uc2VIABJOChZsaXN0X3NlcnZpY2VzX3Jlc3BvbnNlGAYgASgLMiwu", + "Z3JwYy5yZWZsZWN0aW9uLnYxYWxwaGEuTGlzdFNlcnZpY2VSZXNwb25zZUgA", + "EkAKDmVycm9yX3Jlc3BvbnNlGAcgASgLMiYuZ3JwYy5yZWZsZWN0aW9uLnYx", + "YWxwaGEuRXJyb3JSZXNwb25zZUgAQhIKEG1lc3NhZ2VfcmVzcG9uc2UiNwoW", + "RmlsZURlc2NyaXB0b3JSZXNwb25zZRIdChVmaWxlX2Rlc2NyaXB0b3JfcHJv", + "dG8YASADKAwiSwoXRXh0ZW5zaW9uTnVtYmVyUmVzcG9uc2USFgoOYmFzZV90", + "eXBlX25hbWUYASABKAkSGAoQZXh0ZW5zaW9uX251bWJlchgCIAMoBSJQChNM", + "aXN0U2VydmljZVJlc3BvbnNlEjkKB3NlcnZpY2UYASADKAsyKC5ncnBjLnJl", + "ZmxlY3Rpb24udjFhbHBoYS5TZXJ2aWNlUmVzcG9uc2UiHwoPU2VydmljZVJl", + "c3BvbnNlEgwKBG5hbWUYASABKAkiOgoNRXJyb3JSZXNwb25zZRISCgplcnJv", + "cl9jb2RlGAEgASgFEhUKDWVycm9yX21lc3NhZ2UYAiABKAkykwEKEFNlcnZl", + "clJlZmxlY3Rpb24SfwoUU2VydmVyUmVmbGVjdGlvbkluZm8SMC5ncnBjLnJl", + "ZmxlY3Rpb24udjFhbHBoYS5TZXJ2ZXJSZWZsZWN0aW9uUmVxdWVzdBoxLmdy", + "cGMucmVmbGVjdGlvbi52MWFscGhhLlNlcnZlclJlZmxlY3Rpb25SZXNwb25z", + "ZSgBMAFiBnByb3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ServerReflectionRequest), global::Grpc.Reflection.V1Alpha.ServerReflectionRequest.Parser, new[]{ "Host", "FileByFilename", "FileContainingSymbol", "FileContainingExtension", "AllExtensionNumbersOfType", "ListServices" }, new[]{ "MessageRequest" }, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ExtensionRequest), global::Grpc.Reflection.V1Alpha.ExtensionRequest.Parser, new[]{ "ContainingType", "ExtensionNumber" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ServerReflectionResponse), global::Grpc.Reflection.V1Alpha.ServerReflectionResponse.Parser, new[]{ "ValidHost", "OriginalRequest", "FileDescriptorResponse", "AllExtensionNumbersResponse", "ListServicesResponse", "ErrorResponse" }, new[]{ "MessageResponse" }, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.FileDescriptorResponse), global::Grpc.Reflection.V1Alpha.FileDescriptorResponse.Parser, new[]{ "FileDescriptorProto" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse), global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse.Parser, new[]{ "BaseTypeName", "ExtensionNumber" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ListServiceResponse), global::Grpc.Reflection.V1Alpha.ListServiceResponse.Parser, new[]{ "Service" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ServiceResponse), global::Grpc.Reflection.V1Alpha.ServiceResponse.Parser, new[]{ "Name" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Grpc.Reflection.V1Alpha.ErrorResponse), global::Grpc.Reflection.V1Alpha.ErrorResponse.Parser, new[]{ "ErrorCode", "ErrorMessage" }, null, null, null) + })); + } + #endregion + + } + #region Messages + /// + /// The message sent by the client when calling ServerReflectionInfo method. + /// + public sealed partial class ServerReflectionRequest : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ServerReflectionRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ServerReflectionRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ServerReflectionRequest(ServerReflectionRequest other) : this() { + host_ = other.host_; + switch (other.MessageRequestCase) { + case MessageRequestOneofCase.FileByFilename: + FileByFilename = other.FileByFilename; + break; + case MessageRequestOneofCase.FileContainingSymbol: + FileContainingSymbol = other.FileContainingSymbol; + break; + case MessageRequestOneofCase.FileContainingExtension: + FileContainingExtension = other.FileContainingExtension.Clone(); + break; + case MessageRequestOneofCase.AllExtensionNumbersOfType: + AllExtensionNumbersOfType = other.AllExtensionNumbersOfType; + break; + case MessageRequestOneofCase.ListServices: + ListServices = other.ListServices; + break; + } + + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ServerReflectionRequest Clone() { + return new ServerReflectionRequest(this); + } + + /// Field number for the "host" field. + public const int HostFieldNumber = 1; + private string host_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Host { + get { return host_; } + set { + host_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "file_by_filename" field. + public const int FileByFilenameFieldNumber = 3; + /// + /// Find a proto file by the file name. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string FileByFilename { + get { return messageRequestCase_ == MessageRequestOneofCase.FileByFilename ? (string) messageRequest_ : ""; } + set { + messageRequest_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + messageRequestCase_ = MessageRequestOneofCase.FileByFilename; + } + } + + /// Field number for the "file_containing_symbol" field. + public const int FileContainingSymbolFieldNumber = 4; + /// + /// Find the proto file that declares the given fully-qualified symbol name. + /// This field should be a fully-qualified symbol name + /// (e.g. <package>.<service>[.<method>] or <package>.<type>). + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string FileContainingSymbol { + get { return messageRequestCase_ == MessageRequestOneofCase.FileContainingSymbol ? (string) messageRequest_ : ""; } + set { + messageRequest_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + messageRequestCase_ = MessageRequestOneofCase.FileContainingSymbol; + } + } + + /// Field number for the "file_containing_extension" field. + public const int FileContainingExtensionFieldNumber = 5; + /// + /// Find the proto file which defines an extension extending the given + /// message type with the given field number. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Grpc.Reflection.V1Alpha.ExtensionRequest FileContainingExtension { + get { return messageRequestCase_ == MessageRequestOneofCase.FileContainingExtension ? (global::Grpc.Reflection.V1Alpha.ExtensionRequest) messageRequest_ : null; } + set { + messageRequest_ = value; + messageRequestCase_ = value == null ? MessageRequestOneofCase.None : MessageRequestOneofCase.FileContainingExtension; + } + } + + /// Field number for the "all_extension_numbers_of_type" field. + public const int AllExtensionNumbersOfTypeFieldNumber = 6; + /// + /// Finds the tag numbers used by all known extensions of the given message + /// type, and appends them to ExtensionNumberResponse in an undefined order. + /// Its corresponding method is best-effort: it's not guaranteed that the + /// reflection service will implement this method, and it's not guaranteed + /// that this method will provide all extensions. Returns + /// StatusCode::UNIMPLEMENTED if it's not implemented. + /// This field should be a fully-qualified type name. The format is + /// <package>.<type> + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string AllExtensionNumbersOfType { + get { return messageRequestCase_ == MessageRequestOneofCase.AllExtensionNumbersOfType ? (string) messageRequest_ : ""; } + set { + messageRequest_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + messageRequestCase_ = MessageRequestOneofCase.AllExtensionNumbersOfType; + } + } + + /// Field number for the "list_services" field. + public const int ListServicesFieldNumber = 7; + /// + /// List the full names of registered services. The content will not be + /// checked. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string ListServices { + get { return messageRequestCase_ == MessageRequestOneofCase.ListServices ? (string) messageRequest_ : ""; } + set { + messageRequest_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + messageRequestCase_ = MessageRequestOneofCase.ListServices; + } + } + + private object messageRequest_; + /// Enum of possible cases for the "message_request" oneof. + public enum MessageRequestOneofCase { + None = 0, + FileByFilename = 3, + FileContainingSymbol = 4, + FileContainingExtension = 5, + AllExtensionNumbersOfType = 6, + ListServices = 7, + } + private MessageRequestOneofCase messageRequestCase_ = MessageRequestOneofCase.None; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public MessageRequestOneofCase MessageRequestCase { + get { return messageRequestCase_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void ClearMessageRequest() { + messageRequestCase_ = MessageRequestOneofCase.None; + messageRequest_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ServerReflectionRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ServerReflectionRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Host != other.Host) return false; + if (FileByFilename != other.FileByFilename) return false; + if (FileContainingSymbol != other.FileContainingSymbol) return false; + if (!object.Equals(FileContainingExtension, other.FileContainingExtension)) return false; + if (AllExtensionNumbersOfType != other.AllExtensionNumbersOfType) return false; + if (ListServices != other.ListServices) return false; + if (MessageRequestCase != other.MessageRequestCase) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Host.Length != 0) hash ^= Host.GetHashCode(); + if (messageRequestCase_ == MessageRequestOneofCase.FileByFilename) hash ^= FileByFilename.GetHashCode(); + if (messageRequestCase_ == MessageRequestOneofCase.FileContainingSymbol) hash ^= FileContainingSymbol.GetHashCode(); + if (messageRequestCase_ == MessageRequestOneofCase.FileContainingExtension) hash ^= FileContainingExtension.GetHashCode(); + if (messageRequestCase_ == MessageRequestOneofCase.AllExtensionNumbersOfType) hash ^= AllExtensionNumbersOfType.GetHashCode(); + if (messageRequestCase_ == MessageRequestOneofCase.ListServices) hash ^= ListServices.GetHashCode(); + hash ^= (int) messageRequestCase_; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (Host.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Host); + } + if (messageRequestCase_ == MessageRequestOneofCase.FileByFilename) { + output.WriteRawTag(26); + output.WriteString(FileByFilename); + } + if (messageRequestCase_ == MessageRequestOneofCase.FileContainingSymbol) { + output.WriteRawTag(34); + output.WriteString(FileContainingSymbol); + } + if (messageRequestCase_ == MessageRequestOneofCase.FileContainingExtension) { + output.WriteRawTag(42); + output.WriteMessage(FileContainingExtension); + } + if (messageRequestCase_ == MessageRequestOneofCase.AllExtensionNumbersOfType) { + output.WriteRawTag(50); + output.WriteString(AllExtensionNumbersOfType); + } + if (messageRequestCase_ == MessageRequestOneofCase.ListServices) { + output.WriteRawTag(58); + output.WriteString(ListServices); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Host.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Host); + } + if (messageRequestCase_ == MessageRequestOneofCase.FileByFilename) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(FileByFilename); + } + if (messageRequestCase_ == MessageRequestOneofCase.FileContainingSymbol) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(FileContainingSymbol); + } + if (messageRequestCase_ == MessageRequestOneofCase.FileContainingExtension) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(FileContainingExtension); + } + if (messageRequestCase_ == MessageRequestOneofCase.AllExtensionNumbersOfType) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(AllExtensionNumbersOfType); + } + if (messageRequestCase_ == MessageRequestOneofCase.ListServices) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ListServices); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ServerReflectionRequest other) { + if (other == null) { + return; + } + if (other.Host.Length != 0) { + Host = other.Host; + } + switch (other.MessageRequestCase) { + case MessageRequestOneofCase.FileByFilename: + FileByFilename = other.FileByFilename; + break; + case MessageRequestOneofCase.FileContainingSymbol: + FileContainingSymbol = other.FileContainingSymbol; + break; + case MessageRequestOneofCase.FileContainingExtension: + if (FileContainingExtension == null) { + FileContainingExtension = new global::Grpc.Reflection.V1Alpha.ExtensionRequest(); + } + FileContainingExtension.MergeFrom(other.FileContainingExtension); + break; + case MessageRequestOneofCase.AllExtensionNumbersOfType: + AllExtensionNumbersOfType = other.AllExtensionNumbersOfType; + break; + case MessageRequestOneofCase.ListServices: + ListServices = other.ListServices; + break; + } + + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Host = input.ReadString(); + break; + } + case 26: { + FileByFilename = input.ReadString(); + break; + } + case 34: { + FileContainingSymbol = input.ReadString(); + break; + } + case 42: { + global::Grpc.Reflection.V1Alpha.ExtensionRequest subBuilder = new global::Grpc.Reflection.V1Alpha.ExtensionRequest(); + if (messageRequestCase_ == MessageRequestOneofCase.FileContainingExtension) { + subBuilder.MergeFrom(FileContainingExtension); + } + input.ReadMessage(subBuilder); + FileContainingExtension = subBuilder; + break; + } + case 50: { + AllExtensionNumbersOfType = input.ReadString(); + break; + } + case 58: { + ListServices = input.ReadString(); + break; + } + } + } + } + + } + + /// + /// The type name and extension number sent by the client when requesting + /// file_containing_extension. + /// + public sealed partial class ExtensionRequest : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ExtensionRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ExtensionRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ExtensionRequest(ExtensionRequest other) : this() { + containingType_ = other.containingType_; + extensionNumber_ = other.extensionNumber_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ExtensionRequest Clone() { + return new ExtensionRequest(this); + } + + /// Field number for the "containing_type" field. + public const int ContainingTypeFieldNumber = 1; + private string containingType_ = ""; + /// + /// Fully-qualified type name. The format should be <package>.<type> + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string ContainingType { + get { return containingType_; } + set { + containingType_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "extension_number" field. + public const int ExtensionNumberFieldNumber = 2; + private int extensionNumber_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int ExtensionNumber { + get { return extensionNumber_; } + set { + extensionNumber_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ExtensionRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ExtensionRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (ContainingType != other.ContainingType) return false; + if (ExtensionNumber != other.ExtensionNumber) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (ContainingType.Length != 0) hash ^= ContainingType.GetHashCode(); + if (ExtensionNumber != 0) hash ^= ExtensionNumber.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (ContainingType.Length != 0) { + output.WriteRawTag(10); + output.WriteString(ContainingType); + } + if (ExtensionNumber != 0) { + output.WriteRawTag(16); + output.WriteInt32(ExtensionNumber); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (ContainingType.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ContainingType); + } + if (ExtensionNumber != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(ExtensionNumber); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ExtensionRequest other) { + if (other == null) { + return; + } + if (other.ContainingType.Length != 0) { + ContainingType = other.ContainingType; + } + if (other.ExtensionNumber != 0) { + ExtensionNumber = other.ExtensionNumber; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + ContainingType = input.ReadString(); + break; + } + case 16: { + ExtensionNumber = input.ReadInt32(); + break; + } + } + } + } + + } + + /// + /// The message sent by the server to answer ServerReflectionInfo method. + /// + public sealed partial class ServerReflectionResponse : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ServerReflectionResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ServerReflectionResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ServerReflectionResponse(ServerReflectionResponse other) : this() { + validHost_ = other.validHost_; + originalRequest_ = other.originalRequest_ != null ? other.originalRequest_.Clone() : null; + switch (other.MessageResponseCase) { + case MessageResponseOneofCase.FileDescriptorResponse: + FileDescriptorResponse = other.FileDescriptorResponse.Clone(); + break; + case MessageResponseOneofCase.AllExtensionNumbersResponse: + AllExtensionNumbersResponse = other.AllExtensionNumbersResponse.Clone(); + break; + case MessageResponseOneofCase.ListServicesResponse: + ListServicesResponse = other.ListServicesResponse.Clone(); + break; + case MessageResponseOneofCase.ErrorResponse: + ErrorResponse = other.ErrorResponse.Clone(); + break; + } + + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ServerReflectionResponse Clone() { + return new ServerReflectionResponse(this); + } + + /// Field number for the "valid_host" field. + public const int ValidHostFieldNumber = 1; + private string validHost_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string ValidHost { + get { return validHost_; } + set { + validHost_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "original_request" field. + public const int OriginalRequestFieldNumber = 2; + private global::Grpc.Reflection.V1Alpha.ServerReflectionRequest originalRequest_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Grpc.Reflection.V1Alpha.ServerReflectionRequest OriginalRequest { + get { return originalRequest_; } + set { + originalRequest_ = value; + } + } + + /// Field number for the "file_descriptor_response" field. + public const int FileDescriptorResponseFieldNumber = 4; + /// + /// This message is used to answer file_by_filename, file_containing_symbol, + /// file_containing_extension requests with transitive dependencies. As + /// the repeated label is not allowed in oneof fields, we use a + /// FileDescriptorResponse message to encapsulate the repeated fields. + /// The reflection service is allowed to avoid sending FileDescriptorProtos + /// that were previously sent in response to earlier requests in the stream. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Grpc.Reflection.V1Alpha.FileDescriptorResponse FileDescriptorResponse { + get { return messageResponseCase_ == MessageResponseOneofCase.FileDescriptorResponse ? (global::Grpc.Reflection.V1Alpha.FileDescriptorResponse) messageResponse_ : null; } + set { + messageResponse_ = value; + messageResponseCase_ = value == null ? MessageResponseOneofCase.None : MessageResponseOneofCase.FileDescriptorResponse; + } + } + + /// Field number for the "all_extension_numbers_response" field. + public const int AllExtensionNumbersResponseFieldNumber = 5; + /// + /// This message is used to answer all_extension_numbers_of_type requst. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse AllExtensionNumbersResponse { + get { return messageResponseCase_ == MessageResponseOneofCase.AllExtensionNumbersResponse ? (global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse) messageResponse_ : null; } + set { + messageResponse_ = value; + messageResponseCase_ = value == null ? MessageResponseOneofCase.None : MessageResponseOneofCase.AllExtensionNumbersResponse; + } + } + + /// Field number for the "list_services_response" field. + public const int ListServicesResponseFieldNumber = 6; + /// + /// This message is used to answer list_services request. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Grpc.Reflection.V1Alpha.ListServiceResponse ListServicesResponse { + get { return messageResponseCase_ == MessageResponseOneofCase.ListServicesResponse ? (global::Grpc.Reflection.V1Alpha.ListServiceResponse) messageResponse_ : null; } + set { + messageResponse_ = value; + messageResponseCase_ = value == null ? MessageResponseOneofCase.None : MessageResponseOneofCase.ListServicesResponse; + } + } + + /// Field number for the "error_response" field. + public const int ErrorResponseFieldNumber = 7; + /// + /// This message is used when an error occurs. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Grpc.Reflection.V1Alpha.ErrorResponse ErrorResponse { + get { return messageResponseCase_ == MessageResponseOneofCase.ErrorResponse ? (global::Grpc.Reflection.V1Alpha.ErrorResponse) messageResponse_ : null; } + set { + messageResponse_ = value; + messageResponseCase_ = value == null ? MessageResponseOneofCase.None : MessageResponseOneofCase.ErrorResponse; + } + } + + private object messageResponse_; + /// Enum of possible cases for the "message_response" oneof. + public enum MessageResponseOneofCase { + None = 0, + FileDescriptorResponse = 4, + AllExtensionNumbersResponse = 5, + ListServicesResponse = 6, + ErrorResponse = 7, + } + private MessageResponseOneofCase messageResponseCase_ = MessageResponseOneofCase.None; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public MessageResponseOneofCase MessageResponseCase { + get { return messageResponseCase_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void ClearMessageResponse() { + messageResponseCase_ = MessageResponseOneofCase.None; + messageResponse_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ServerReflectionResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ServerReflectionResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (ValidHost != other.ValidHost) return false; + if (!object.Equals(OriginalRequest, other.OriginalRequest)) return false; + if (!object.Equals(FileDescriptorResponse, other.FileDescriptorResponse)) return false; + if (!object.Equals(AllExtensionNumbersResponse, other.AllExtensionNumbersResponse)) return false; + if (!object.Equals(ListServicesResponse, other.ListServicesResponse)) return false; + if (!object.Equals(ErrorResponse, other.ErrorResponse)) return false; + if (MessageResponseCase != other.MessageResponseCase) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (ValidHost.Length != 0) hash ^= ValidHost.GetHashCode(); + if (originalRequest_ != null) hash ^= OriginalRequest.GetHashCode(); + if (messageResponseCase_ == MessageResponseOneofCase.FileDescriptorResponse) hash ^= FileDescriptorResponse.GetHashCode(); + if (messageResponseCase_ == MessageResponseOneofCase.AllExtensionNumbersResponse) hash ^= AllExtensionNumbersResponse.GetHashCode(); + if (messageResponseCase_ == MessageResponseOneofCase.ListServicesResponse) hash ^= ListServicesResponse.GetHashCode(); + if (messageResponseCase_ == MessageResponseOneofCase.ErrorResponse) hash ^= ErrorResponse.GetHashCode(); + hash ^= (int) messageResponseCase_; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (ValidHost.Length != 0) { + output.WriteRawTag(10); + output.WriteString(ValidHost); + } + if (originalRequest_ != null) { + output.WriteRawTag(18); + output.WriteMessage(OriginalRequest); + } + if (messageResponseCase_ == MessageResponseOneofCase.FileDescriptorResponse) { + output.WriteRawTag(34); + output.WriteMessage(FileDescriptorResponse); + } + if (messageResponseCase_ == MessageResponseOneofCase.AllExtensionNumbersResponse) { + output.WriteRawTag(42); + output.WriteMessage(AllExtensionNumbersResponse); + } + if (messageResponseCase_ == MessageResponseOneofCase.ListServicesResponse) { + output.WriteRawTag(50); + output.WriteMessage(ListServicesResponse); + } + if (messageResponseCase_ == MessageResponseOneofCase.ErrorResponse) { + output.WriteRawTag(58); + output.WriteMessage(ErrorResponse); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (ValidHost.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ValidHost); + } + if (originalRequest_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(OriginalRequest); + } + if (messageResponseCase_ == MessageResponseOneofCase.FileDescriptorResponse) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(FileDescriptorResponse); + } + if (messageResponseCase_ == MessageResponseOneofCase.AllExtensionNumbersResponse) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(AllExtensionNumbersResponse); + } + if (messageResponseCase_ == MessageResponseOneofCase.ListServicesResponse) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(ListServicesResponse); + } + if (messageResponseCase_ == MessageResponseOneofCase.ErrorResponse) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(ErrorResponse); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ServerReflectionResponse other) { + if (other == null) { + return; + } + if (other.ValidHost.Length != 0) { + ValidHost = other.ValidHost; + } + if (other.originalRequest_ != null) { + if (originalRequest_ == null) { + originalRequest_ = new global::Grpc.Reflection.V1Alpha.ServerReflectionRequest(); + } + OriginalRequest.MergeFrom(other.OriginalRequest); + } + switch (other.MessageResponseCase) { + case MessageResponseOneofCase.FileDescriptorResponse: + if (FileDescriptorResponse == null) { + FileDescriptorResponse = new global::Grpc.Reflection.V1Alpha.FileDescriptorResponse(); + } + FileDescriptorResponse.MergeFrom(other.FileDescriptorResponse); + break; + case MessageResponseOneofCase.AllExtensionNumbersResponse: + if (AllExtensionNumbersResponse == null) { + AllExtensionNumbersResponse = new global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse(); + } + AllExtensionNumbersResponse.MergeFrom(other.AllExtensionNumbersResponse); + break; + case MessageResponseOneofCase.ListServicesResponse: + if (ListServicesResponse == null) { + ListServicesResponse = new global::Grpc.Reflection.V1Alpha.ListServiceResponse(); + } + ListServicesResponse.MergeFrom(other.ListServicesResponse); + break; + case MessageResponseOneofCase.ErrorResponse: + if (ErrorResponse == null) { + ErrorResponse = new global::Grpc.Reflection.V1Alpha.ErrorResponse(); + } + ErrorResponse.MergeFrom(other.ErrorResponse); + break; + } + + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + ValidHost = input.ReadString(); + break; + } + case 18: { + if (originalRequest_ == null) { + originalRequest_ = new global::Grpc.Reflection.V1Alpha.ServerReflectionRequest(); + } + input.ReadMessage(originalRequest_); + break; + } + case 34: { + global::Grpc.Reflection.V1Alpha.FileDescriptorResponse subBuilder = new global::Grpc.Reflection.V1Alpha.FileDescriptorResponse(); + if (messageResponseCase_ == MessageResponseOneofCase.FileDescriptorResponse) { + subBuilder.MergeFrom(FileDescriptorResponse); + } + input.ReadMessage(subBuilder); + FileDescriptorResponse = subBuilder; + break; + } + case 42: { + global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse subBuilder = new global::Grpc.Reflection.V1Alpha.ExtensionNumberResponse(); + if (messageResponseCase_ == MessageResponseOneofCase.AllExtensionNumbersResponse) { + subBuilder.MergeFrom(AllExtensionNumbersResponse); + } + input.ReadMessage(subBuilder); + AllExtensionNumbersResponse = subBuilder; + break; + } + case 50: { + global::Grpc.Reflection.V1Alpha.ListServiceResponse subBuilder = new global::Grpc.Reflection.V1Alpha.ListServiceResponse(); + if (messageResponseCase_ == MessageResponseOneofCase.ListServicesResponse) { + subBuilder.MergeFrom(ListServicesResponse); + } + input.ReadMessage(subBuilder); + ListServicesResponse = subBuilder; + break; + } + case 58: { + global::Grpc.Reflection.V1Alpha.ErrorResponse subBuilder = new global::Grpc.Reflection.V1Alpha.ErrorResponse(); + if (messageResponseCase_ == MessageResponseOneofCase.ErrorResponse) { + subBuilder.MergeFrom(ErrorResponse); + } + input.ReadMessage(subBuilder); + ErrorResponse = subBuilder; + break; + } + } + } + } + + } + + /// + /// Serialized FileDescriptorProto messages sent by the server answering + /// a file_by_filename, file_containing_symbol, or file_containing_extension + /// request. + /// + public sealed partial class FileDescriptorResponse : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new FileDescriptorResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[3]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public FileDescriptorResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public FileDescriptorResponse(FileDescriptorResponse other) : this() { + fileDescriptorProto_ = other.fileDescriptorProto_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public FileDescriptorResponse Clone() { + return new FileDescriptorResponse(this); + } + + /// Field number for the "file_descriptor_proto" field. + public const int FileDescriptorProtoFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_fileDescriptorProto_codec + = pb::FieldCodec.ForBytes(10); + private readonly pbc::RepeatedField fileDescriptorProto_ = new pbc::RepeatedField(); + /// + /// Serialized FileDescriptorProto messages. We avoid taking a dependency on + /// descriptor.proto, which uses proto2 only features, by making them opaque + /// bytes instead. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField FileDescriptorProto { + get { return fileDescriptorProto_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as FileDescriptorResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(FileDescriptorResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!fileDescriptorProto_.Equals(other.fileDescriptorProto_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + hash ^= fileDescriptorProto_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + fileDescriptorProto_.WriteTo(output, _repeated_fileDescriptorProto_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + size += fileDescriptorProto_.CalculateSize(_repeated_fileDescriptorProto_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(FileDescriptorResponse other) { + if (other == null) { + return; + } + fileDescriptorProto_.Add(other.fileDescriptorProto_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + fileDescriptorProto_.AddEntriesFrom(input, _repeated_fileDescriptorProto_codec); + break; + } + } + } + } + + } + + /// + /// A list of extension numbers sent by the server answering + /// all_extension_numbers_of_type request. + /// + public sealed partial class ExtensionNumberResponse : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ExtensionNumberResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[4]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ExtensionNumberResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ExtensionNumberResponse(ExtensionNumberResponse other) : this() { + baseTypeName_ = other.baseTypeName_; + extensionNumber_ = other.extensionNumber_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ExtensionNumberResponse Clone() { + return new ExtensionNumberResponse(this); + } + + /// Field number for the "base_type_name" field. + public const int BaseTypeNameFieldNumber = 1; + private string baseTypeName_ = ""; + /// + /// Full name of the base type, including the package name. The format + /// is <package>.<type> + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string BaseTypeName { + get { return baseTypeName_; } + set { + baseTypeName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "extension_number" field. + public const int ExtensionNumberFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_extensionNumber_codec + = pb::FieldCodec.ForInt32(18); + private readonly pbc::RepeatedField extensionNumber_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField ExtensionNumber { + get { return extensionNumber_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ExtensionNumberResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ExtensionNumberResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (BaseTypeName != other.BaseTypeName) return false; + if(!extensionNumber_.Equals(other.extensionNumber_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (BaseTypeName.Length != 0) hash ^= BaseTypeName.GetHashCode(); + hash ^= extensionNumber_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (BaseTypeName.Length != 0) { + output.WriteRawTag(10); + output.WriteString(BaseTypeName); + } + extensionNumber_.WriteTo(output, _repeated_extensionNumber_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (BaseTypeName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(BaseTypeName); + } + size += extensionNumber_.CalculateSize(_repeated_extensionNumber_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ExtensionNumberResponse other) { + if (other == null) { + return; + } + if (other.BaseTypeName.Length != 0) { + BaseTypeName = other.BaseTypeName; + } + extensionNumber_.Add(other.extensionNumber_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + BaseTypeName = input.ReadString(); + break; + } + case 18: + case 16: { + extensionNumber_.AddEntriesFrom(input, _repeated_extensionNumber_codec); + break; + } + } + } + } + + } + + /// + /// A list of ServiceResponse sent by the server answering list_services request. + /// + public sealed partial class ListServiceResponse : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ListServiceResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[5]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListServiceResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListServiceResponse(ListServiceResponse other) : this() { + service_ = other.service_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListServiceResponse Clone() { + return new ListServiceResponse(this); + } + + /// Field number for the "service" field. + public const int ServiceFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_service_codec + = pb::FieldCodec.ForMessage(10, global::Grpc.Reflection.V1Alpha.ServiceResponse.Parser); + private readonly pbc::RepeatedField service_ = new pbc::RepeatedField(); + /// + /// The information of each service may be expanded in the future, so we use + /// ServiceResponse message to encapsulate it. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Service { + get { return service_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ListServiceResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ListServiceResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!service_.Equals(other.service_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + hash ^= service_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + service_.WriteTo(output, _repeated_service_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + size += service_.CalculateSize(_repeated_service_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ListServiceResponse other) { + if (other == null) { + return; + } + service_.Add(other.service_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + service_.AddEntriesFrom(input, _repeated_service_codec); + break; + } + } + } + } + + } + + /// + /// The information of a single service used by ListServiceResponse to answer + /// list_services request. + /// + public sealed partial class ServiceResponse : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ServiceResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[6]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ServiceResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ServiceResponse(ServiceResponse other) : this() { + name_ = other.name_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ServiceResponse Clone() { + return new ServiceResponse(this); + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 1; + private string name_ = ""; + /// + /// Full name of a registered service, including its package name. The format + /// is <package>.<service> + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ServiceResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ServiceResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Name != other.Name) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Name.Length != 0) hash ^= Name.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (Name.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Name); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ServiceResponse other) { + if (other == null) { + return; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Name = input.ReadString(); + break; + } + } + } + } + + } + + /// + /// The error code and error message sent by the server when an error occurs. + /// + public sealed partial class ErrorResponse : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ErrorResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.MessageTypes[7]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ErrorResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ErrorResponse(ErrorResponse other) : this() { + errorCode_ = other.errorCode_; + errorMessage_ = other.errorMessage_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ErrorResponse Clone() { + return new ErrorResponse(this); + } + + /// Field number for the "error_code" field. + public const int ErrorCodeFieldNumber = 1; + private int errorCode_; + /// + /// This field uses the error codes defined in grpc::StatusCode. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int ErrorCode { + get { return errorCode_; } + set { + errorCode_ = value; + } + } + + /// Field number for the "error_message" field. + public const int ErrorMessageFieldNumber = 2; + private string errorMessage_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string ErrorMessage { + get { return errorMessage_; } + set { + errorMessage_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ErrorResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ErrorResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (ErrorCode != other.ErrorCode) return false; + if (ErrorMessage != other.ErrorMessage) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (ErrorCode != 0) hash ^= ErrorCode.GetHashCode(); + if (ErrorMessage.Length != 0) hash ^= ErrorMessage.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (ErrorCode != 0) { + output.WriteRawTag(8); + output.WriteInt32(ErrorCode); + } + if (ErrorMessage.Length != 0) { + output.WriteRawTag(18); + output.WriteString(ErrorMessage); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (ErrorCode != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(ErrorCode); + } + if (ErrorMessage.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ErrorMessage); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ErrorResponse other) { + if (other == null) { + return; + } + if (other.ErrorCode != 0) { + ErrorCode = other.ErrorCode; + } + if (other.ErrorMessage.Length != 0) { + ErrorMessage = other.ErrorMessage; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + ErrorCode = input.ReadInt32(); + break; + } + case 18: { + ErrorMessage = input.ReadString(); + break; + } + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/ReflectionGrpc.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/ReflectionGrpc.cs new file mode 100644 index 0000000..b919b37 --- /dev/null +++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/GrpcClient/Reflection/ReflectionGrpc.cs @@ -0,0 +1,137 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: reflection.proto +// +// Original file comments: +// Copyright 2016 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Service exported by server reflection +// +#pragma warning disable 0414, 1591 +#region Designer generated code + +using grpc = global::Grpc.Core; + +namespace Grpc.Reflection.V1Alpha { + public static partial class ServerReflection + { + static readonly string __ServiceName = "grpc.reflection.v1alpha.ServerReflection"; + + static readonly grpc::Marshaller __Marshaller_grpc_reflection_v1alpha_ServerReflectionRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Grpc.Reflection.V1Alpha.ServerReflectionRequest.Parser.ParseFrom); + static readonly grpc::Marshaller __Marshaller_grpc_reflection_v1alpha_ServerReflectionResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Grpc.Reflection.V1Alpha.ServerReflectionResponse.Parser.ParseFrom); + + static readonly grpc::Method __Method_ServerReflectionInfo = new grpc::Method( + grpc::MethodType.DuplexStreaming, + __ServiceName, + "ServerReflectionInfo", + __Marshaller_grpc_reflection_v1alpha_ServerReflectionRequest, + __Marshaller_grpc_reflection_v1alpha_ServerReflectionResponse); + + /// Service descriptor + public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor + { + get { return global::Grpc.Reflection.V1Alpha.ReflectionReflection.Descriptor.Services[0]; } + } + + /// Base class for server-side implementations of ServerReflection + public abstract partial class ServerReflectionBase + { + /// + /// The reflection service is structured as a bidirectional stream, ensuring + /// all related requests go to a single server. + /// + /// Used for reading requests from the client. + /// Used for sending responses back to the client. + /// The context of the server-side call handler being invoked. + /// A task indicating completion of the handler. + public virtual global::System.Threading.Tasks.Task ServerReflectionInfo(grpc::IAsyncStreamReader requestStream, grpc::IServerStreamWriter responseStream, grpc::ServerCallContext context) + { + throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, "")); + } + + } + + /// Client for ServerReflection + public partial class ServerReflectionClient : grpc::ClientBase + { + /// Creates a new client for ServerReflection + /// The channel to use to make remote calls. + public ServerReflectionClient(grpc::Channel channel) : base(channel) + { + } + /// Creates a new client for ServerReflection that uses a custom CallInvoker. + /// The callInvoker to use to make remote calls. + public ServerReflectionClient(grpc::CallInvoker callInvoker) : base(callInvoker) + { + } + /// Protected parameterless constructor to allow creation of test doubles. + protected ServerReflectionClient() : base() + { + } + /// Protected constructor to allow creation of configured clients. + /// The client configuration. + protected ServerReflectionClient(ClientBaseConfiguration configuration) : base(configuration) + { + } + + /// + /// The reflection service is structured as a bidirectional stream, ensuring + /// all related requests go to a single server. + /// + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The call object. + public virtual grpc::AsyncDuplexStreamingCall ServerReflectionInfo(grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return ServerReflectionInfo(new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// The reflection service is structured as a bidirectional stream, ensuring + /// all related requests go to a single server. + /// + /// The options for the call. + /// The call object. + public virtual grpc::AsyncDuplexStreamingCall ServerReflectionInfo(grpc::CallOptions options) + { + return CallInvoker.AsyncDuplexStreamingCall(__Method_ServerReflectionInfo, null, options); + } + /// Creates a new instance of client from given ClientBaseConfiguration. + protected override ServerReflectionClient NewInstance(ClientBaseConfiguration configuration) + { + return new ServerReflectionClient(configuration); + } + } + + /// Creates service definition that can be registered with a server + /// An object implementing the server-side handling logic. + public static grpc::ServerServiceDefinition BindService(ServerReflectionBase serviceImpl) + { + return grpc::ServerServiceDefinition.CreateBuilder() + .AddMethod(__Method_ServerReflectionInfo, serviceImpl.ServerReflectionInfo).Build(); + } + + /// Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. + /// Note: this method is part of an experimental API that can change or be removed without any prior notice. + /// Service methods will be bound by calling AddMethod on this object. + /// An object implementing the server-side handling logic. + public static void BindService(grpc::ServiceBinderBase serviceBinder, ServerReflectionBase serviceImpl) + { + serviceBinder.AddMethod(__Method_ServerReflectionInfo, serviceImpl == null ? null : new grpc::DuplexStreamingServerMethod(serviceImpl.ServerReflectionInfo)); + } + + } +} +#endregion diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/ConsulSet.cshtml.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/ConsulSet.cshtml.cs index 363ec1a..37014e8 100644 --- a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/ConsulSet.cshtml.cs +++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/ConsulSet.cshtml.cs @@ -1,7 +1,9 @@ -using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.Extensions.Configuration; using System.Linq; +using System.Threading.Tasks; namespace FM.GrpcDashboard.Pages { @@ -15,21 +17,21 @@ public ConsulSetModel(ConsulService consulSrv, IConfiguration config) _config = config; } - public void OnGet() + public async Task OnGet() { ViewData["addr"] = _config["Consul"]; - ViewData["Nodes"] = GetNodes(_config["Consul"]); + ViewData["Nodes"] = await GetNodes(_config["Consul"]); } - public SelectList GetNodes(string selected) + public async Task GetNodes(string selected) { - var nodes = _consulSrv.GetAllNode().Result; + var nodes = await _consulSrv.GetAllNode(); var selectList = nodes.Select(p => new SelectListItem() { Value = "http://" + p.Address + ":8500/", Text = p.Name }).ToList(); return new SelectList(selectList, "Value", "Text", selected); } - public void OnPost(string addr=null) + public void OnPost(string addr = null) { if (!string.IsNullOrWhiteSpace(addr)) { diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Grpc.cshtml.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Grpc.cshtml.cs index 23481d6..8c07668 100644 --- a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Grpc.cshtml.cs +++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Grpc.cshtml.cs @@ -1,8 +1,10 @@ -using Grpc; +using FM.GrpcDashboard.Services; +using Grpc; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; namespace FM.GrpcDashboard.Pages { @@ -17,15 +19,15 @@ public class GrpcModel : PageModel public InfoRS Info { get; set; } ConsulService _consulSrv; - GrpcService _grpcSrv; + GrpcServiceProxy _grpcSrv; - public GrpcModel(ConsulService consulSrv, GrpcService grpcSrv) + public GrpcModel(ConsulService consulSrv, GrpcServiceProxy grpcSrv) { _consulSrv = consulSrv; _grpcSrv = grpcSrv; } - public IActionResult OnGet(string serviceName, string serverAddress = null) + public async Task OnGet(string serviceName, string serverAddress = null) { ServiceName = serviceName?.Trim(); CurrentAddressInfo = serverAddress?.Trim(); @@ -42,11 +44,11 @@ public IActionResult OnGet(string serviceName, string serverAddress = null) var ip = arr[0]; var port = int.Parse(arr[1]); - Info = _grpcSrv.GetInfo(ip, port).Result; + Info = await _grpcSrv.GetInfo(ip, port); } else { - var service = _consulSrv.GetService(ServiceName).Result; + var service = await _consulSrv.GetService(ServiceName); if (service == null || service.Count == 0) { return RedirectToPage("Error", new { msg = $"consul中找不到服务{ServiceName}" }); @@ -56,7 +58,7 @@ public IActionResult OnGet(string serviceName, string serverAddress = null) var port = service.First().Port; CurrentAddressInfo = $"{ip}:{port}"; - Info = _grpcSrv.GetInfo(ip, port).Result; + Info = await _grpcSrv.GetInfo(ip, port); } if (Info == null) diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Index.cshtml.cs b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Index.cshtml.cs index 9f24192..d27515e 100644 --- a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Index.cshtml.cs +++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Index.cshtml.cs @@ -18,7 +18,7 @@ public IndexModel(ConsulService consulSrv) _consulSrv = consulSrv; } - public IActionResult OnGetAsync(string serviceName = null) + public async Task OnGetAsync(string serviceName = null) { if (!string.IsNullOrWhiteSpace(serviceName) && Regex.IsMatch(serviceName.Trim(), @"^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:[0-9]{1,6}$")) { @@ -27,7 +27,7 @@ public IActionResult OnGetAsync(string serviceName = null) else { ViewData["ServiceName"] = serviceName; - ConsulServices = _consulSrv.GetAllServices().Result; + ConsulServices = await _consulSrv.GetAllServices(); if (ConsulServices != null && !string.IsNullOrWhiteSpace(serviceName)) { ConsulServices = ConsulServices.Where(q => q.Service.ToLower().Contains(serviceName.Trim().ToLower())).OrderBy(q => q.Service).ToList(); diff --git a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Invoke.cshtml b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Invoke.cshtml index 5390c51..41b6cac 100644 --- a/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Invoke.cshtml +++ b/src/FM.GrpcDashboard/src/FM.GrpcDashboard/Pages/Invoke.cshtml @@ -8,6 +8,13 @@ @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}