New dependency management strategy csharp_library and example WIP more grpc-web rules
diff --git a/Makefile b/Makefile index 08176d2..c5b9a79 100644 --- a/Makefile +++ b/Makefile
@@ -1,5 +1,6 @@ -routeguide_compile: +compiles: bazel build \ + //android/example/proto:routeguide \ //closure/example/proto:routeguide \ //cpp/example/proto:routeguide \ //csharp/example/proto:routeguide \ @@ -10,29 +11,41 @@ //php/example/proto:routeguide \ //python/example/proto:routeguide \ //ruby/example/proto:routeguide \ + //rust/example/proto:routeguide \ //github.com/improbable-eng/ts-protoc-gen/example/proto:routeguide \ - //github.com/grpc/grpc-web/example/proto:routeguide \ + //github.com/grpc/grpc-web/example/proto:routeguide_closure \ + //github.com/grpc/grpc-web/example/proto:routeguide_commonjs \ + //github.com/grpc/grpc-web/example/proto:routeguide_dts \ + //github.com/grpc/grpc-web/example/proto:routeguide_ts \ -# //dart/example/proto:routeguide \ -routeguide_clients: +clients: csharp_client bazel build \ + //android/example/routeguide:client \ //closure/example/routeguide/client \ //cpp/example/routeguide:client \ - //python/example/routeguide:client \ - //java/example/routeguide:client \ //go/example/routeguide/client \ - //github.com/grpc/grpc-web/example/routeguide/client:bundle \ + //java/example/routeguide:client \ + //node/example/routeguide:client \ + //python/example/routeguide:client \ + //ruby/example/routeguide:client \ + //rust/example/routeguide:client \ + //github.com/grpc/grpc-web/example/routeguide/closure:bundle \ //github.com/stackb/grpc.js/example/routeguide/client:bundle -routeguide_servers: - bazel build \ - //python/example/routeguide:server \ - //cpp/example/routeguide:server \ - //java/example/routeguide:server \ - //go/example/routeguide/server \ + # //dart/example/routeguide:client \ -routeguide_tests: +servers: + bazel build \ + //cpp/example/routeguide:server \ + //go/example/routeguide/server \ + //java/example/routeguide:server \ + //node/example/routeguide:server \ + //python/example/routeguide:server \ + //ruby/example/routeguide:server \ + //rust/example/routeguide:server \ + +tests: bazel test \ //closure/example/routeguide/... \ //github.com/stackb/grpc.js/example/routeguide/... \ @@ -40,3 +53,16 @@ //cpp/example/routeguide/... \ //java/example/routeguide/... \ //go/example/routeguide/... \ + + +# This one seems to have an issue with the missing 'qualified_name' pub package, +# but was working previously +compile_dart: + bazel build \ + //dart/example/proto:routeguide + + +# Cannot figure out the assembly reference issue here! +client_csharp: + bazel build --spawn_strategy=standalone \ + //csharp/example/routeguide:client
diff --git a/WORKSPACE b/WORKSPACE index 28d6956..07c6d16 100644 --- a/WORKSPACE +++ b/WORKSPACE
@@ -6,19 +6,52 @@ load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") # ========================================= -load("//:deps.bzl", "grpc_deps") +load("//:deps.bzl", "com_github_grpc_grpc") -grpc_deps() +com_github_grpc_grpc() load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", com_github_grpc_grpc_bazel_grpc_deps = "grpc_deps") com_github_grpc_grpc_bazel_grpc_deps() # ========================================= +load("//:deps.bzl", "io_grpc_grpc_java") -load("//python:deps.bzl", "py_proto_compile_deps") +io_grpc_grpc_java() -py_proto_compile_deps() +load("@io_grpc_grpc_java//:repositories.bzl", "grpc_java_repositories") +grpc_java_repositories( + omit_com_google_protobuf = True, +) + +# ========================================= + +local_repository( + name = "io_bazel_rules_dotnet", + path = "/home/pcj/github/bazelbuild/rules_dotnet", +) + +load("//csharp:deps.bzl", "csharp_grpc_library") + +csharp_grpc_library() + +load("@io_bazel_rules_dotnet//dotnet:defs.bzl", "dotnet_register_toolchains", "dotnet_repositories") + +dotnet_register_toolchains("host") + +#dotnet_register_toolchains(dotnet_version="4.2.3") + +dotnet_repositories() + + +load("//csharp/nuget:packages.bzl", nuget_packages = "packages") +nuget_packages() + +# ========================================= + +load("//python:deps.bzl", "python_grpc_library") + +python_grpc_library() load("@io_bazel_rules_python//python:pip.bzl", "pip_repositories", "pip_import") @@ -30,19 +63,20 @@ ) load("@grpc_py_deps//:requirements.bzl", "pip_install") + pip_install() # ========================================= -load("//java:deps.bzl", "java_grpc_library_deps") +load("//java:deps.bzl", "java_grpc_library") -java_grpc_library_deps() +java_grpc_library() # =========== -load("//closure:deps.bzl", "closure_proto_library_deps") +load("//closure:deps.bzl", "closure_proto_library") -closure_proto_library_deps() +closure_proto_library() load("@io_bazel_rules_closure//closure:defs.bzl", "closure_repositories") @@ -52,16 +86,14 @@ # ========================================= -load("//node:deps.bzl", "node_proto_library_deps") +load("//node:deps.bzl", "node_grpc_library") -node_proto_library_deps() +node_grpc_library() -load("@org_pubref_rules_node//node:rules.bzl", "node_repositories") +load("@org_pubref_rules_node//node:rules.bzl", "node_repositories", "yarn_modules") node_repositories() -load("@org_pubref_rules_node//node:rules.bzl", "yarn_modules") - yarn_modules( name = "proto_node_modules", deps = { @@ -79,81 +111,61 @@ # ========================================= -load("//go:deps.bzl", "go_proto_library_deps") +load("//go:deps.bzl", "go_grpc_library") -go_proto_library_deps() +go_grpc_library() load("@io_bazel_rules_go//go:def.bzl", "go_rules_dependencies", "go_register_toolchains") + go_rules_dependencies() + go_register_toolchains() # ========================================= -load("@io_grpc_grpc_java//:repositories.bzl", "grpc_java_repositories") -grpc_java_repositories( - omit_com_google_protobuf = True, -) - -# ========================================= - local_repository( name = "io_bazel_rules_dart", path = "/home/pcj/github/dart-lang/rules_dart", ) -load("//dart:deps.bzl", "dart_proto_deps", "dart_pub_deps") +load("//dart:deps.bzl", "dart_grpc_library") -dart_proto_deps() +dart_grpc_library() -dart_pub_deps( - name = "dart_pub_deps_protoc_plugin", - spec = "//dart:pubspec.yaml", - override = { - "path": "1.6.2", - "analyzer": "0.32.5", - "crypto": "2.0.6", - "async": "2.0.8", - "fixnum": "0.10.8", - "collection": "1.14.11", - "dart_style": "1.1.3", - "source_span": "1.4.1", - "args": "1.5.0", - }, - verbose = 0, -) +load("@dart_pub_deps_protoc_plugin//:deps.bzl", dart_protoc_plugin_deps = "pub_deps") -load("@dart_pub_deps_protoc_plugin//:deps.bzl", "pub_deps") -pub_deps(verbose = 0) +dart_protoc_plugin_deps() load("@io_bazel_rules_dart//dart/build_rules:repositories.bzl", "dart_repositories") + dart_repositories() load("@io_bazel_rules_dart//dart/build_rules/internal:pub.bzl", "pub_repository") pub_repository( - name = "vendor_isolate", - output = ".", - package = "isolate", - version = "2.0.2", - ) + name = "vendor_isolate", + output = ".", + package = "isolate", + version = "2.0.2", +) # ========================================= -load("//github.com/stackb/grpc.js:deps.bzl", "grpc_js_deps") +load("//github.com/stackb/grpc.js:deps.bzl", "closure_grpc_library") -grpc_js_deps() +closure_grpc_library() # ========================================= -load("//github.com/grpc/grpc-web:deps.bzl", "grpc_web_deps") +load("//github.com/grpc/grpc-web:deps.bzl", "web_grpc_library") -grpc_web_deps() +web_grpc_library() # ========================================= -load("//github.com/improbable-eng/ts-protoc-gen:deps.bzl", "ts_proto_deps") +load("//github.com/improbable-eng/ts-protoc-gen:deps.bzl", "ts_grpc_library") -ts_proto_deps() +ts_grpc_library() load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") @@ -183,15 +195,16 @@ # ======================================= -load("//ruby:deps.bzl", "ruby_proto_library_deps") +load("//ruby:deps.bzl", "ruby_grpc_library") -ruby_proto_library_deps() +ruby_grpc_library() load("@com_github_yugui_rules_ruby//ruby:def.bzl", "ruby_register_toolchains") ruby_register_toolchains() load("@com_github_yugui_rules_ruby//ruby/private:bundle.bzl", "bundle_install") + bundle_install( name = "routeguide_gems_bundle", gemfile = "//ruby:Gemfile", @@ -200,13 +213,41 @@ # ======================================= -load("//rust:deps.bzl", "rust_proto_library_deps") +load("//rust:deps.bzl", "rust_grpc_library") -rust_proto_library_deps() +rust_grpc_library() load("@io_bazel_rules_rust//rust:repositories.bzl", "rust_repositories") rust_repositories() load("//rust/cargo:crates.bzl", "raze_fetch_remote_crates") -raze_fetch_remote_crates() \ No newline at end of file + +raze_fetch_remote_crates() + +# ======================================== + +load("//android:deps.bzl", "android_grpc_library") + +android_grpc_library() + +load("@build_bazel_rules_android//android:sdk_repository.bzl", "android_sdk_repository") + +# +# This version of android_sdk_repository uses the ANDROID_HOME env var. +# +# Why is this not a workspace rule? This is so painful. +# $ curl -O -J -L https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip +# $ mkdir ~/android-sdk +# $ unzip in that dir +# $ tools/bin/sdkmanager --list +# $ tools/bin/sdkmanager "platforms;android-28" "build-tools;28.0.3" +# $ export ANDROID_HOME="/home/pcj/android-sdk/" +# +android_sdk_repository( + name = "androidsdk" +) + +load("@gmaven_rules//:gmaven.bzl", "gmaven_rules") + +gmaven_rules()
diff --git a/android/compile.bzl b/android/compile.bzl index 80c74f3..85116f6 100644 --- a/android/compile.bzl +++ b/android/compile.bzl
@@ -9,7 +9,6 @@ def android_grpc_compile(**kwargs): proto_compile( plugins = [str(Label("//android:javalite")), str(Label("//android:grpc_javalite"))], - #plugins = [str(Label("//android:grpc_java"))], **kwargs )
diff --git a/android/deps.bzl b/android/deps.bzl index d836f37..cdbbe55 100644 --- a/android/deps.bzl +++ b/android/deps.bzl
@@ -1,41 +1,24 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("//:deps.bzl", + "build_bazel_rules_android", + "com_google_protobuf_lite", + "com_google_protobuf", + "gmaven_rules", + "io_grpc_grpc_java", +) -def android_proto_compile_deps( - rules_android_version = "60f03a20cefbe1e110ae0ac7f25359822e9ea24a", - rules_android_sha256 = "4305b6cf6b098752a19fdb1abdc9ae2e069f5ff61359bfc3c752e4b4c862d18e", - protobuf_lite_version = "5e8916e881c573c5d83980197a6f783c132d4276", - protobuf_lite_sha256 = "d35902fb3cbe9afa67aad4e615a8224d0a531b8c06d32e100bdb235244748a3d", - gmaven_tag = "20180927-1", - gmaven_sha256 = "ddaa0f5811253e82f67ee637dc8caf3989e4517bac0368355215b0dcfa9844d6", -): - existing = native.existing_rules() - if "build_bazel_rules_android" not in existing: - http_archive( - name = "build_bazel_rules_android", - urls = ["https://github.com/bazelbuild/rules_android/archive/%s.tar.gz" % rules_android_version], - strip_prefix = "rules_android-%s" % rules_android_version, - sha256 = rules_android_sha256, - ) - if "com_google_protobuf_lite" not in existing: - http_archive( - name = "com_google_protobuf_lite", - urls = ["https://github.com/protocolbuffers/protobuf/archive/%s.tar.gz" % protobuf_lite_version], - strip_prefix = "protobuf-%s" % protobuf_lite_version, - sha256 = protobuf_lite_sha256, - ) +def android_proto_compile(**kwargs): + com_google_protobuf(**kwargs) + com_google_protobuf_lite(**kwargs) - # if "android_sdk_tools" not in existing: - # http_archive( - # name = "android_sdk_tools", - # urls = ["https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip"], - # #strip_prefix = "protobuf-%s" % protobuf_lite_version, - # #sha256 = protobuf_lite_sha256, - # ) - if "gmaven_rules" not in existing: - http_archive( - name = "gmaven_rules", - strip_prefix = "gmaven_rules-%s" % gmaven_tag, - urls = ["https://github.com/bazelbuild/gmaven_rules/archive/%s.tar.gz" % gmaven_tag], - sha256 = gmaven_sha256, - ) +def android_grpc_compile(**kwargs): + android_proto_compile(**kwargs) + io_grpc_grpc_java(**kwargs) +def android_proto_library(**kwargs): + android_proto_compile(**kwargs) + build_bazel_rules_android(**kwargs) + gmaven_rules(**kwargs) + +def android_grpc_library(**kwargs): + android_grpc_compile(**kwargs) + android_proto_library(**kwargs) \ No newline at end of file
diff --git a/closure/deps.bzl b/closure/deps.bzl index 6868b17..401a06d 100644 --- a/closure/deps.bzl +++ b/closure/deps.bzl
@@ -1,27 +1,11 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file") -load("//closure:buildozer_http_archive.bzl", "buildozer_http_archive") +load("//:deps.bzl", + "com_google_protobuf", + "io_bazel_rules_closure", +) -RULES_CLOSURE_VERSION = "1e12aa5612d758daf2df339991c8d187223a7ee6" -RULES_CLOSURE_SHA256 = "663424d34fd067a8d066308eb2887fcaba36d73b354669ec1467498726a6b82c" +def closure_proto_compile(**kwargs): + com_google_protobuf(**kwargs) -def closure_proto_library_deps(): - existing = native.existing_rules() - - if "io_bazel_rules_closure" not in existing: - buildozer_http_archive( - name = "io_bazel_rules_closure", - urls = ["https://github.com/bazelbuild/rules_closure/archive/%s.tar.gz" % RULES_CLOSURE_VERSION], - sha256 = RULES_CLOSURE_SHA256, - strip_prefix = "rules_closure-" + RULES_CLOSURE_VERSION, - label_list = ["//...:%java_binary", "//...:%java_library"], - replace_deps = { - "@com_google_code_findbugs_jsr305": "@com_google_code_findbugs_jsr305_3_0_0", - "@com_google_errorprone_error_prone_annotations": "@com_google_errorprone_error_prone_annotations_2_1_3", - }, - sed_replacements = { - "closure/repositories.bzl": [ - "s|com_google_code_findbugs_jsr305|com_google_code_findbugs_jsr305_3_0_0|g", - "s|com_google_errorprone_error_prone_annotations|com_google_errorprone_error_prone_annotations_2_1_3|g", - ], - }, - ) +def closure_proto_library(**kwargs): + closure_proto_compile(**kwargs) + io_bazel_rules_closure(**kwargs)
diff --git a/compile.bzl b/compile.bzl index fdffcb9..e698ce8 100644 --- a/compile.bzl +++ b/compile.bzl
@@ -308,4 +308,38 @@ attrs = proto_compile_attrs, outputs = proto_compile_outputs, output_to_genfiles = True, -) \ No newline at end of file +) + + +def invoke(proto_compile_rule, name_suffix, kwargs): + """Invoke a proto_compile rule using kwargs + + Invoke is a convenience function for library rules that call proto_compile + rules. Rather than having to do the same boilerplate across many different + files, this function centralizes the logic of calling proto_compile rules + using kwargs. + + Args: + proto_compile_rule: the rule function to invoke + name_suffix: a suffix for the kwargs.name to use for the rule + kwargs: the **kwargs dict, passed directly (not decontucted) + + Returns: + The name of the invoked rule. This can be used in the srcs label of a library rule. + """ + + name = kwargs.get("name") + deps = kwargs.get("deps") + visibility = kwargs.get("visibility") + verbose = kwargs.get("verbose") + rule_name = name + name_suffix + + proto_compile_rule( + name = rule_name, + deps = deps, + visibility = visibility, + verbose = verbose, + ) + + return rule_name +
diff --git a/cpp/deps.bzl b/cpp/deps.bzl index aea884a..035c834 100644 --- a/cpp/deps.bzl +++ b/cpp/deps.bzl
@@ -1,7 +1,18 @@ -load("//:deps", "grpc_deps") +load("//:deps.bzl", + "com_github_grpc_grpc", + "com_google_protobuf", +) -def cpp_grpc_compile_deps(): - grpc_deps() +def cpp_proto_compile(**kwargs): + com_google_protobuf(**kwargs) -def cpp_grpc_library_deps(): - cpp_grpc_compile_deps() \ No newline at end of file +def cpp_grpc_compile(**kwargs): + cpp_proto_compile(**kwargs) + com_github_grpc_grpc(**kwargs) + +def cpp_proto_library(**kwargs): + cpp_proto_compile(**kwargs) + +def cpp_grpc_library(**kwargs): + cpp_grpc_compile(**kwargs) + cpp_proto_library(**kwargs)
diff --git a/csharp/BUILD.bazel b/csharp/BUILD.bazel index 13007a5..dd46913 100644 --- a/csharp/BUILD.bazel +++ b/csharp/BUILD.bazel
@@ -3,6 +3,8 @@ proto_plugin( name = "csharp", + # TODO, figure out how this would work + # options = ["base_namespace"], outputs = ["@package/{basename|pascal}.cs"], visibility = ["//visibility:public"], )
diff --git a/csharp/deps.bzl b/csharp/deps.bzl index 44b7125..c79304d 100644 --- a/csharp/deps.bzl +++ b/csharp/deps.bzl
@@ -1,4 +1,30 @@ +load("//:deps.bzl", + "com_github_grpc_grpc", + "com_google_protobuf", + "io_bazel_rules_dotnet", +) +load("//csharp/nuget:nuget.bzl", + "nuget_protobuf_packages", +) -def csharp_proto_deps(): - pass \ No newline at end of file +load("//csharp/nuget:nuget.bzl", + "nuget_grpc_packages", +) + +def csharp_proto_compile(**kwargs): + com_google_protobuf(**kwargs) + +def csharp_grpc_compile(**kwargs): + csharp_proto_compile(**kwargs) + com_github_grpc_grpc(**kwargs) + +def csharp_proto_library(**kwargs): + csharp_proto_compile(**kwargs) + io_bazel_rules_dotnet(**kwargs) + nuget_protobuf_packages(**kwargs) + +def csharp_grpc_library(**kwargs): + csharp_grpc_compile(**kwargs) + csharp_proto_library(**kwargs) + nuget_grpc_packages(**kwargs)
diff --git a/csharp/example/routeguide/BUILD.bazel b/csharp/example/routeguide/BUILD.bazel new file mode 100644 index 0000000..caf555c --- /dev/null +++ b/csharp/example/routeguide/BUILD.bazel
@@ -0,0 +1,87 @@ +load("//csharp:library.bzl", "csharp_grpc_library") +load("@io_bazel_rules_dotnet//dotnet:defs.bzl", "core_binary", "core_library") + +csharp_grpc_library( + name = "routeguide", + deps = ["//example/proto/routeguide:proto_library"], + verbose = 3, +) + +core_library( + name = "util", + srcs = [ + "RouteGuideUtil.cs", + ], + deps = [ + ":routeguide", + "@newtonsoft.json//:core", + ], +) + +core_binary( + name = "class1", + srcs = [ + "Class1.cs", + ], + deps = [ + ":routeguide", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.io.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.reflection.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.runtime.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.runtime.extensions.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.console.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.core.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.dll", + ], +) + +core_binary( + name = "client", + srcs = [ + "Client.cs", + #":routeguide_pb", + ], + deps = [ + ":util", + ":routeguide", + "@google.protobuf//:core", + "@system.interactive.async//:core", + "@grpc.core//:core", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.threading.tasks.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.io.dll", + + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.runtime.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.runtime.extensions.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.console.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.private.corelib.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.xml.linq.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.threading.tasks.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.io.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.io.filesystem.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.collections.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.security.cryptography.primitives.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.linq.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.xml.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.xml.xdocument.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.text.encoding.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.io.filesystem.primitives.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.core.dll", + # "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.dll", + + #"@io_bazel_rules_dotnet//dotnet/stdlib:System.Threading.Tasks.Dataflow.dll", + #"@io_bazel_rules_dotnet//dotnet/stdlib:System.Reactive.Windows.Threading.dll", + ], +) + +core_binary( + name = "server", + srcs = ["server.cs"], + deps = [ + ":routeguide", + "@google.protobuf//:core", + "@system.interactive.async//:core", + "@grpc.core//:core", + ], + # data = ["//example/proto/routeguide:features"], +)
diff --git a/csharp/example/routeguide/Class1.cs b/csharp/example/routeguide/Class1.cs new file mode 100644 index 0000000..1999548 --- /dev/null +++ b/csharp/example/routeguide/Class1.cs
@@ -0,0 +1,51 @@ +using System; +using System.IO; +using System.Reflection; + +public class Class1 +{ + public static void GetAllClassesAndMethodsOfAssembly(string name) + { + Assembly assem1 = Assembly.Load(AssemblyName.GetAssemblyName(name)); + //Another Way + Assembly assem2 = Assembly.Load(name); + //Get List of Class Name + + Type[] types = assem1.GetTypes(); + foreach(Type tc in types) + { + if (tc.IsAbstract) + { + Console.WriteLine("Abstract Class : " + tc.Name); + } + else if (tc.IsPublic) + { + Console.WriteLine("Public Class : " + tc.Name); + } + else if (tc.IsSealed) + { + Console.WriteLine("Sealed Class : " + tc.Name); + } + + //Get List of Method Names of Class + MemberInfo[] methodName = tc.GetMethods(); + + foreach (MemberInfo method in methodName) + { + if (method.ReflectedType.IsPublic) + { + Console.WriteLine("Public Method : " + method.Name.ToString()); + } + else + { + Console.WriteLine("Non-Public Method : " + method.Name.ToString()); + } + } + } + } + + static void Main(string[] args) + { + GetAllClassesAndMethodsOfAssembly(args[0]); + } +} \ No newline at end of file
diff --git a/csharp/example/routeguide/Client.cs b/csharp/example/routeguide/Client.cs new file mode 100644 index 0000000..e27cb30 --- /dev/null +++ b/csharp/example/routeguide/Client.cs
@@ -0,0 +1,240 @@ +// Copyright 2015 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. + +using Grpc.Core; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RouteGuide; + +class Program +{ + /// <summary> + /// Sample client code that makes gRPC calls to the server. + /// </summary> + public class Client + { + readonly RouteGuideClient client; + + public Client(RouteGuideClient client) + { + this.client = client; + } + + /// <summary> + /// Blocking unary call example. Calls GetFeature and prints the response. + /// </summary> + public void GetFeature(int lat, int lon) + { + try + { + Log("*** GetFeature: lat={0} lon={1}", lat, lon); + + Point request = new Point { Latitude = lat, Longitude = lon }; + + Feature feature = client.GetFeature(request); + if (feature.Exists()) + { + Log("Found feature called \"{0}\" at {1}, {2}", + feature.Name, feature.Location.GetLatitude(), feature.Location.GetLongitude()); + } + else + { + Log("Found no feature at {0}, {1}", + feature.Location.GetLatitude(), feature.Location.GetLongitude()); + } + } + catch (RpcException e) + { + Log("RPC failed " + e); + throw; + } + } + + + /// <summary> + /// Server-streaming example. Calls listFeatures with a rectangle of interest. Prints each response feature as it arrives. + /// </summary> + public async Task ListFeatures(int lowLat, int lowLon, int hiLat, int hiLon) + { + try + { + Log("*** ListFeatures: lowLat={0} lowLon={1} hiLat={2} hiLon={3}", lowLat, lowLon, hiLat, + hiLon); + + Rectangle request = new Rectangle + { + Lo = new Point { Latitude = lowLat, Longitude = lowLon }, + Hi = new Point { Latitude = hiLat, Longitude = hiLon } + }; + + using (var call = client.ListFeatures(request)) + { + var responseStream = call.ResponseStream; + StringBuilder responseLog = new StringBuilder("Result: "); + + while (await responseStream.MoveNext()) + { + Feature feature = responseStream.Current; + responseLog.Append(feature.ToString()); + } + Log(responseLog.ToString()); + } + } + catch (RpcException e) + { + Log("RPC failed " + e); + throw; + } + } + + /// <summary> + /// Client-streaming example. Sends numPoints randomly chosen points from features + /// with a variable delay in between. Prints the statistics when they are sent from the server. + /// </summary> + public async Task RecordRoute(List<Feature> features, int numPoints) + { + try + { + Log("*** RecordRoute"); + using (var call = client.RecordRoute()) + { + // Send numPoints points randomly selected from the features list. + StringBuilder numMsg = new StringBuilder(); + Random rand = new Random(); + for (int i = 0; i < numPoints; ++i) + { + int index = rand.Next(features.Count); + Point point = features[index].Location; + Log("Visiting point {0}, {1}", point.GetLatitude(), point.GetLongitude()); + + await call.RequestStream.WriteAsync(point); + + // A bit of delay before sending the next one. + await Task.Delay(rand.Next(1000) + 500); + } + await call.RequestStream.CompleteAsync(); + + RouteSummary summary = await call.ResponseAsync; + Log("Finished trip with {0} points. Passed {1} features. " + + "Travelled {2} meters. It took {3} seconds.", summary.PointCount, + summary.FeatureCount, summary.Distance, summary.ElapsedTime); + + Log("Finished RecordRoute"); + } + } + catch (RpcException e) + { + Log("RPC failed", e); + throw; + } + } + + /// <summary> + /// Bi-directional streaming example. Send some chat messages, and print any + /// chat messages that are sent from the server. + /// </summary> + public async Task RouteChat() + { + try + { + Log("*** RouteChat"); + var requests = new List<RouteNote> + { + NewNote("First message", 0, 0), + NewNote("Second message", 0, 1), + NewNote("Third message", 1, 0), + NewNote("Fourth message", 0, 0) + }; + + using (var call = client.RouteChat()) + { + var responseReaderTask = Task.Run(async () => + { + while (await call.ResponseStream.MoveNext()) + { + var note = call.ResponseStream.Current; + Log("Got message \"{0}\" at {1}, {2}", note.Message, + note.Location.Latitude, note.Location.Longitude); + } + }); + + foreach (RouteNote request in requests) + { + Log("Sending message \"{0}\" at {1}, {2}", request.Message, + request.Location.Latitude, request.Location.Longitude); + + await call.RequestStream.WriteAsync(request); + } + await call.RequestStream.CompleteAsync(); + await responseReaderTask; + + Log("Finished RouteChat"); + } + } + catch (RpcException e) + { + Log("RPC failed", e); + throw; + } + } + + private void Log(string s, params object[] args) + { + Console.WriteLine(string.Format(s, args)); + } + + private void Log(string s) + { + Console.WriteLine(s); + } + + private RouteNote NewNote(string message, int lat, int lon) + { + return new RouteNote + { + Message = message, + Location = new Point { Latitude = lat, Longitude = lon } + }; + } + } + + static void Main(string[] args) + { + var channel = new Channel("127.0.0.1:50052", ChannelCredentials.Insecure); + var routeGuideClient = new RouteGuideClient(channel); + var client = new Client(); + + // // Looking for a valid feature + // client.GetFeature(409146138, -746188906); + + // // Feature missing. + // client.GetFeature(0, 0); + + // // Looking for features between 40, -75 and 42, -73. + // client.ListFeatures(400000000, -750000000, 420000000, -730000000).Wait(); + + // // Record a few randomly selected points from the features file. + // client.RecordRoute(RouteGuideUtil.ParseFeatures(RouteGuideUtil.DefaultFeaturesFile), 10).Wait(); + + // // Send and receive some notes. + // client.RouteChat().Wait(); + + // channel.ShutdownAsync().Wait(); + // Console.WriteLine("Press any key to exit..."); + // Console.ReadKey(); + } +}
diff --git a/csharp/example/routeguide/RouteGuideUtil.cs b/csharp/example/routeguide/RouteGuideUtil.cs new file mode 100644 index 0000000..bcc7394 --- /dev/null +++ b/csharp/example/routeguide/RouteGuideUtil.cs
@@ -0,0 +1,121 @@ +// Copyright 2015 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. + +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RouteGuide; + +/// <summary> +/// Utility methods for the route guide example. +/// </summary> +public static class RouteGuideUtil +{ + public const string DefaultFeaturesFile = "route_guide_db.json"; + + private const double CoordFactor = 1e7; + + /// <summary> + /// Indicates whether the given feature exists (i.e. has a valid name). + /// </summary> + public static bool Exists(this Feature feature) + { + return feature != null && (feature.Name.Length != 0); + } + + public static double GetLatitude(this Point point) + { + return point.Latitude / CoordFactor; + } + + public static double GetLongitude(this Point point) + { + return point.Longitude / CoordFactor; + } + + /// <summary> + /// Calculate the distance between two points using the "haversine" formula. + /// The formula is based on http://mathforum.org/library/drmath/view/51879.html + /// </summary> + /// <param name="start">the starting point</param> + /// <param name="end">the end point</param> + /// <returns>the distance between the points in meters</returns> + public static double GetDistance(this Point start, Point end) + { + int r = 6371000; // earth radius in metres + double lat1 = ToRadians(start.GetLatitude()); + double lat2 = ToRadians(end.GetLatitude()); + double lon1 = ToRadians(start.GetLongitude()); + double lon2 = ToRadians(end.GetLongitude()); + double deltalat = lat2 - lat1; + double deltalon = lon2 - lon1; + + double a = Math.Sin(deltalat / 2) * Math.Sin(deltalat / 2) + Math.Cos(lat1) * Math.Cos(lat2) * Math.Sin(deltalon / 2) * Math.Sin(deltalon / 2); + double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a)); + return r * c; + } + + /// <summary> + /// Returns <c>true</c> if rectangular area contains given point. + /// </summary> + public static bool Contains(this Rectangle rectangle, Point point) + { + int left = Math.Min(rectangle.Lo.Longitude, rectangle.Hi.Longitude); + int right = Math.Max(rectangle.Lo.Longitude, rectangle.Hi.Longitude); + int top = Math.Max(rectangle.Lo.Latitude, rectangle.Hi.Latitude); + int bottom = Math.Min(rectangle.Lo.Latitude, rectangle.Hi.Latitude); + return (point.Longitude >= left && point.Longitude <= right && point.Latitude >= bottom && point.Latitude <= top); + } + + private static double ToRadians(double val) + { + return (Math.PI / 180) * val; + } + + /// <summary> + /// Parses features from a JSON file. + /// </summary> + public static List<Feature> ParseFeatures(string filename) + { + var features = new List<Feature>(); + var jsonFeatures = JsonConvert.DeserializeObject<List<JsonFeature>>(File.ReadAllText(filename)); + + foreach(var jsonFeature in jsonFeatures) + { + features.Add(new Feature + { + Name = jsonFeature.name, + Location = new Point { Longitude = jsonFeature.location.longitude, Latitude = jsonFeature.location.latitude} + }); + } + return features; + } + + private class JsonFeature + { + public string name; + public JsonLocation location; + } + + private class JsonLocation + { + public int longitude; + public int latitude; + } +}
diff --git a/csharp/example/routeguide/server.cs b/csharp/example/routeguide/server.cs new file mode 100644 index 0000000..c7e5d41 --- /dev/null +++ b/csharp/example/routeguide/server.cs
@@ -0,0 +1,153 @@ +// Copyright 2018 The Bazel Authors. All rights reserved. +// +// 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. + +extern crate routeguide; +extern crate grpc; +extern crate tls_api_stub; +extern crate futures; + +use std::thread; +use std::env; +use std::str::FromStr; +use std::iter; +use futures::future::{Future}; +use futures::Stream; +use futures::Async; +use futures::Poll; + +use routeguide::*; + +struct RouteGuideImpl; + +// +// NOTE: this is a first step just to get this class to *compile*, much less +// operate correctly. +// + +impl RouteGuide for RouteGuideImpl { + fn list_features(&self, _m: grpc::RequestOptions, _rect: Rectangle) -> grpc::StreamingResponse<Feature> { + // Send back 13 dummy list response objects + let iter = iter::repeat(()).map(|_| { + let s = "MyTestFileName.bin".to_owned(); + let mut feature = Feature::new(); + feature.set_name(s); + feature + }).take(13); + grpc::StreamingResponse::iter(iter) + } + + fn record_route(&self, _o: grpc::RequestOptions, _p: grpc::StreamingRequest<Point>) -> grpc::SingleResponse<RouteSummary> { + // let result = p.into_iter(() -> { + + // }); + // { + // let summary = RouteSummary::new(); + // summary + // }; + // let iter = iter::repeat(()).map(|_| { + // let mut summary = RouteSummary::new(); + // summary + // }).take(13); + + // match p.iter() { + // Err(e) => panic!("{:?}", e), + // Ok((_, stream)) => { + // for item in stream { + // let point = item.unwrap(); + // println!("> {}", point); + // } + // } + // } + let summary = RouteSummary::new(); + let fut = RouteSummaryFuture::new(summary); + + grpc::SingleResponse::no_metadata(fut) + } + + fn route_chat(&self, _o: grpc::RequestOptions, _p: grpc::StreamingRequest<RouteNote>) -> grpc::StreamingResponse<RouteNote> { + let note = RouteNote::new(); + let fut = RouteNoteStream::new(note); + grpc::StreamingResponse::no_metadata(fut) + } + + fn get_feature(&self, _o: grpc::RequestOptions, _p: Point) -> grpc::SingleResponse<Feature> { + let mut r = Feature::new(); + r.set_name(format!("test")); + grpc::SingleResponse::completed(r) + } + +} + +fn main() { + let mut server = grpc::ServerBuilder::<tls_api_stub::TlsAcceptor>::new(); + let port = u16::from_str(&env::args().nth(1).unwrap_or("50051".to_owned())).unwrap(); + server.http.set_port(port); + server.add_service(RouteGuideServer::new_service_def(RouteGuideImpl)); + server.http.set_cpu_pool_threads(4); + let server = server.build().expect("server"); + let port = server.local_addr().port().unwrap(); + println!("RouteGuide server started on port {}", port); + + loop { + thread::park(); + } +} + +#[derive(Debug)] +struct RouteSummaryFuture { + summary: RouteSummary, +} + +impl RouteSummaryFuture { + fn new(summary: RouteSummary) -> RouteSummaryFuture { + RouteSummaryFuture { + summary: summary, + } + } +} + +impl Future for RouteSummaryFuture { + type Item = RouteSummary; + type Error = grpc::Error; + + fn poll(&mut self) -> Poll<RouteSummary, grpc::Error> { + Ok(Async::Ready(self.summary.to_owned())) + } +} + +#[derive(Debug)] +struct RouteNoteStream { + note: RouteNote, +} + +impl RouteNoteStream { + fn new(note: RouteNote) -> RouteNoteStream { + RouteNoteStream { + note: note, + } + } +} + +impl Stream for RouteNoteStream { + type Item = RouteNote; + type Error = grpc::Error; + + // fn poll(&mut self) -> Poll<RouteNote, grpc::Error> { + // Ok(Async::Ready(self.note)) + // } + + fn poll(&mut self) -> Result<Async<Option<RouteNote>>, grpc::Error> { + Ok(Async::Ready(std::option::Option::Some(self.note.to_owned()))) + } +} \ No newline at end of file
diff --git a/csharp/library.bzl b/csharp/library.bzl new file mode 100644 index 0000000..7d9c40d --- /dev/null +++ b/csharp/library.bzl
@@ -0,0 +1,25 @@ +load("//:compile.bzl", "invoke") +load("//csharp:compile.bzl", "csharp_proto_compile", "csharp_grpc_compile") +load("@io_bazel_rules_dotnet//dotnet:defs.bzl", "core_library") + +def csharp_proto_library(**kwargs): + kwargs["srcs"] = [invoke(csharp_proto_compile, "_pb", kwargs)] + kwargs["deps"] = [ + "@google.protobuf//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.io.dll", + ] + kwargs["verbose"] = None + + core_library(**kwargs) + +def csharp_grpc_library(**kwargs): + kwargs["srcs"] = [invoke(csharp_grpc_compile, "_pb", kwargs)] + kwargs["deps"] = [ + "@google.protobuf//:core", + "@grpc.core//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.io.dll", + "@system.interactive.async//:core", + ] + kwargs["verbose"] = None + + core_library(**kwargs)
diff --git a/csharp/nuget/BUILD.bazel b/csharp/nuget/BUILD.bazel new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/csharp/nuget/BUILD.bazel
diff --git a/csharp/nuget/grpc.bzl b/csharp/nuget/grpc.bzl new file mode 100644 index 0000000..ec4e320 --- /dev/null +++ b/csharp/nuget/grpc.bzl
@@ -0,0 +1,94 @@ +load("io_bazel_rules_dotnet//dotnet:defs.bzl", "nuget_package") +def packages(): + + + ### Generated by the tool + nuget_package( + name = "system.interactive.async", + package = "system.interactive.async", + version = "3.2.0", + sha256 = "cdc28ac9c99a1e8707b2dde4a41cec1a622349f4a00c7029f9e006a1ac10ebab", + core_lib = "lib/netstandard2.0/System.Interactive.Async.dll", + net_lib = "lib/net46/System.Interactive.Async.dll", + mono_lib = "lib/net46/System.Interactive.Async.dll", + core_deps = [ + ], + net_deps = [ + ], + mono_deps = [ + ], + core_files = [ + "lib/netstandard2.0/System.Interactive.Async.dll", + "lib/netstandard2.0/System.Interactive.Async.xml", + ], + net_files = [ + "lib/net46/System.Interactive.Async.dll", + "lib/net46/System.Interactive.Async.xml", + ], + mono_files = [ + "lib/net46/System.Interactive.Async.dll", + "lib/net46/System.Interactive.Async.xml", + ], + ) + nuget_package( + name = "grpc.core", + package = "grpc.core", + version = "1.15.0", + sha256 = "95600de4a33575ceb20abe789f91fc6dec22d306bf5402e5db0685127f502992", + core_lib = "lib/netstandard1.5/Grpc.Core.dll", + net_lib = "lib/net45/Grpc.Core.dll", + mono_lib = "lib/net45/Grpc.Core.dll", + core_deps = [ + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + "@system.interactive.async//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.runtime.loader.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.threading.thread.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.threading.threadpool.dll", + ], + net_deps = [ + "@system.interactive.async//:net", + ], + mono_deps = [ + "@system.interactive.async//:mono", + ], + core_files = [ + "lib/netstandard1.5/Grpc.Core.dll", + "lib/netstandard1.5/Grpc.Core.pdb", + "lib/netstandard1.5/Grpc.Core.xml", + ], + net_files = [ + "lib/net45/Grpc.Core.dll", + "lib/net45/Grpc.Core.pdb", + "lib/net45/Grpc.Core.xml", + ], + mono_files = [ + "lib/net45/Grpc.Core.dll", + "lib/net45/Grpc.Core.pdb", + "lib/net45/Grpc.Core.xml", + ], + ) + nuget_package( + name = "grpc", + package = "grpc", + version = "1.15.0", + sha256 = "517894fd7e10fc304dd49e6f98afd4feb1af223f90934303a73580a1b7d2ff72", + core_lib = "", + net_lib = "", + mono_lib = "", + core_deps = [ + "@grpc.core//:core", + ], + net_deps = [ + "@grpc.core//:net", + ], + mono_deps = [ + "@grpc.core//:mono", + ], + core_files = [ + ], + net_files = [ + ], + mono_files = [ + ], + ) + ### End of generated by the tool
diff --git a/csharp/nuget/nuget.bzl b/csharp/nuget/nuget.bzl new file mode 100644 index 0000000..8454892 --- /dev/null +++ b/csharp/nuget/nuget.bzl
@@ -0,0 +1,126 @@ +load("@io_bazel_rules_dotnet//dotnet:defs.bzl", "nuget_package") +def nuget_protobuf_packages(): + + ### Generated by the tool + nuget_package( + name = "google.protobuf", + package = "google.protobuf", + version = "3.6.1", + sha256 = "bfa7666aa55e60aa2ee65502966336f812702acaaf7c62d12f276a01ab3aa9a4", + core_lib = "lib/netstandard1.0/Google.Protobuf.dll", + net_lib = "lib/net45/Google.Protobuf.dll", + mono_lib = "lib/net45/Google.Protobuf.dll", + core_deps = [ + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + ], + net_deps = [ + ], + mono_deps = [ + ], + core_files = [ + "lib/netstandard1.0/Google.Protobuf.dll", + "lib/netstandard1.0/Google.Protobuf.xml", + ], + net_files = [ + "lib/net45/Google.Protobuf.dll", + "lib/net45/Google.Protobuf.xml", + ], + mono_files = [ + "lib/net45/Google.Protobuf.dll", + "lib/net45/Google.Protobuf.xml", + ], + ) + ### End of generated by the tool +def nuget_grpc_packages(): + + + ### Generated by the tool + nuget_package( + name = "system.interactive.async", + package = "system.interactive.async", + version = "3.2.0", + sha256 = "cdc28ac9c99a1e8707b2dde4a41cec1a622349f4a00c7029f9e006a1ac10ebab", + core_lib = "lib/netstandard2.0/System.Interactive.Async.dll", + net_lib = "lib/net46/System.Interactive.Async.dll", + mono_lib = "lib/net46/System.Interactive.Async.dll", + core_deps = [ + ], + net_deps = [ + ], + mono_deps = [ + ], + core_files = [ + "lib/netstandard2.0/System.Interactive.Async.dll", + "lib/netstandard2.0/System.Interactive.Async.xml", + ], + net_files = [ + "lib/net46/System.Interactive.Async.dll", + "lib/net46/System.Interactive.Async.xml", + ], + mono_files = [ + "lib/net46/System.Interactive.Async.dll", + "lib/net46/System.Interactive.Async.xml", + ], + ) + nuget_package( + name = "grpc.core", + package = "grpc.core", + version = "1.15.0", + sha256 = "95600de4a33575ceb20abe789f91fc6dec22d306bf5402e5db0685127f502992", + core_lib = "lib/netstandard1.5/Grpc.Core.dll", + net_lib = "lib/net45/Grpc.Core.dll", + mono_lib = "lib/net45/Grpc.Core.dll", + core_deps = [ + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + "@system.interactive.async//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.runtime.loader.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.threading.thread.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.threading.threadpool.dll", + ], + net_deps = [ + "@system.interactive.async//:net", + ], + mono_deps = [ + "@system.interactive.async//:mono", + ], + core_files = [ + "lib/netstandard1.5/Grpc.Core.dll", + "lib/netstandard1.5/Grpc.Core.pdb", + "lib/netstandard1.5/Grpc.Core.xml", + ], + net_files = [ + "lib/net45/Grpc.Core.dll", + "lib/net45/Grpc.Core.pdb", + "lib/net45/Grpc.Core.xml", + ], + mono_files = [ + "lib/net45/Grpc.Core.dll", + "lib/net45/Grpc.Core.pdb", + "lib/net45/Grpc.Core.xml", + ], + ) + nuget_package( + name = "grpc", + package = "grpc", + version = "1.15.0", + sha256 = "517894fd7e10fc304dd49e6f98afd4feb1af223f90934303a73580a1b7d2ff72", + core_lib = "", + net_lib = "", + mono_lib = "", + core_deps = [ + "@grpc.core//:core", + ], + net_deps = [ + "@grpc.core//:net", + ], + mono_deps = [ + "@grpc.core//:mono", + ], + core_files = [ + ], + net_files = [ + ], + mono_files = [ + ], + ) + ### End of generated by the tool
diff --git a/csharp/nuget/packages.bzl b/csharp/nuget/packages.bzl new file mode 100644 index 0000000..dc34f68 --- /dev/null +++ b/csharp/nuget/packages.bzl
@@ -0,0 +1,622 @@ +load("@io_bazel_rules_dotnet//dotnet:defs.bzl", "nuget_package", "net_gac4") + +def packages(): + nuget_package( + name = "npgsql", + package = "npgsql", + version = "4.0.3", + sha256 = "4e1f91eb9f0c3dfb8e029edbc325175cd202455df3641bc16155ef422b6bfd6f", + core_lib = "lib/netstandard2.0/Npgsql.dll", + net_lib = "lib/net451/Npgsql.dll", + mono_lib = "lib/net45/Npgsql.dll", + core_deps = [], + net_deps = [], + mono_deps = [], + core_files = [ + "lib/netstandard2.0/Npgsql.dll", + "lib/netstandard2.0/Npgsql.pdb", + "lib/netstandard2.0/Npgsql.xml", + ], + net_files = [ + "lib/net451/Npgsql.dll", + "lib/net451/Npgsql.pdb", + "lib/net451/Npgsql.xml", + ], + mono_files = [ + "lib/net45/Npgsql.dll", + "lib/net45/Npgsql.pdb", + "lib/net45/Npgsql.xml", + ], + ) + + net_gac4( + name = "System.ComponentModel.DataAnnotations", + version = "4.0.0.0", + token = "31bf3856ad364e35" + ) + + ### Generated by the tool + nuget_package( + name = "commandlineparser", + package = "commandlineparser", + version = "2.3.0", + sha256 = "09e60ff23e6953b4fe7d267ef552d8ece76404acf44842012f84430e8b877b13", + core_lib = "lib/netstandard1.5/CommandLine.dll", + net_lib = "lib/net45/CommandLine.dll", + mono_lib = "lib/net45/CommandLine.dll", + core_deps = [ + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.collections.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.console.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.diagnostics.debug.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.globalization.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.io.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.linq.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.linq.expressions.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.reflection.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.reflection.extensions.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.reflection.typeextensions.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.resources.resourcemanager.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.runtime.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.runtime.extensions.dll", + ], + net_deps = [ + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.collections.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.console.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.diagnostics.debug.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.globalization.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.io.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.linq.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.linq.expressions.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.reflection.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.reflection.extensions.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.reflection.typeextensions.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.resources.resourcemanager.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.runtime.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.runtime.extensions.dll", + ], + mono_deps = [ + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.collections.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.console.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.diagnostics.debug.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.globalization.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.io.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.linq.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.linq.expressions.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.reflection.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.reflection.extensions.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.reflection.typeextensions.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.resources.resourcemanager.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.runtime.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.runtime.extensions.dll", + ], + core_files = [ + "lib/netstandard1.5/CommandLine.dll", + "lib/netstandard1.5/CommandLine.xml", + ], + net_files = [ + "lib/net45/CommandLine.dll", + "lib/net45/CommandLine.XML", + ], + mono_files = [ + "lib/net45/CommandLine.dll", + "lib/net45/CommandLine.XML", + ], + ) + + nuget_package( + name = "newtonsoft.json", + package = "newtonsoft.json", + version = "11.0.2", + sha256 = "679e438d5eb7d7e5599aa71b65fd23ee50dabf57579607873b87d34aec11ca1e", + core_lib = "lib/netstandard2.0/Newtonsoft.Json.dll", + net_lib = "lib/net45/Newtonsoft.Json.dll", + mono_lib = "lib/net45/Newtonsoft.Json.dll", + core_deps = [ + ], + net_deps = [ + ], + mono_deps = [ + ], + core_files = [ + "lib/netstandard2.0/Newtonsoft.Json.dll", + "lib/netstandard2.0/Newtonsoft.Json.xml", + ], + net_files = [ + "lib/net45/Newtonsoft.Json.dll", + "lib/net45/Newtonsoft.Json.xml", + ], + mono_files = [ + "lib/net45/Newtonsoft.Json.dll", + "lib/net45/Newtonsoft.Json.xml", + ], + ) + + nuget_package( + name = "nuget.frameworks", + package = "nuget.frameworks", + version = "4.8.0", + sha256 = "0228601ad2becf5ec3825882f556fdd821e2f470e504a659acdeabc908ce9060", + core_lib = "lib/netstandard1.6/NuGet.Frameworks.dll", + net_lib = "lib/net46/NuGet.Frameworks.dll", + mono_lib = "lib/net46/NuGet.Frameworks.dll", + core_deps = [ + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + ], + net_deps = [ + ], + mono_deps = [ + ], + core_files = [ + "lib/netstandard1.6/NuGet.Frameworks.dll", + "lib/netstandard1.6/NuGet.Frameworks.xml", + ], + net_files = [ + "lib/net46/NuGet.Frameworks.dll", + "lib/net46/NuGet.Frameworks.xml", + ], + mono_files = [ + "lib/net46/NuGet.Frameworks.dll", + "lib/net46/NuGet.Frameworks.xml", + ], + ) + + nuget_package( + name = "nuget.common", + package = "nuget.common", + version = "4.8.0", + sha256 = "1e1fe6c30798661ee1ee1342c444a4ef0c3113a6ef5e3c4105de70fbcb01562e", + core_lib = "lib/netstandard1.6/NuGet.Common.dll", + net_lib = "lib/net46/NuGet.Common.dll", + mono_lib = "lib/net46/NuGet.Common.dll", + core_deps = [ + "@nuget.frameworks//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.diagnostics.process.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.threading.thread.dll", + ], + net_deps = [ + "@nuget.frameworks//:net", + ], + mono_deps = [ + "@nuget.frameworks//:mono", + ], + core_files = [ + "lib/netstandard1.6/NuGet.Common.dll", + "lib/netstandard1.6/NuGet.Common.xml", + ], + net_files = [ + "lib/net46/NuGet.Common.dll", + "lib/net46/NuGet.Common.xml", + ], + mono_files = [ + "lib/net46/NuGet.Common.dll", + "lib/net46/NuGet.Common.xml", + ], + ) + + nuget_package( + name = "nuget.configuration", + package = "nuget.configuration", + version = "4.8.0", + sha256 = "c6dcd79a03353d3e9296f52f7b0206430aca7ec3332a61424e28dc6d6a03ffc5", + core_lib = "lib/netstandard1.6/NuGet.Configuration.dll", + net_lib = "lib/net46/NuGet.Configuration.dll", + mono_lib = "lib/net46/NuGet.Configuration.dll", + core_deps = [ + "@nuget.common//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.security.cryptography.protecteddata.dll", + ], + net_deps = [ + "@nuget.common//:net", + ], + mono_deps = [ + "@nuget.common//:mono", + ], + core_files = [ + "lib/netstandard1.6/NuGet.Configuration.dll", + "lib/netstandard1.6/NuGet.Configuration.xml", + ], + net_files = [ + "lib/net46/NuGet.Configuration.dll", + "lib/net46/NuGet.Configuration.xml", + ], + mono_files = [ + "lib/net46/NuGet.Configuration.dll", + "lib/net46/NuGet.Configuration.xml", + ], + ) + + nuget_package( + name = "microsoft.web.xdt", + package = "microsoft.web.xdt", + version = "2.1.2", + sha256 = "ba0649bf72baa8e574feaaa366774d8eadfa6f2c65ae11326a45661b5815c88b", + core_lib = "lib/net40/Microsoft.Web.XmlTransform.dll", + net_lib = "lib/net40/Microsoft.Web.XmlTransform.dll", + mono_lib = "lib/net40/Microsoft.Web.XmlTransform.dll", + core_deps = [ + ], + net_deps = [ + ], + mono_deps = [ + ], + core_files = [ + ], + net_files = [ + "lib/net40/Microsoft.Web.XmlTransform.dll", + ], + mono_files = [ + "lib/net40/Microsoft.Web.XmlTransform.dll", + ], + ) + + nuget_package( + name = "nuget.versioning", + package = "nuget.versioning", + version = "4.8.0", + sha256 = "1595aee52364a56853c8d339eb18354cd1342628a0d1d15bcd296e38509dd534", + core_lib = "lib/netstandard1.6/NuGet.Versioning.dll", + net_lib = "lib/net46/NuGet.Versioning.dll", + mono_lib = "lib/net46/NuGet.Versioning.dll", + core_deps = [ + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + ], + net_deps = [ + ], + mono_deps = [ + ], + core_files = [ + "lib/netstandard1.6/NuGet.Versioning.dll", + "lib/netstandard1.6/NuGet.Versioning.xml", + ], + net_files = [ + "lib/net46/NuGet.Versioning.dll", + "lib/net46/NuGet.Versioning.xml", + ], + mono_files = [ + "lib/net46/NuGet.Versioning.dll", + "lib/net46/NuGet.Versioning.xml", + ], + ) + + nuget_package( + name = "nuget.librarymodel", + package = "nuget.librarymodel", + version = "4.8.0", + sha256 = "caf98979fdc9202d610d9fe74204b92b0e4a25e458fab8a6208297b5a78d005d", + core_lib = "lib/netstandard1.6/NuGet.LibraryModel.dll", + net_lib = "lib/net46/NuGet.LibraryModel.dll", + mono_lib = "lib/net46/NuGet.LibraryModel.dll", + core_deps = [ + "@nuget.common//:core", + "@nuget.versioning//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + ], + net_deps = [ + "@nuget.common//:net", + "@nuget.versioning//:net", + ], + mono_deps = [ + "@nuget.common//:mono", + "@nuget.versioning//:mono", + ], + core_files = [ + "lib/netstandard1.6/NuGet.LibraryModel.dll", + "lib/netstandard1.6/NuGet.LibraryModel.xml", + ], + net_files = [ + "lib/net46/NuGet.LibraryModel.dll", + "lib/net46/NuGet.LibraryModel.xml", + ], + mono_files = [ + "lib/net46/NuGet.LibraryModel.dll", + "lib/net46/NuGet.LibraryModel.xml", + ], + ) + + nuget_package( + name = "nuget.packaging.core", + package = "nuget.packaging.core", + version = "4.8.0", + sha256 = "3002b9a69887e8452bc21693117c60a0d39c4d0fc55d3e584d9770237b9ba57a", + core_lib = "lib/netstandard1.6/NuGet.Packaging.Core.dll", + net_lib = "lib/net46/NuGet.Packaging.Core.dll", + mono_lib = "lib/net46/NuGet.Packaging.Core.dll", + core_deps = [ + "@nuget.common//:core", + "@nuget.versioning//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + ], + net_deps = [ + "@nuget.common//:net", + "@nuget.versioning//:net", + ], + mono_deps = [ + "@nuget.common//:mono", + "@nuget.versioning//:mono", + ], + core_files = [ + "lib/netstandard1.6/NuGet.Packaging.Core.dll", + "lib/netstandard1.6/NuGet.Packaging.Core.xml", + ], + net_files = [ + "lib/net46/NuGet.Packaging.Core.dll", + "lib/net46/NuGet.Packaging.Core.xml", + ], + mono_files = [ + "lib/net46/NuGet.Packaging.Core.dll", + "lib/net46/NuGet.Packaging.Core.xml", + ], + ) + + nuget_package( + name = "nuget.packaging", + package = "nuget.packaging", + version = "4.8.0", + sha256 = "43f8f20c4312de46d44d62411abdb647b739fff451cd0d06534851a55a97228f", + core_lib = "lib/netstandard1.6/NuGet.Packaging.dll", + net_lib = "lib/net46/NuGet.Packaging.dll", + mono_lib = "lib/net46/NuGet.Packaging.dll", + core_deps = [ + "@nuget.packaging.core//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + "@newtonsoft.json//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.dynamic.runtime.dll", + ], + net_deps = [ + "@nuget.packaging.core//:net", + "@newtonsoft.json//:net", + ], + mono_deps = [ + "@nuget.packaging.core//:mono", + "@newtonsoft.json//:mono", + ], + core_files = [ + "lib/netstandard1.6/NuGet.Packaging.dll", + "lib/netstandard1.6/NuGet.Packaging.xml", + ], + net_files = [ + "lib/net46/NuGet.Packaging.dll", + "lib/net46/NuGet.Packaging.xml", + ], + mono_files = [ + "lib/net46/NuGet.Packaging.dll", + "lib/net46/NuGet.Packaging.xml", + ], + ) + + nuget_package( + name = "nuget.protocol", + package = "nuget.protocol", + version = "4.8.0", + sha256 = "c48ce771fc8c9b7d3ee736ef79890a43683936b224a89a0fcd9772d94c64f24c", + core_lib = "lib/netstandard1.6/NuGet.Protocol.dll", + net_lib = "lib/net46/NuGet.Protocol.dll", + mono_lib = "lib/net46/NuGet.Protocol.dll", + core_deps = [ + "@nuget.configuration//:core", + "@nuget.packaging//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.dynamic.runtime.dll", + ], + net_deps = [ + "@nuget.configuration//:net", + "@nuget.packaging//:net", + ], + mono_deps = [ + "@nuget.configuration//:mono", + "@nuget.packaging//:mono", + ], + core_files = [ + "lib/netstandard1.6/NuGet.Protocol.dll", + "lib/netstandard1.6/NuGet.Protocol.xml", + ], + net_files = [ + "lib/net46/NuGet.Protocol.dll", + "lib/net46/NuGet.Protocol.xml", + ], + mono_files = [ + "lib/net46/NuGet.Protocol.dll", + "lib/net46/NuGet.Protocol.xml", + ], + ) + + nuget_package( + name = "nuget.credentials", + package = "nuget.credentials", + version = "4.8.0", + sha256 = "06f11610731918ecde42acb683bb0656b74897106e0edcb109cd9b40535f65fd", + core_lib = "lib/netstandard1.6/NuGet.Credentials.dll", + net_lib = "lib/net46/NuGet.Credentials.dll", + mono_lib = "lib/net46/NuGet.Credentials.dll", + core_deps = [ + "@nuget.protocol//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:System.Runtime.Serialization.Formatters.dll", + ], + net_deps = [ + "@nuget.protocol//:net", + ], + mono_deps = [ + "@nuget.protocol//:mono", + ], + core_files = [ + "lib/netstandard1.6/NuGet.Credentials.dll", + ], + net_files = [ + "lib/net46/NuGet.Credentials.dll", + ], + mono_files = [ + "lib/net46/NuGet.Credentials.dll", + ], + ) + + nuget_package( + name = "nuget.dependencyresolver.core", + package = "nuget.dependencyresolver.core", + version = "4.8.0", + sha256 = "d31e1377de8db1d82109b9813587688073f17b4249baeb99a6743eb266753682", + core_lib = "lib/netstandard1.6/NuGet.DependencyResolver.Core.dll", + net_lib = "lib/net46/NuGet.DependencyResolver.Core.dll", + mono_lib = "lib/net46/NuGet.DependencyResolver.Core.dll", + core_deps = [ + "@nuget.librarymodel//:core", + "@nuget.protocol//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + ], + net_deps = [ + "@nuget.librarymodel//:net", + "@nuget.protocol//:net", + ], + mono_deps = [ + "@nuget.librarymodel//:mono", + "@nuget.protocol//:mono", + ], + core_files = [ + "lib/netstandard1.6/NuGet.DependencyResolver.Core.dll", + "lib/netstandard1.6/NuGet.DependencyResolver.Core.xml", + ], + net_files = [ + "lib/net46/NuGet.DependencyResolver.Core.dll", + "lib/net46/NuGet.DependencyResolver.Core.xml", + ], + mono_files = [ + "lib/net46/NuGet.DependencyResolver.Core.dll", + "lib/net46/NuGet.DependencyResolver.Core.xml", + ], + ) + + nuget_package( + name = "nuget.projectmodel", + package = "nuget.projectmodel", + version = "4.8.0", + sha256 = "27dd4cb819d95c06e74b0548edf05594e6be96f51fc72d460b9e0bdc12fe4479", + core_lib = "lib/netstandard1.6/NuGet.ProjectModel.dll", + net_lib = "lib/net46/NuGet.ProjectModel.dll", + mono_lib = "lib/net46/NuGet.ProjectModel.dll", + core_deps = [ + "@nuget.dependencyresolver.core//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.dynamic.runtime.dll", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:system.threading.thread.dll", + ], + net_deps = [ + "@nuget.dependencyresolver.core//:net", + ], + mono_deps = [ + "@nuget.dependencyresolver.core//:mono", + ], + core_files = [ + "lib/netstandard1.6/NuGet.ProjectModel.dll", + "lib/netstandard1.6/NuGet.ProjectModel.xml", + ], + net_files = [ + "lib/net46/NuGet.ProjectModel.dll", + "lib/net46/NuGet.ProjectModel.xml", + ], + mono_files = [ + "lib/net46/NuGet.ProjectModel.dll", + "lib/net46/NuGet.ProjectModel.xml", + ], + ) + + nuget_package( + name = "nuget.commands", + package = "nuget.commands", + version = "4.8.0", + sha256 = "56f9396b760a77af914fd9d419bf7c878305301c43ab0268f8b51b86c990394f", + core_lib = "lib/netstandard1.6/NuGet.Commands.dll", + net_lib = "lib/net46/NuGet.Commands.dll", + mono_lib = "lib/net46/NuGet.Commands.dll", + core_deps = [ + "@nuget.credentials//:core", + "@nuget.projectmodel//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + ], + net_deps = [ + "@nuget.credentials//:net", + "@nuget.projectmodel//:net", + ], + mono_deps = [ + "@nuget.credentials//:mono", + "@nuget.projectmodel//:mono", + ], + core_files = [ + "lib/netstandard1.6/NuGet.Commands.dll", + "lib/netstandard1.6/NuGet.Commands.xml", + ], + net_files = [ + "lib/net46/NuGet.Commands.dll", + "lib/net46/NuGet.Commands.xml", + ], + mono_files = [ + "lib/net46/NuGet.Commands.dll", + "lib/net46/NuGet.Commands.xml", + ], + ) + + nuget_package( + name = "nuget.resolver", + package = "nuget.resolver", + version = "4.8.0", + sha256 = "d3c69eba7912022e0d5dac08f0a3085b9885fe53ac914ffac8146fe8b4c15468", + core_lib = "lib/netstandard1.6/NuGet.Resolver.dll", + net_lib = "lib/net46/NuGet.Resolver.dll", + mono_lib = "lib/net46/NuGet.Resolver.dll", + core_deps = [ + "@nuget.protocol//:core", + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + ], + net_deps = [ + "@nuget.protocol//:net", + ], + mono_deps = [ + "@nuget.protocol//:mono", + ], + core_files = [ + "lib/netstandard1.6/NuGet.Resolver.dll", + "lib/netstandard1.6/NuGet.Resolver.xml", + ], + net_files = [ + "lib/net46/NuGet.Resolver.dll", + "lib/net46/NuGet.Resolver.xml", + ], + mono_files = [ + "lib/net46/NuGet.Resolver.dll", + "lib/net46/NuGet.Resolver.xml", + ], + ) + + nuget_package( + name = "nuget.packagemanagement", + package = "nuget.packagemanagement", + version = "4.8.0", + sha256 = "386a5f74a2564c6e10f210a8fdb5a40d0f9deb53c3368428da45d96f01889003", + core_lib = "lib/net46/NuGet.PackageManagement.dll", + net_lib = "lib/net46/NuGet.PackageManagement.dll", + mono_lib = "lib/net46/NuGet.PackageManagement.dll", + core_deps = [ + ], + net_deps = [ + "@nuget.commands//:net", + "@nuget.resolver//:net", + "@microsoft.web.xdt//:net", + ], + mono_deps = [ + "@nuget.commands//:mono", + "@nuget.resolver//:mono", + "@microsoft.web.xdt//:mono", + ], + core_files = [ + ], + net_files = [ + "lib/net46/NuGet.PackageManagement.dll", + "lib/net46/NuGet.PackageManagement.xml", + ], + mono_files = [ + "lib/net46/NuGet.PackageManagement.dll", + "lib/net46/NuGet.PackageManagement.xml", + ], + ) + ### End of generated by the tool \ No newline at end of file
diff --git a/csharp/nuget/protobuf.bzl b/csharp/nuget/protobuf.bzl new file mode 100644 index 0000000..cf62cea --- /dev/null +++ b/csharp/nuget/protobuf.bzl
@@ -0,0 +1,33 @@ +load("io_bazel_rules_dotnet//dotnet:defs.bzl", "nuget_package") +def packages(): + + ### Generated by the tool + nuget_package( + name = "google.protobuf", + package = "google.protobuf", + version = "3.6.1", + sha256 = "bfa7666aa55e60aa2ee65502966336f812702acaaf7c62d12f276a01ab3aa9a4", + core_lib = "lib/netstandard1.0/Google.Protobuf.dll", + net_lib = "lib/net45/Google.Protobuf.dll", + mono_lib = "lib/net45/Google.Protobuf.dll", + core_deps = [ + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + ], + net_deps = [ + ], + mono_deps = [ + ], + core_files = [ + "lib/netstandard1.0/Google.Protobuf.dll", + "lib/netstandard1.0/Google.Protobuf.xml", + ], + net_files = [ + "lib/net45/Google.Protobuf.dll", + "lib/net45/Google.Protobuf.xml", + ], + mono_files = [ + "lib/net45/Google.Protobuf.dll", + "lib/net45/Google.Protobuf.xml", + ], + ) + ### End of generated by the tool
diff --git a/csharp/nuget/regenerate_packages.sh b/csharp/nuget/regenerate_packages.sh new file mode 100755 index 0000000..5f2ea80 --- /dev/null +++ b/csharp/nuget/regenerate_packages.sh
@@ -0,0 +1,42 @@ +#!/bin/bash + +# +# Script is written to be run from the WORKSPACE root +# +set -eu +set -o pipefail + +PROTOBUF_VERSION="3.6.1" +GRPC_VERSION="1.15.0" + +TOOL="./bazel-bin/external/io_bazel_rules_dotnet/tools/nuget2bazel/nuget2bazel" + +# Compile the tool, cannot use sandboxing +bazel build --spawn_strategy=standalone @io_bazel_rules_dotnet//tools/nuget2bazel + +# Make temp directory +TMPDIR=$(mktemp -d ${TMPDIR:-/tmp}/nuget.XXXXXXXXXX) + +# Tool only works on WORKSPACE files so we have to do these shenanigans +touch "${TMPDIR}/WORKSPACE" + +# Gather protobuf deps +"${TOOL}" add --path "/${TMPDIR}" Google.Protobuf "${PROTOBUF_VERSION}" + +# Create the nuget.bzl file, indent 4 spaces +echo 'load("@io_bazel_rules_dotnet//dotnet:defs.bzl", "nuget_package")' > ./csharp/nuget/nuget.bzl +echo "def nuget_protobuf_packages():" >> csharp/nuget/nuget.bzl +sed -e 's/^/ /' "${TMPDIR}/WORKSPACE" >> csharp/nuget/nuget.bzl + +# Reset the workspace file +echo "" > "${TMPDIR}/WORKSPACE" + +# Rerun it for grpc deps +"${TOOL}" add --path "/${TMPDIR}" Grpc "${GRPC_VERSION}" + +# Similarly, write the gprc.bzl file +echo "def nuget_grpc_packages():" >> ./csharp/nuget/nuget.bzl +sed -e 's/^/ /' "${TMPDIR}/WORKSPACE" >> ./csharp/nuget/nuget.bzl + +# Cleanup +rm -rf "${TMPDIR}"
diff --git a/csharp/nuget/work/WORKSPACE b/csharp/nuget/work/WORKSPACE new file mode 100644 index 0000000..8d971bd --- /dev/null +++ b/csharp/nuget/work/WORKSPACE
@@ -0,0 +1,31 @@ + +### Generated by the tool +nuget_package( + name = "google.protobuf", + package = "google.protobuf", + version = "3.6.1", + sha256 = "bfa7666aa55e60aa2ee65502966336f812702acaaf7c62d12f276a01ab3aa9a4", + core_lib = "lib/netstandard1.0/Google.Protobuf.dll", + net_lib = "lib/net45/Google.Protobuf.dll", + mono_lib = "lib/net45/Google.Protobuf.dll", + core_deps = [ + "@io_bazel_rules_dotnet//dotnet/stdlib.core:netstandard.library.dll", + ], + net_deps = [ + ], + mono_deps = [ + ], + core_files = [ + "lib/netstandard1.0/Google.Protobuf.dll", + "lib/netstandard1.0/Google.Protobuf.xml", + ], + net_files = [ + "lib/net45/Google.Protobuf.dll", + "lib/net45/Google.Protobuf.xml", + ], + mono_files = [ + "lib/net45/Google.Protobuf.dll", + "lib/net45/Google.Protobuf.xml", + ], +) +### End of generated by the tool
diff --git a/csharp/nuget/work/packages.json b/csharp/nuget/work/packages.json new file mode 100644 index 0000000..e1dd3d5 --- /dev/null +++ b/csharp/nuget/work/packages.json
@@ -0,0 +1,5 @@ +{ + "dependencies": { + "Google.Protobuf": "3.6.1" + } +} \ No newline at end of file
diff --git a/csharp/nuget/work/packages/Google.Protobuf.3.6.1/.signature.p7s b/csharp/nuget/work/packages/Google.Protobuf.3.6.1/.signature.p7s new file mode 100755 index 0000000..bb7a5fd --- /dev/null +++ b/csharp/nuget/work/packages/Google.Protobuf.3.6.1/.signature.p7s Binary files differ
diff --git a/csharp/nuget/work/packages/Google.Protobuf.3.6.1/Google.Protobuf.3.6.1.nupkg b/csharp/nuget/work/packages/Google.Protobuf.3.6.1/Google.Protobuf.3.6.1.nupkg new file mode 100644 index 0000000..f28eb7a --- /dev/null +++ b/csharp/nuget/work/packages/Google.Protobuf.3.6.1/Google.Protobuf.3.6.1.nupkg Binary files differ
diff --git a/csharp/nuget/work/packages/Google.Protobuf.3.6.1/lib/net45/Google.Protobuf.dll b/csharp/nuget/work/packages/Google.Protobuf.3.6.1/lib/net45/Google.Protobuf.dll new file mode 100755 index 0000000..3683dc8 --- /dev/null +++ b/csharp/nuget/work/packages/Google.Protobuf.3.6.1/lib/net45/Google.Protobuf.dll Binary files differ
diff --git a/csharp/nuget/work/packages/Google.Protobuf.3.6.1/lib/net45/Google.Protobuf.xml b/csharp/nuget/work/packages/Google.Protobuf.3.6.1/lib/net45/Google.Protobuf.xml new file mode 100755 index 0000000..18a593a --- /dev/null +++ b/csharp/nuget/work/packages/Google.Protobuf.3.6.1/lib/net45/Google.Protobuf.xml
@@ -0,0 +1,7548 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Google.Protobuf</name> + </assembly> + <members> + <member name="T:Google.Protobuf.ByteArray"> + <summary> + Provides a utility routine to copy small arrays much more quickly than Buffer.BlockCopy + </summary> + </member> + <member name="F:Google.Protobuf.ByteArray.CopyThreshold"> + <summary> + The threshold above which you should use Buffer.BlockCopy rather than ByteArray.Copy + </summary> + </member> + <member name="M:Google.Protobuf.ByteArray.Copy(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Int32)"> + <summary> + Determines which copy routine to use based on the number of bytes to be copied. + </summary> + </member> + <member name="M:Google.Protobuf.ByteArray.Reverse(System.Byte[])"> + <summary> + Reverses the order of bytes in the array + </summary> + </member> + <member name="T:Google.Protobuf.ByteString"> + <summary> + Immutable array of bytes. + </summary> + </member> + <member name="T:Google.Protobuf.ByteString.Unsafe"> + <summary> + Unsafe operations that can cause IO Failure and/or other catestrophic side-effects. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.Unsafe.FromBytes(System.Byte[])"> + <summary> + Constructs a new ByteString from the given byte array. The array is + *not* copied, and must not be modified after this constructor is called. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.Unsafe.GetBuffer(Google.Protobuf.ByteString)"> + <summary> + Provides direct, unrestricted access to the bytes contained in this instance. + You must not modify or resize the byte array returned by this method. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.AttachBytes(System.Byte[])"> + <summary> + Internal use only. Ensure that the provided array is not mutated and belongs to this instance. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.#ctor(System.Byte[])"> + <summary> + Constructs a new ByteString from the given byte array. The array is + *not* copied, and must not be modified after this constructor is called. + </summary> + </member> + <member name="P:Google.Protobuf.ByteString.Empty"> + <summary> + Returns an empty ByteString. + </summary> + </member> + <member name="P:Google.Protobuf.ByteString.Length"> + <summary> + Returns the length of this ByteString in bytes. + </summary> + </member> + <member name="P:Google.Protobuf.ByteString.IsEmpty"> + <summary> + Returns <c>true</c> if this byte string is empty, <c>false</c> otherwise. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.ToByteArray"> + <summary> + Converts this <see cref="T:Google.Protobuf.ByteString"/> into a byte array. + </summary> + <remarks>The data is copied - changes to the returned array will not be reflected in this <c>ByteString</c>.</remarks> + <returns>A byte array with the same data as this <c>ByteString</c>.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.ToBase64"> + <summary> + Converts this <see cref="T:Google.Protobuf.ByteString"/> into a standard base64 representation. + </summary> + <returns>A base64 representation of this <c>ByteString</c>.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.FromBase64(System.String)"> + <summary> + Constructs a <see cref="T:Google.Protobuf.ByteString" /> from the Base64 Encoded String. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.FromStream(System.IO.Stream)"> + <summary> + Constructs a <see cref="T:Google.Protobuf.ByteString"/> from data in the given stream, synchronously. + </summary> + <remarks>If successful, <paramref name="stream"/> will be read completely, from the position + at the start of the call.</remarks> + <param name="stream">The stream to copy into a ByteString.</param> + <returns>A ByteString with content read from the given stream.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.FromStreamAsync(System.IO.Stream,System.Threading.CancellationToken)"> + <summary> + Constructs a <see cref="T:Google.Protobuf.ByteString"/> from data in the given stream, asynchronously. + </summary> + <remarks>If successful, <paramref name="stream"/> will be read completely, from the position + at the start of the call.</remarks> + <param name="stream">The stream to copy into a ByteString.</param> + <param name="cancellationToken">The cancellation token to use when reading from the stream, if any.</param> + <returns>A ByteString with content read from the given stream.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.CopyFrom(System.Byte[])"> + <summary> + Constructs a <see cref="T:Google.Protobuf.ByteString" /> from the given array. The contents + are copied, so further modifications to the array will not + be reflected in the returned ByteString. + This method can also be invoked in <c>ByteString.CopyFrom(0xaa, 0xbb, ...)</c> form + which is primarily useful for testing. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.CopyFrom(System.Byte[],System.Int32,System.Int32)"> + <summary> + Constructs a <see cref="T:Google.Protobuf.ByteString" /> from a portion of a byte array. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.CopyFrom(System.String,System.Text.Encoding)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.ByteString" /> by encoding the specified text with + the given encoding. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.CopyFromUtf8(System.String)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.ByteString" /> by encoding the specified text in UTF-8. + </summary> + </member> + <member name="P:Google.Protobuf.ByteString.Item(System.Int32)"> + <summary> + Retuns the byte at the given index. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.ToString(System.Text.Encoding)"> + <summary> + Converts this <see cref="T:Google.Protobuf.ByteString"/> into a string by applying the given encoding. + </summary> + <remarks> + This method should only be used to convert binary data which was the result of encoding + text with the given encoding. + </remarks> + <param name="encoding">The encoding to use to decode the binary data into text.</param> + <returns>The result of decoding the binary data with the given decoding.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.ToStringUtf8"> + <summary> + Converts this <see cref="T:Google.Protobuf.ByteString"/> into a string by applying the UTF-8 encoding. + </summary> + <remarks> + This method should only be used to convert binary data which was the result of encoding + text with UTF-8. + </remarks> + <returns>The result of decoding the binary data with the given decoding.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.GetEnumerator"> + <summary> + Returns an iterator over the bytes in this <see cref="T:Google.Protobuf.ByteString"/>. + </summary> + <returns>An iterator over the bytes in this object.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.System#Collections#IEnumerable#GetEnumerator"> + <summary> + Returns an iterator over the bytes in this <see cref="T:Google.Protobuf.ByteString"/>. + </summary> + <returns>An iterator over the bytes in this object.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.CreateCodedInput"> + <summary> + Creates a CodedInputStream from this ByteString's data. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.op_Equality(Google.Protobuf.ByteString,Google.Protobuf.ByteString)"> + <summary> + Compares two byte strings for equality. + </summary> + <param name="lhs">The first byte string to compare.</param> + <param name="rhs">The second byte string to compare.</param> + <returns><c>true</c> if the byte strings are equal; false otherwise.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.op_Inequality(Google.Protobuf.ByteString,Google.Protobuf.ByteString)"> + <summary> + Compares two byte strings for inequality. + </summary> + <param name="lhs">The first byte string to compare.</param> + <param name="rhs">The second byte string to compare.</param> + <returns><c>false</c> if the byte strings are equal; true otherwise.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.Equals(System.Object)"> + <summary> + Compares this byte string with another object. + </summary> + <param name="obj">The object to compare this with.</param> + <returns><c>true</c> if <paramref name="obj"/> refers to an equal <see cref="T:Google.Protobuf.ByteString"/>; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.GetHashCode"> + <summary> + Returns a hash code for this object. Two equal byte strings + will return the same hash code. + </summary> + <returns>A hash code for this object.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.Equals(Google.Protobuf.ByteString)"> + <summary> + Compares this byte string with another. + </summary> + <param name="other">The <see cref="T:Google.Protobuf.ByteString"/> to compare this with.</param> + <returns><c>true</c> if <paramref name="other"/> refers to an equal byte string; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.WriteRawBytesTo(Google.Protobuf.CodedOutputStream)"> + <summary> + Used internally by CodedOutputStream to avoid creating a copy for the write + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.CopyTo(System.Byte[],System.Int32)"> + <summary> + Copies the entire byte array to the destination array provided at the offset specified. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.WriteTo(System.IO.Stream)"> + <summary> + Writes the entire byte array to the provided stream + </summary> + </member> + <member name="T:Google.Protobuf.CodedInputStream"> + <summary> + Reads and decodes protocol message fields. + </summary> + <remarks> + <para> + This class is generally used by generated code to read appropriate + primitives from the stream. It effectively encapsulates the lowest + levels of protocol buffer format. + </para> + <para> + Repeated fields and map fields are not handled by this class; use <see cref="T:Google.Protobuf.Collections.RepeatedField`1"/> + and <see cref="T:Google.Protobuf.Collections.MapField`2"/> to serialize such fields. + </para> + </remarks> + </member> + <member name="F:Google.Protobuf.CodedInputStream.leaveOpen"> + <summary> + Whether to leave the underlying stream open when disposing of this stream. + This is always true when there's no stream. + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.buffer"> + <summary> + Buffer of data read from the stream or provided at construction time. + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.bufferSize"> + <summary> + The index of the buffer at which we need to refill from the stream (if there is one). + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.bufferPos"> + <summary> + The position within the current buffer (i.e. the next byte to read) + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.input"> + <summary> + The stream to read further input from, or null if the byte array buffer was provided + directly on construction, with no further data available. + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.lastTag"> + <summary> + The last tag we read. 0 indicates we've read to the end of the stream + (or haven't read anything yet). + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.nextTag"> + <summary> + The next tag, used to store the value read by PeekTag. + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.totalBytesRetired"> + <summary> + The total number of bytes read before the current buffer. The + total bytes read up to the current position can be computed as + totalBytesRetired + bufferPos. + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.currentLimit"> + <summary> + The absolute position of the end of the current message. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.#ctor(System.Byte[])"> + <summary> + Creates a new CodedInputStream reading data from the given byte array. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.#ctor(System.Byte[],System.Int32,System.Int32)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.CodedInputStream"/> that reads from the given byte array slice. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.#ctor(System.IO.Stream)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.CodedInputStream"/> reading data from the given stream, which will be disposed + when the returned object is disposed. + </summary> + <param name="input">The stream to read from.</param> + </member> + <member name="M:Google.Protobuf.CodedInputStream.#ctor(System.IO.Stream,System.Boolean)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.CodedInputStream"/> reading data from the given stream. + </summary> + <param name="input">The stream to read from.</param> + <param name="leaveOpen"><c>true</c> to leave <paramref name="input"/> open when the returned + <c cref="T:Google.Protobuf.CodedInputStream"/> is disposed; <c>false</c> to dispose of the given stream when the + returned object is disposed.</param> + </member> + <member name="M:Google.Protobuf.CodedInputStream.#ctor(System.IO.Stream,System.Byte[],System.Int32,System.Int32,System.Boolean)"> + <summary> + Creates a new CodedInputStream reading data from the given + stream and buffer, using the default limits. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.#ctor(System.IO.Stream,System.Byte[],System.Int32,System.Int32,System.Int32,System.Int32,System.Boolean)"> + <summary> + Creates a new CodedInputStream reading data from the given + stream and buffer, using the specified limits. + </summary> + <remarks> + This chains to the version with the default limits instead of vice versa to avoid + having to check that the default values are valid every time. + </remarks> + </member> + <member name="M:Google.Protobuf.CodedInputStream.CreateWithLimits(System.IO.Stream,System.Int32,System.Int32)"> + <summary> + Creates a <see cref="T:Google.Protobuf.CodedInputStream"/> with the specified size and recursion limits, reading + from an input stream. + </summary> + <remarks> + This method exists separately from the constructor to reduce the number of constructor overloads. + It is likely to be used considerably less frequently than the constructors, as the default limits + are suitable for most use cases. + </remarks> + <param name="input">The input stream to read from</param> + <param name="sizeLimit">The total limit of data to read from the stream.</param> + <param name="recursionLimit">The maximum recursion depth to allow while reading.</param> + <returns>A <c>CodedInputStream</c> reading from <paramref name="input"/> with the specified size + and recursion limits.</returns> + </member> + <member name="P:Google.Protobuf.CodedInputStream.Position"> + <summary> + Returns the current position in the input stream, or the position in the input buffer + </summary> + </member> + <member name="P:Google.Protobuf.CodedInputStream.LastTag"> + <summary> + Returns the last tag read, or 0 if no tags have been read or we've read beyond + the end of the stream. + </summary> + </member> + <member name="P:Google.Protobuf.CodedInputStream.SizeLimit"> + <summary> + Returns the size limit for this stream. + </summary> + <remarks> + This limit is applied when reading from the underlying stream, as a sanity check. It is + not applied when reading from a byte array data source without an underlying stream. + The default value is Int32.MaxValue. + </remarks> + <value> + The size limit. + </value> + </member> + <member name="P:Google.Protobuf.CodedInputStream.RecursionLimit"> + <summary> + Returns the recursion limit for this stream. This limit is applied whilst reading messages, + to avoid maliciously-recursive data. + </summary> + <remarks> + The default limit is 64. + </remarks> + <value> + The recursion limit for this stream. + </value> + </member> + <member name="P:Google.Protobuf.CodedInputStream.DiscardUnknownFields"> + <summary> + Internal-only property; when set to true, unknown fields will be discarded while parsing. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.Dispose"> + <summary> + Disposes of this instance, potentially closing any underlying stream. + </summary> + <remarks> + As there is no flushing to perform here, disposing of a <see cref="T:Google.Protobuf.CodedInputStream"/> which + was constructed with the <c>leaveOpen</c> option parameter set to <c>true</c> (or one which + was constructed to read from a byte array) has no effect. + </remarks> + </member> + <member name="M:Google.Protobuf.CodedInputStream.CheckReadEndOfStreamTag"> + <summary> + Verifies that the last call to ReadTag() returned tag 0 - in other words, + we've reached the end of the stream when we expected to. + </summary> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The + tag read was not the one specified</exception> + </member> + <member name="M:Google.Protobuf.CodedInputStream.PeekTag"> + <summary> + Peeks at the next field tag. This is like calling <see cref="M:Google.Protobuf.CodedInputStream.ReadTag"/>, but the + tag is not consumed. (So a subsequent call to <see cref="M:Google.Protobuf.CodedInputStream.ReadTag"/> will return the + same value.) + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadTag"> + <summary> + Reads a field tag, returning the tag of 0 for "end of stream". + </summary> + <remarks> + If this method returns 0, it doesn't necessarily mean the end of all + the data in this CodedInputStream; it may be the end of the logical stream + for an embedded message, for example. + </remarks> + <returns>The next field tag, or 0 for end of stream. (0 is never a valid tag.)</returns> + </member> + <member name="M:Google.Protobuf.CodedInputStream.SkipLastField"> + <summary> + Skips the data for the field with the tag we've just read. + This should be called directly after <see cref="M:Google.Protobuf.CodedInputStream.ReadTag"/>, when + the caller wishes to skip an unknown field. + </summary> + <remarks> + This method throws <see cref="T:Google.Protobuf.InvalidProtocolBufferException"/> if the last-read tag was an end-group tag. + If a caller wishes to skip a group, they should skip the whole group, by calling this method after reading the + start-group tag. This behavior allows callers to call this method on any field they don't understand, correctly + resulting in an error if an end-group tag has not been paired with an earlier start-group tag. + </remarks> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The last tag was an end-group tag</exception> + <exception cref="T:System.InvalidOperationException">The last read operation read to the end of the logical stream</exception> + </member> + <member name="M:Google.Protobuf.CodedInputStream.SkipGroup(System.UInt32)"> + <summary> + Skip a group. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadDouble"> + <summary> + Reads a double field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadFloat"> + <summary> + Reads a float field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadUInt64"> + <summary> + Reads a uint64 field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadInt64"> + <summary> + Reads an int64 field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadInt32"> + <summary> + Reads an int32 field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadFixed64"> + <summary> + Reads a fixed64 field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadFixed32"> + <summary> + Reads a fixed32 field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadBool"> + <summary> + Reads a bool field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadString"> + <summary> + Reads a string field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadMessage(Google.Protobuf.IMessage)"> + <summary> + Reads an embedded message field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadBytes"> + <summary> + Reads a bytes field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadUInt32"> + <summary> + Reads a uint32 field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadEnum"> + <summary> + Reads an enum field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadSFixed32"> + <summary> + Reads an sfixed32 field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadSFixed64"> + <summary> + Reads an sfixed64 field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadSInt32"> + <summary> + Reads an sint32 field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadSInt64"> + <summary> + Reads an sint64 field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadLength"> + <summary> + Reads a length for length-delimited data. + </summary> + <remarks> + This is internally just reading a varint, but this method exists + to make the calling code clearer. + </remarks> + </member> + <member name="M:Google.Protobuf.CodedInputStream.MaybeConsumeTag(System.UInt32)"> + <summary> + Peeks at the next tag in the stream. If it matches <paramref name="tag"/>, + the tag is consumed and the method returns <c>true</c>; otherwise, the + stream is left in the original position and the method returns <c>false</c>. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.SlowReadRawVarint32"> + <summary> + Same code as ReadRawVarint32, but read each byte individually, checking for + buffer overflow. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawVarint32"> + <summary> + Reads a raw Varint from the stream. If larger than 32 bits, discard the upper bits. + This method is optimised for the case where we've got lots of data in the buffer. + That means we can check the size just once, then just read directly from the buffer + without constant rechecking of the buffer length. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawVarint32(System.IO.Stream)"> + <summary> + Reads a varint from the input one byte at a time, so that it does not + read any bytes after the end of the varint. If you simply wrapped the + stream in a CodedInputStream and used ReadRawVarint32(Stream) + then you would probably end up reading past the end of the varint since + CodedInputStream buffers its input. + </summary> + <param name="input"></param> + <returns></returns> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawVarint64"> + <summary> + Reads a raw varint from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawLittleEndian32"> + <summary> + Reads a 32-bit little-endian integer from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawLittleEndian64"> + <summary> + Reads a 64-bit little-endian integer from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.DecodeZigZag32(System.UInt32)"> + <summary> + Decode a 32-bit value with ZigZag encoding. + </summary> + <remarks> + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + </remarks> + </member> + <member name="M:Google.Protobuf.CodedInputStream.DecodeZigZag64(System.UInt64)"> + <summary> + Decode a 32-bit value with ZigZag encoding. + </summary> + <remarks> + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + </remarks> + </member> + <member name="M:Google.Protobuf.CodedInputStream.PushLimit(System.Int32)"> + <summary> + Sets currentLimit to (current position) + byteLimit. This is called + when descending into a length-delimited embedded message. The previous + limit is returned. + </summary> + <returns>The old limit.</returns> + </member> + <member name="M:Google.Protobuf.CodedInputStream.PopLimit(System.Int32)"> + <summary> + Discards the current limit, returning the previous limit. + </summary> + </member> + <member name="P:Google.Protobuf.CodedInputStream.ReachedLimit"> + <summary> + Returns whether or not all the data before the limit has been read. + </summary> + <returns></returns> + </member> + <member name="P:Google.Protobuf.CodedInputStream.IsAtEnd"> + <summary> + Returns true if the stream has reached the end of the input. This is the + case if either the end of the underlying input source has been reached or + the stream has reached a limit created using PushLimit. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.RefillBuffer(System.Boolean)"> + <summary> + Called when buffer is empty to read more bytes from the + input. If <paramref name="mustSucceed"/> is true, RefillBuffer() gurantees that + either there will be at least one byte in the buffer when it returns + or it will throw an exception. If <paramref name="mustSucceed"/> is false, + RefillBuffer() returns false if no more bytes were available. + </summary> + <param name="mustSucceed"></param> + <returns></returns> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawByte"> + <summary> + Read one byte from the input. + </summary> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException"> + the end of the stream or the current limit was reached + </exception> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawBytes(System.Int32)"> + <summary> + Reads a fixed size of bytes from the input. + </summary> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException"> + the end of the stream or the current limit was reached + </exception> + </member> + <member name="M:Google.Protobuf.CodedInputStream.SkipRawBytes(System.Int32)"> + <summary> + Reads and discards <paramref name="size"/> bytes. + </summary> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">the end of the stream + or the current limit was reached</exception> + </member> + <member name="M:Google.Protobuf.CodedInputStream.SkipImpl(System.Int32)"> + <summary> + Abstraction of skipping to cope with streams which can't really skip. + </summary> + </member> + <member name="T:Google.Protobuf.CodedOutputStream"> + <summary> + Encodes and writes protocol message fields. + </summary> + <remarks> + <para> + This class is generally used by generated code to write appropriate + primitives to the stream. It effectively encapsulates the lowest + levels of protocol buffer format. Unlike some other implementations, + this does not include combined "write tag and value" methods. Generated + code knows the exact byte representations of the tags they're going to write, + so there's no need to re-encode them each time. Manually-written code calling + this class should just call one of the <c>WriteTag</c> overloads before each value. + </para> + <para> + Repeated fields and map fields are not handled by this class; use <c>RepeatedField<T></c> + and <c>MapField<TKey, TValue></c> to serialize such fields. + </para> + </remarks> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeDoubleSize(System.Double)"> + <summary> + Computes the number of bytes that would be needed to encode a + double field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeFloatSize(System.Single)"> + <summary> + Computes the number of bytes that would be needed to encode a + float field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeUInt64Size(System.UInt64)"> + <summary> + Computes the number of bytes that would be needed to encode a + uint64 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeInt64Size(System.Int64)"> + <summary> + Computes the number of bytes that would be needed to encode an + int64 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeInt32Size(System.Int32)"> + <summary> + Computes the number of bytes that would be needed to encode an + int32 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeFixed64Size(System.UInt64)"> + <summary> + Computes the number of bytes that would be needed to encode a + fixed64 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeFixed32Size(System.UInt32)"> + <summary> + Computes the number of bytes that would be needed to encode a + fixed32 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeBoolSize(System.Boolean)"> + <summary> + Computes the number of bytes that would be needed to encode a + bool field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeStringSize(System.String)"> + <summary> + Computes the number of bytes that would be needed to encode a + string field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeGroupSize(Google.Protobuf.IMessage)"> + <summary> + Computes the number of bytes that would be needed to encode a + group field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeMessageSize(Google.Protobuf.IMessage)"> + <summary> + Computes the number of bytes that would be needed to encode an + embedded message field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeBytesSize(Google.Protobuf.ByteString)"> + <summary> + Computes the number of bytes that would be needed to encode a + bytes field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeUInt32Size(System.UInt32)"> + <summary> + Computes the number of bytes that would be needed to encode a + uint32 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeEnumSize(System.Int32)"> + <summary> + Computes the number of bytes that would be needed to encode a + enum field, including the tag. The caller is responsible for + converting the enum value to its numeric value. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeSFixed32Size(System.Int32)"> + <summary> + Computes the number of bytes that would be needed to encode an + sfixed32 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeSFixed64Size(System.Int64)"> + <summary> + Computes the number of bytes that would be needed to encode an + sfixed64 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeSInt32Size(System.Int32)"> + <summary> + Computes the number of bytes that would be needed to encode an + sint32 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeSInt64Size(System.Int64)"> + <summary> + Computes the number of bytes that would be needed to encode an + sint64 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeLengthSize(System.Int32)"> + <summary> + Computes the number of bytes that would be needed to encode a length, + as written by <see cref="M:Google.Protobuf.CodedOutputStream.WriteLength(System.Int32)"/>. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeRawVarint32Size(System.UInt32)"> + <summary> + Computes the number of bytes that would be needed to encode a varint. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeRawVarint64Size(System.UInt64)"> + <summary> + Computes the number of bytes that would be needed to encode a varint. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeTagSize(System.Int32)"> + <summary> + Computes the number of bytes that would be needed to encode a tag. + </summary> + </member> + <member name="F:Google.Protobuf.CodedOutputStream.DefaultBufferSize"> + <summary> + The buffer size used by CreateInstance(Stream). + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.#ctor(System.Byte[])"> + <summary> + Creates a new CodedOutputStream that writes directly to the given + byte array. If more bytes are written than fit in the array, + OutOfSpaceException will be thrown. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.#ctor(System.Byte[],System.Int32,System.Int32)"> + <summary> + Creates a new CodedOutputStream that writes directly to the given + byte array slice. If more bytes are written than fit in the array, + OutOfSpaceException will be thrown. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.#ctor(System.IO.Stream)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.CodedOutputStream" /> which write to the given stream, and disposes of that + stream when the returned <c>CodedOutputStream</c> is disposed. + </summary> + <param name="output">The stream to write to. It will be disposed when the returned <c>CodedOutputStream is disposed.</c></param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.#ctor(System.IO.Stream,System.Int32)"> + <summary> + Creates a new CodedOutputStream which write to the given stream and uses + the specified buffer size. + </summary> + <param name="output">The stream to write to. It will be disposed when the returned <c>CodedOutputStream is disposed.</c></param> + <param name="bufferSize">The size of buffer to use internally.</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.#ctor(System.IO.Stream,System.Boolean)"> + <summary> + Creates a new CodedOutputStream which write to the given stream. + </summary> + <param name="output">The stream to write to.</param> + <param name="leaveOpen">If <c>true</c>, <paramref name="output"/> is left open when the returned <c>CodedOutputStream</c> is disposed; + if <c>false</c>, the provided stream is disposed as well.</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.#ctor(System.IO.Stream,System.Int32,System.Boolean)"> + <summary> + Creates a new CodedOutputStream which write to the given stream and uses + the specified buffer size. + </summary> + <param name="output">The stream to write to.</param> + <param name="bufferSize">The size of buffer to use internally.</param> + <param name="leaveOpen">If <c>true</c>, <paramref name="output"/> is left open when the returned <c>CodedOutputStream</c> is disposed; + if <c>false</c>, the provided stream is disposed as well.</param> + </member> + <member name="P:Google.Protobuf.CodedOutputStream.Position"> + <summary> + Returns the current position in the stream, or the position in the output buffer + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteDouble(System.Double)"> + <summary> + Writes a double field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteFloat(System.Single)"> + <summary> + Writes a float field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteUInt64(System.UInt64)"> + <summary> + Writes a uint64 field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteInt64(System.Int64)"> + <summary> + Writes an int64 field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteInt32(System.Int32)"> + <summary> + Writes an int32 field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteFixed64(System.UInt64)"> + <summary> + Writes a fixed64 field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteFixed32(System.UInt32)"> + <summary> + Writes a fixed32 field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteBool(System.Boolean)"> + <summary> + Writes a bool field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteString(System.String)"> + <summary> + Writes a string field value, without a tag, to the stream. + The data is length-prefixed. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteMessage(Google.Protobuf.IMessage)"> + <summary> + Writes a message, without a tag, to the stream. + The data is length-prefixed. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteBytes(Google.Protobuf.ByteString)"> + <summary> + Write a byte string, without a tag, to the stream. + The data is length-prefixed. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteUInt32(System.UInt32)"> + <summary> + Writes a uint32 value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteEnum(System.Int32)"> + <summary> + Writes an enum value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteSFixed32(System.Int32)"> + <summary> + Writes an sfixed32 value, without a tag, to the stream. + </summary> + <param name="value">The value to write.</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteSFixed64(System.Int64)"> + <summary> + Writes an sfixed64 value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteSInt32(System.Int32)"> + <summary> + Writes an sint32 value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteSInt64(System.Int64)"> + <summary> + Writes an sint64 value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteLength(System.Int32)"> + <summary> + Writes a length (in bytes) for length-delimited data. + </summary> + <remarks> + This method simply writes a rawint, but exists for clarity in calling code. + </remarks> + <param name="length">Length value, in bytes.</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteTag(System.Int32,Google.Protobuf.WireFormat.WireType)"> + <summary> + Encodes and writes a tag. + </summary> + <param name="fieldNumber">The number of the field to write the tag for</param> + <param name="type">The wire format type of the tag to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteTag(System.UInt32)"> + <summary> + Writes an already-encoded tag. + </summary> + <param name="tag">The encoded tag</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawTag(System.Byte)"> + <summary> + Writes the given single-byte tag directly to the stream. + </summary> + <param name="b1">The encoded tag</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawTag(System.Byte,System.Byte)"> + <summary> + Writes the given two-byte tag directly to the stream. + </summary> + <param name="b1">The first byte of the encoded tag</param> + <param name="b2">The second byte of the encoded tag</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawTag(System.Byte,System.Byte,System.Byte)"> + <summary> + Writes the given three-byte tag directly to the stream. + </summary> + <param name="b1">The first byte of the encoded tag</param> + <param name="b2">The second byte of the encoded tag</param> + <param name="b3">The third byte of the encoded tag</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawTag(System.Byte,System.Byte,System.Byte,System.Byte)"> + <summary> + Writes the given four-byte tag directly to the stream. + </summary> + <param name="b1">The first byte of the encoded tag</param> + <param name="b2">The second byte of the encoded tag</param> + <param name="b3">The third byte of the encoded tag</param> + <param name="b4">The fourth byte of the encoded tag</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawTag(System.Byte,System.Byte,System.Byte,System.Byte,System.Byte)"> + <summary> + Writes the given five-byte tag directly to the stream. + </summary> + <param name="b1">The first byte of the encoded tag</param> + <param name="b2">The second byte of the encoded tag</param> + <param name="b3">The third byte of the encoded tag</param> + <param name="b4">The fourth byte of the encoded tag</param> + <param name="b5">The fifth byte of the encoded tag</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawVarint32(System.UInt32)"> + <summary> + Writes a 32 bit value as a varint. The fast route is taken when + there's enough buffer space left to whizz through without checking + for each byte; otherwise, we resort to calling WriteRawByte each time. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawBytes(System.Byte[])"> + <summary> + Writes out an array of bytes. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawBytes(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes out part of an array of bytes. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.EncodeZigZag32(System.Int32)"> + <summary> + Encode a 32-bit value with ZigZag encoding. + </summary> + <remarks> + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + </remarks> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.EncodeZigZag64(System.Int64)"> + <summary> + Encode a 64-bit value with ZigZag encoding. + </summary> + <remarks> + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + </remarks> + </member> + <member name="T:Google.Protobuf.CodedOutputStream.OutOfSpaceException"> + <summary> + Indicates that a CodedOutputStream wrapping a flat byte array + ran out of space. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.Dispose"> + <summary> + Flushes any buffered data and optionally closes the underlying stream, if any. + </summary> + <remarks> + <para> + By default, any underlying stream is closed by this method. To configure this behaviour, + use a constructor overload with a <c>leaveOpen</c> parameter. If this instance does not + have an underlying stream, this method does nothing. + </para> + <para> + For the sake of efficiency, calling this method does not prevent future write calls - but + if a later write ends up writing to a stream which has been disposed, that is likely to + fail. It is recommend that you not call any other methods after this. + </para> + </remarks> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.Flush"> + <summary> + Flushes any buffered data to the underlying stream (if there is one). + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.CheckNoSpaceLeft"> + <summary> + Verifies that SpaceLeft returns zero. It's common to create a byte array + that is exactly big enough to hold a message, then write to it with + a CodedOutputStream. Calling CheckNoSpaceLeft after writing verifies that + the message was actually as big as expected, which can help bugs. + </summary> + </member> + <member name="P:Google.Protobuf.CodedOutputStream.SpaceLeft"> + <summary> + If writing to a flat array, returns the space left in the array. Otherwise, + throws an InvalidOperationException. + </summary> + </member> + <member name="T:Google.Protobuf.Collections.Lists"> + <summary> + Utility to compare if two Lists are the same, and the hash code + of a List. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.Lists.Equals``1(System.Collections.Generic.List{``0},System.Collections.Generic.List{``0})"> + <summary> + Checks if two lists are equal. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.Lists.GetHashCode``1(System.Collections.Generic.List{``0})"> + <summary> + Gets the list's hash code. + </summary> + </member> + <member name="T:Google.Protobuf.Collections.MapField`2"> + <summary> + Representation of a map field in a Protocol Buffer message. + </summary> + <typeparam name="TKey">Key type in the map. Must be a type supported by Protocol Buffer map keys.</typeparam> + <typeparam name="TValue">Value type in the map. Must be a type supported by Protocol Buffers.</typeparam> + <remarks> + <para> + For string keys, the equality comparison is provided by <see cref="P:System.StringComparer.Ordinal" />. + </para> + <para> + Null values are not permitted in the map, either for wrapper types or regular messages. + If a map is deserialized from a data stream and the value is missing from an entry, a default value + is created instead. For primitive types, that is the regular default value (0, the empty string and so + on); for message types, an empty instance of the message is created, as if the map entry contained a 0-length + encoded value for the field. + </para> + <para> + This implementation does not generally prohibit the use of key/value types which are not + supported by Protocol Buffers (e.g. using a key type of <code>byte</code>) but nor does it guarantee + that all operations will work in such cases. + </para> + <para> + The order in which entries are returned when iterating over this object is undefined, and may change + in future versions. + </para> + </remarks> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Clone"> + <summary> + Creates a deep clone of this object. + </summary> + <returns> + A deep clone of this object. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Add(`0,`1)"> + <summary> + Adds the specified key/value pair to the map. + </summary> + <remarks> + This operation fails if the key already exists in the map. To replace an existing entry, use the indexer. + </remarks> + <param name="key">The key to add</param> + <param name="value">The value to add.</param> + <exception cref="T:System.ArgumentException">The given key already exists in map.</exception> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.ContainsKey(`0)"> + <summary> + Determines whether the specified key is present in the map. + </summary> + <param name="key">The key to check.</param> + <returns><c>true</c> if the map contains the given key; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Remove(`0)"> + <summary> + Removes the entry identified by the given key from the map. + </summary> + <param name="key">The key indicating the entry to remove from the map.</param> + <returns><c>true</c> if the map contained the given key before the entry was removed; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.TryGetValue(`0,`1@)"> + <summary> + Gets the value associated with the specified key. + </summary> + <param name="key">The key whose value to get.</param> + <param name="value">When this method returns, the value associated with the specified key, if the key is found; + otherwise, the default value for the type of the <paramref name="value"/> parameter. + This parameter is passed uninitialized.</param> + <returns><c>true</c> if the map contains an element with the specified key; otherwise, <c>false</c>.</returns> + </member> + <member name="P:Google.Protobuf.Collections.MapField`2.Item(`0)"> + <summary> + Gets or sets the value associated with the specified key. + </summary> + <param name="key">The key of the value to get or set.</param> + <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and key does not exist in the collection.</exception> + <returns>The value associated with the specified key. If the specified key is not found, + a get operation throws a <see cref="T:System.Collections.Generic.KeyNotFoundException"/>, and a set operation creates a new element with the specified key.</returns> + </member> + <member name="P:Google.Protobuf.Collections.MapField`2.Keys"> + <summary> + Gets a collection containing the keys in the map. + </summary> + </member> + <member name="P:Google.Protobuf.Collections.MapField`2.Values"> + <summary> + Gets a collection containing the values in the map. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Add(System.Collections.Generic.IDictionary{`0,`1})"> + <summary> + Adds the specified entries to the map. The keys and values are not automatically cloned. + </summary> + <param name="entries">The entries to add to the map.</param> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.GetEnumerator"> + <summary> + Returns an enumerator that iterates through the collection. + </summary> + <returns> + An enumerator that can be used to iterate through the collection. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.System#Collections#IEnumerable#GetEnumerator"> + <summary> + Returns an enumerator that iterates through a collection. + </summary> + <returns> + An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey,TValue}}#Add(System.Collections.Generic.KeyValuePair{`0,`1})"> + <summary> + Adds the specified item to the map. + </summary> + <param name="item">The item to add to the map.</param> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Clear"> + <summary> + Removes all items from the map. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey,TValue}}#Contains(System.Collections.Generic.KeyValuePair{`0,`1})"> + <summary> + Determines whether map contains an entry equivalent to the given key/value pair. + </summary> + <param name="item">The key/value pair to find.</param> + <returns></returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey,TValue}}#CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)"> + <summary> + Copies the key/value pairs in this map to an array. + </summary> + <param name="array">The array to copy the entries into.</param> + <param name="arrayIndex">The index of the array at which to start copying values.</param> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey,TValue}}#Remove(System.Collections.Generic.KeyValuePair{`0,`1})"> + <summary> + Removes the specified key/value pair from the map. + </summary> + <remarks>Both the key and the value must be found for the entry to be removed.</remarks> + <param name="item">The key/value pair to remove.</param> + <returns><c>true</c> if the key/value pair was found and removed; <c>false</c> otherwise.</returns> + </member> + <member name="P:Google.Protobuf.Collections.MapField`2.Count"> + <summary> + Gets the number of elements contained in the map. + </summary> + </member> + <member name="P:Google.Protobuf.Collections.MapField`2.IsReadOnly"> + <summary> + Gets a value indicating whether the map is read-only. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Equals(System.Object)"> + <summary> + Determines whether the specified <see cref="T:System.Object" />, is equal to this instance. + </summary> + <param name="other">The <see cref="T:System.Object" /> to compare with this instance.</param> + <returns> + <c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.GetHashCode"> + <summary> + Returns a hash code for this instance. + </summary> + <returns> + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Equals(Google.Protobuf.Collections.MapField{`0,`1})"> + <summary> + Compares this map with another for equality. + </summary> + <remarks> + The order of the key/value pairs in the maps is not deemed significant in this comparison. + </remarks> + <param name="other">The map to compare this with.</param> + <returns><c>true</c> if <paramref name="other"/> refers to an equal map; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.AddEntriesFrom(Google.Protobuf.CodedInputStream,Google.Protobuf.Collections.MapField{`0,`1}.Codec)"> + <summary> + Adds entries to the map from the given stream. + </summary> + <remarks> + It is assumed that the stream is initially positioned after the tag specified by the codec. + This method will continue reading entries from the stream until the end is reached, or + a different tag is encountered. + </remarks> + <param name="input">Stream to read from</param> + <param name="codec">Codec describing how the key/value pairs are encoded</param> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.WriteTo(Google.Protobuf.CodedOutputStream,Google.Protobuf.Collections.MapField{`0,`1}.Codec)"> + <summary> + Writes the contents of this map to the given coded output stream, using the specified codec + to encode each entry. + </summary> + <param name="output">The output stream to write to.</param> + <param name="codec">The codec to use for each entry.</param> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.CalculateSize(Google.Protobuf.Collections.MapField{`0,`1}.Codec)"> + <summary> + Calculates the size of this map based on the given entry codec. + </summary> + <param name="codec">The codec to use to encode each entry.</param> + <returns></returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.ToString"> + <summary> + Returns a string representation of this repeated field, in the same + way as it would be represented by the default JSON formatter. + </summary> + </member> + <member name="T:Google.Protobuf.Collections.MapField`2.Codec"> + <summary> + A codec for a specific map field. This contains all the information required to encode and + decode the nested messages. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Codec.#ctor(Google.Protobuf.FieldCodec{`0},Google.Protobuf.FieldCodec{`1},System.UInt32)"> + <summary> + Creates a new entry codec based on a separate key codec and value codec, + and the tag to use for each map entry. + </summary> + <param name="keyCodec">The key codec.</param> + <param name="valueCodec">The value codec.</param> + <param name="mapTag">The map tag to use to introduce each map entry.</param> + </member> + <member name="P:Google.Protobuf.Collections.MapField`2.Codec.MapTag"> + <summary> + The tag used in the enclosing message to indicate map entries. + </summary> + </member> + <member name="T:Google.Protobuf.Collections.MapField`2.Codec.MessageAdapter"> + <summary> + A mutable message class, used for parsing and serializing. This + delegates the work to a codec, but implements the <see cref="T:Google.Protobuf.IMessage"/> interface + for interop with <see cref="T:Google.Protobuf.CodedInputStream"/> and <see cref="T:Google.Protobuf.CodedOutputStream"/>. + This is nested inside Codec as it's tightly coupled to the associated codec, + and it's simpler if it has direct access to all its fields. + </summary> + </member> + <member name="T:Google.Protobuf.Collections.ProtobufEqualityComparers"> + <summary> + Provides a central place to implement equality comparisons, primarily for bitwise float/double equality. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.ProtobufEqualityComparers.GetEqualityComparer``1"> + <summary> + Returns an equality comparer for <typeparamref name="T"/> suitable for Protobuf equality comparisons. + This is usually just the default equality comparer for the type, but floating point numbers are compared + bitwise. + </summary> + <typeparam name="T">The type of equality comparer to return.</typeparam> + <returns>The equality comparer.</returns> + </member> + <member name="P:Google.Protobuf.Collections.ProtobufEqualityComparers.BitwiseDoubleEqualityComparer"> + <summary> + Returns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + </summary> + </member> + <member name="P:Google.Protobuf.Collections.ProtobufEqualityComparers.BitwiseSingleEqualityComparer"> + <summary> + Returns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + </summary> + </member> + <member name="P:Google.Protobuf.Collections.ProtobufEqualityComparers.BitwiseNullableDoubleEqualityComparer"> + <summary> + Returns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + </summary> + </member> + <member name="P:Google.Protobuf.Collections.ProtobufEqualityComparers.BitwiseNullableSingleEqualityComparer"> + <summary> + Returns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + </summary> + </member> + <member name="T:Google.Protobuf.Collections.ReadOnlyDictionary`2"> + <summary> + Read-only wrapper around another dictionary. + </summary> + </member> + <member name="T:Google.Protobuf.Collections.RepeatedField`1"> + <summary> + The contents of a repeated field: essentially, a collection with some extra + restrictions (no null values) and capabilities (deep cloning). + </summary> + <remarks> + This implementation does not generally prohibit the use of types which are not + supported by Protocol Buffers but nor does it guarantee that all operations will work in such cases. + </remarks> + <typeparam name="T">The element type of the repeated field.</typeparam> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Clone"> + <summary> + Creates a deep clone of this repeated field. + </summary> + <remarks> + If the field type is + a message type, each element is also cloned; otherwise, it is + assumed that the field type is primitive (including string and + bytes, both of which are immutable) and so a simple copy is + equivalent to a deep clone. + </remarks> + <returns>A deep clone of this repeated field.</returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.AddEntriesFrom(Google.Protobuf.CodedInputStream,Google.Protobuf.FieldCodec{`0})"> + <summary> + Adds the entries from the given input stream, decoding them with the specified codec. + </summary> + <param name="input">The input stream to read from.</param> + <param name="codec">The codec to use in order to read each entry.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.CalculateSize(Google.Protobuf.FieldCodec{`0})"> + <summary> + Calculates the size of this collection based on the given codec. + </summary> + <param name="codec">The codec to use when encoding each field.</param> + <returns>The number of bytes that would be written to a <see cref="T:Google.Protobuf.CodedOutputStream"/> by <see cref="M:Google.Protobuf.Collections.RepeatedField`1.WriteTo(Google.Protobuf.CodedOutputStream,Google.Protobuf.FieldCodec{`0})"/>, + using the same codec.</returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.WriteTo(Google.Protobuf.CodedOutputStream,Google.Protobuf.FieldCodec{`0})"> + <summary> + Writes the contents of this collection to the given <see cref="T:Google.Protobuf.CodedOutputStream"/>, + encoding each value using the specified codec. + </summary> + <param name="output">The output stream to write to.</param> + <param name="codec">The codec to use when encoding each value.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Add(`0)"> + <summary> + Adds the specified item to the collection. + </summary> + <param name="item">The item to add.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Clear"> + <summary> + Removes all items from the collection. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Contains(`0)"> + <summary> + Determines whether this collection contains the given item. + </summary> + <param name="item">The item to find.</param> + <returns><c>true</c> if this collection contains the given item; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.CopyTo(`0[],System.Int32)"> + <summary> + Copies this collection to the given array. + </summary> + <param name="array">The array to copy to.</param> + <param name="arrayIndex">The first index of the array to copy to.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Remove(`0)"> + <summary> + Removes the specified item from the collection + </summary> + <param name="item">The item to remove.</param> + <returns><c>true</c> if the item was found and removed; <c>false</c> otherwise.</returns> + </member> + <member name="P:Google.Protobuf.Collections.RepeatedField`1.Count"> + <summary> + Gets the number of elements contained in the collection. + </summary> + </member> + <member name="P:Google.Protobuf.Collections.RepeatedField`1.IsReadOnly"> + <summary> + Gets a value indicating whether the collection is read-only. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.AddRange(System.Collections.Generic.IEnumerable{`0})"> + <summary> + Adds all of the specified values into this collection. + </summary> + <param name="values">The values to add to this collection.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Add(System.Collections.Generic.IEnumerable{`0})"> + <summary> + Adds all of the specified values into this collection. This method is present to + allow repeated fields to be constructed from queries within collection initializers. + Within non-collection-initializer code, consider using the equivalent <see cref="M:Google.Protobuf.Collections.RepeatedField`1.AddRange(System.Collections.Generic.IEnumerable{`0})"/> + method instead for clarity. + </summary> + <param name="values">The values to add to this collection.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.GetEnumerator"> + <summary> + Returns an enumerator that iterates through the collection. + </summary> + <returns> + An enumerator that can be used to iterate through the collection. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Equals(System.Object)"> + <summary> + Determines whether the specified <see cref="T:System.Object" />, is equal to this instance. + </summary> + <param name="obj">The <see cref="T:System.Object" /> to compare with this instance.</param> + <returns> + <c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.System#Collections#IEnumerable#GetEnumerator"> + <summary> + Returns an enumerator that iterates through a collection. + </summary> + <returns> + An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.GetHashCode"> + <summary> + Returns a hash code for this instance. + </summary> + <returns> + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Equals(Google.Protobuf.Collections.RepeatedField{`0})"> + <summary> + Compares this repeated field with another for equality. + </summary> + <param name="other">The repeated field to compare this with.</param> + <returns><c>true</c> if <paramref name="other"/> refers to an equal repeated field; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.IndexOf(`0)"> + <summary> + Returns the index of the given item within the collection, or -1 if the item is not + present. + </summary> + <param name="item">The item to find in the collection.</param> + <returns>The zero-based index of the item, or -1 if it is not found.</returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Insert(System.Int32,`0)"> + <summary> + Inserts the given item at the specified index. + </summary> + <param name="index">The index at which to insert the item.</param> + <param name="item">The item to insert.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.RemoveAt(System.Int32)"> + <summary> + Removes the item at the given index. + </summary> + <param name="index">The zero-based index of the item to remove.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.ToString"> + <summary> + Returns a string representation of this repeated field, in the same + way as it would be represented by the default JSON formatter. + </summary> + </member> + <member name="P:Google.Protobuf.Collections.RepeatedField`1.Item(System.Int32)"> + <summary> + Gets or sets the item at the specified index. + </summary> + <value> + The element at the specified index. + </value> + <param name="index">The zero-based index of the element to get or set.</param> + <returns>The item at the specified index.</returns> + </member> + <member name="T:Google.Protobuf.Compatibility.PropertyInfoExtensions"> + <summary> + Extension methods for <see cref="T:System.Reflection.PropertyInfo"/>, effectively providing + the familiar members from previous desktop framework versions while + targeting the newer releases, .NET Core etc. + </summary> + </member> + <member name="M:Google.Protobuf.Compatibility.PropertyInfoExtensions.GetGetMethod(System.Reflection.PropertyInfo)"> + <summary> + Returns the public getter of a property, or null if there is no such getter + (either because it's read-only, or the getter isn't public). + </summary> + </member> + <member name="M:Google.Protobuf.Compatibility.PropertyInfoExtensions.GetSetMethod(System.Reflection.PropertyInfo)"> + <summary> + Returns the public setter of a property, or null if there is no such setter + (either because it's write-only, or the setter isn't public). + </summary> + </member> + <member name="T:Google.Protobuf.Compatibility.TypeExtensions"> + <summary> + Provides extension methods on Type that just proxy to TypeInfo. + These are used to support the new type system from .NET 4.5, without + having calls to GetTypeInfo all over the place. While the methods here are meant to be + broadly compatible with the desktop framework, there are some subtle differences in behaviour - but + they're not expected to affect our use cases. While the class is internal, that should be fine: we can + evaluate each new use appropriately. + </summary> + </member> + <member name="M:Google.Protobuf.Compatibility.TypeExtensions.IsAssignableFrom(System.Type,System.Type)"> + <summary> + See https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom + </summary> + </member> + <member name="M:Google.Protobuf.Compatibility.TypeExtensions.GetProperty(System.Type,System.String)"> + <summary> + Returns a representation of the public property associated with the given name in the given type, + including inherited properties or null if there is no such public property. + Here, "public property" means a property where either the getter, or the setter, or both, is public. + </summary> + </member> + <member name="M:Google.Protobuf.Compatibility.TypeExtensions.GetMethod(System.Type,System.String)"> + <summary> + Returns a representation of the public method associated with the given name in the given type, + including inherited methods. + </summary> + <remarks> + This has a few differences compared with Type.GetMethod in the desktop framework. It will throw + if there is an ambiguous match even between a private method and a public one, but it *won't* throw + if there are two overloads at different levels in the type hierarchy (e.g. class Base declares public void Foo(int) and + class Child : Base declares public void Foo(long)). + </remarks> + <exception cref="T:System.Reflection.AmbiguousMatchException">One type in the hierarchy declared more than one method with the same name</exception> + </member> + <member name="T:Google.Protobuf.FieldCodec"> + <summary> + Factory methods for <see cref="T:Google.Protobuf.FieldCodec`1"/>. + </summary> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForString(System.UInt32)"> + <summary> + Retrieves a codec suitable for a string field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForBytes(System.UInt32)"> + <summary> + Retrieves a codec suitable for a bytes field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForBool(System.UInt32)"> + <summary> + Retrieves a codec suitable for a bool field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForInt32(System.UInt32)"> + <summary> + Retrieves a codec suitable for an int32 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForSInt32(System.UInt32)"> + <summary> + Retrieves a codec suitable for an sint32 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForFixed32(System.UInt32)"> + <summary> + Retrieves a codec suitable for a fixed32 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForSFixed32(System.UInt32)"> + <summary> + Retrieves a codec suitable for an sfixed32 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForUInt32(System.UInt32)"> + <summary> + Retrieves a codec suitable for a uint32 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForInt64(System.UInt32)"> + <summary> + Retrieves a codec suitable for an int64 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForSInt64(System.UInt32)"> + <summary> + Retrieves a codec suitable for an sint64 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForFixed64(System.UInt32)"> + <summary> + Retrieves a codec suitable for a fixed64 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForSFixed64(System.UInt32)"> + <summary> + Retrieves a codec suitable for an sfixed64 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForUInt64(System.UInt32)"> + <summary> + Retrieves a codec suitable for a uint64 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForFloat(System.UInt32)"> + <summary> + Retrieves a codec suitable for a float field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForDouble(System.UInt32)"> + <summary> + Retrieves a codec suitable for a double field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForEnum``1(System.UInt32,System.Func{``0,System.Int32},System.Func{System.Int32,``0})"> + <summary> + Retrieves a codec suitable for an enum field with the given tag. + </summary> + <param name="tag">The tag.</param> + <param name="toInt32">A conversion function from <see cref="T:System.Int32"/> to the enum type.</param> + <param name="fromInt32">A conversion function from the enum type to <see cref="T:System.Int32"/>.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForMessage``1(System.UInt32,Google.Protobuf.MessageParser{``0})"> + <summary> + Retrieves a codec suitable for a message field with the given tag. + </summary> + <param name="tag">The tag.</param> + <param name="parser">A parser to use for the message type.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForClassWrapper``1(System.UInt32)"> + <summary> + Creates a codec for a wrapper type of a class - which must be string or ByteString. + </summary> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForStructWrapper``1(System.UInt32)"> + <summary> + Creates a codec for a wrapper type of a struct - which must be Int32, Int64, UInt32, UInt64, + Bool, Single or Double. + </summary> + </member> + <member name="T:Google.Protobuf.FieldCodec.WrapperCodecs"> + <summary> + Helper code to create codecs for wrapper types. + </summary> + <remarks> + Somewhat ugly with all the static methods, but the conversions involved to/from nullable types make it + slightly tricky to improve. So long as we keep the public API (ForClassWrapper, ForStructWrapper) in place, + we can refactor later if we come up with something cleaner. + </remarks> + </member> + <member name="M:Google.Protobuf.FieldCodec.WrapperCodecs.GetCodec``1"> + <summary> + Returns a field codec which effectively wraps a value of type T in a message. + + </summary> + </member> + <member name="T:Google.Protobuf.FieldCodec`1"> + <summary> + <para> + An encode/decode pair for a single field. This effectively encapsulates + all the information needed to read or write the field value from/to a coded + stream. + </para> + <para> + This class is public and has to be as it is used by generated code, but its public + API is very limited - just what the generated code needs to call directly. + </para> + </summary> + <remarks> + This never writes default values to the stream, and does not address "packedness" + in repeated fields itself, other than to know whether or not the field *should* be packed. + </remarks> + </member> + <member name="P:Google.Protobuf.FieldCodec`1.ValueWriter"> + <summary> + Returns a delegate to write a value (unconditionally) to a coded output stream. + </summary> + </member> + <member name="P:Google.Protobuf.FieldCodec`1.ValueSizeCalculator"> + <summary> + Returns the size calculator for just a value. + </summary> + </member> + <member name="P:Google.Protobuf.FieldCodec`1.ValueReader"> + <summary> + Returns a delegate to read a value from a coded input stream. It is assumed that + the stream is already positioned on the appropriate tag. + </summary> + </member> + <member name="P:Google.Protobuf.FieldCodec`1.FixedSize"> + <summary> + Returns the fixed size for an entry, or 0 if sizes vary. + </summary> + </member> + <member name="P:Google.Protobuf.FieldCodec`1.Tag"> + <summary> + Gets the tag of the codec. + </summary> + <value> + The tag of the codec. + </value> + </member> + <member name="P:Google.Protobuf.FieldCodec`1.DefaultValue"> + <summary> + Default value for this codec. Usually the same for every instance of the same type, but + for string/ByteString wrapper fields the codec's default value is null, whereas for + other string/ByteString fields it's "" or ByteString.Empty. + </summary> + <value> + The default value of the codec's type. + </value> + </member> + <member name="M:Google.Protobuf.FieldCodec`1.WriteTagAndValue(Google.Protobuf.CodedOutputStream,`0)"> + <summary> + Write a tag and the given value, *if* the value is not the default. + </summary> + </member> + <member name="M:Google.Protobuf.FieldCodec`1.Read(Google.Protobuf.CodedInputStream)"> + <summary> + Reads a value of the codec type from the given <see cref="T:Google.Protobuf.CodedInputStream"/>. + </summary> + <param name="input">The input stream to read from.</param> + <returns>The value read from the stream.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec`1.CalculateSizeWithTag(`0)"> + <summary> + Calculates the size required to write the given value, with a tag, + if the value is not the default. + </summary> + </member> + <member name="T:Google.Protobuf.FrameworkPortability"> + <summary> + Class containing helpful workarounds for various platform compatibility + </summary> + </member> + <member name="T:Google.Protobuf.ICustomDiagnosticMessage"> + <summary> + A message type that has a custom string format for diagnostic purposes. + </summary> + <remarks> + <para> + Calling <see cref="M:System.Object.ToString"/> on a generated message type normally + returns the JSON representation. If a message type implements this interface, + then the <see cref="M:Google.Protobuf.ICustomDiagnosticMessage.ToDiagnosticString"/> method will be called instead of the regular + JSON formatting code, but only when <c>ToString()</c> is called either on the message itself + or on another message which contains it. This does not affect the normal JSON formatting of + the message. + </para> + <para> + For example, if you create a proto message representing a GUID, the internal + representation may be a <c>bytes</c> field or four <c>fixed32</c> fields. However, when debugging + it may be more convenient to see a result in the same format as <see cref="T:System.Guid"/> provides. + </para> + <para>This interface extends <see cref="T:Google.Protobuf.IMessage"/> to avoid it accidentally being implemented + on types other than messages, where it would not be used by anything in the framework.</para> + </remarks> + </member> + <member name="M:Google.Protobuf.ICustomDiagnosticMessage.ToDiagnosticString"> + <summary> + Returns a string representation of this object, for diagnostic purposes. + </summary> + <remarks> + This method is called when a message is formatted as part of a <see cref="M:System.Object.ToString"/> + call. It does not affect the JSON representation used by <see cref="T:Google.Protobuf.JsonFormatter"/> other than + in calls to <see cref="M:Google.Protobuf.JsonFormatter.ToDiagnosticString(Google.Protobuf.IMessage)"/>. While it is recommended + that the result is valid JSON, this is never assumed by the Protobuf library. + </remarks> + <returns>A string representation of this object, for diagnostic purposes.</returns> + </member> + <member name="T:Google.Protobuf.IDeepCloneable`1"> + <summary> + Generic interface for a deeply cloneable type. + </summary> + <remarks> + <para> + All generated messages implement this interface, but so do some non-message types. + Additionally, due to the type constraint on <c>T</c> in <see cref="T:Google.Protobuf.IMessage`1"/>, + it is simpler to keep this as a separate interface. + </para> + </remarks> + <typeparam name="T">The type itself, returned by the <see cref="M:Google.Protobuf.IDeepCloneable`1.Clone"/> method.</typeparam> + </member> + <member name="M:Google.Protobuf.IDeepCloneable`1.Clone"> + <summary> + Creates a deep clone of this object. + </summary> + <returns>A deep clone of this object.</returns> + </member> + <member name="T:Google.Protobuf.IMessage"> + <summary> + Interface for a Protocol Buffers message, supporting + basic operations required for serialization. + </summary> + </member> + <member name="M:Google.Protobuf.IMessage.MergeFrom(Google.Protobuf.CodedInputStream)"> + <summary> + Merges the data from the specified coded input stream with the current message. + </summary> + <remarks>See the user guide for precise merge semantics.</remarks> + <param name="input"></param> + </member> + <member name="M:Google.Protobuf.IMessage.WriteTo(Google.Protobuf.CodedOutputStream)"> + <summary> + Writes the data to the given coded output stream. + </summary> + <param name="output">Coded output stream to write the data to. Must not be null.</param> + </member> + <member name="M:Google.Protobuf.IMessage.CalculateSize"> + <summary> + Calculates the size of this message in Protocol Buffer wire format, in bytes. + </summary> + <returns>The number of bytes required to write this message + to a coded output stream.</returns> + </member> + <member name="P:Google.Protobuf.IMessage.Descriptor"> + <summary> + Descriptor for this message. All instances are expected to return the same descriptor, + and for generated types this will be an explicitly-implemented member, returning the + same value as the static property declared on the type. + </summary> + </member> + <member name="T:Google.Protobuf.IMessage`1"> + <summary> + Generic interface for a Protocol Buffers message, + where the type parameter is expected to be the same type as + the implementation class. + </summary> + <typeparam name="T">The message type.</typeparam> + </member> + <member name="M:Google.Protobuf.IMessage`1.MergeFrom(`0)"> + <summary> + Merges the given message into this one. + </summary> + <remarks>See the user guide for precise merge semantics.</remarks> + <param name="message">The message to merge with this one. Must not be null.</param> + </member> + <member name="T:Google.Protobuf.InvalidJsonException"> + <summary> + Thrown when an attempt is made to parse invalid JSON, e.g. using + a non-string property key, or including a redundant comma. Parsing a protocol buffer + message represented in JSON using <see cref="T:Google.Protobuf.JsonParser"/> can throw both this + exception and <see cref="T:Google.Protobuf.InvalidProtocolBufferException"/> depending on the situation. This + exception is only thrown for "pure JSON" errors, whereas <c>InvalidProtocolBufferException</c> + is thrown when the JSON may be valid in and of itself, but cannot be parsed as a protocol buffer + message. + </summary> + </member> + <member name="T:Google.Protobuf.InvalidProtocolBufferException"> + <summary> + Thrown when a protocol message being parsed is invalid in some way, + e.g. it contains a malformed varint or a negative byte length. + </summary> + </member> + <member name="M:Google.Protobuf.InvalidProtocolBufferException.InvalidTag"> + <summary> + Creates an exception for an error condition of an invalid tag being encountered. + </summary> + </member> + <member name="T:Google.Protobuf.JsonFormatter"> + <summary> + Reflection-based converter from messages to JSON. + </summary> + <remarks> + <para> + Instances of this class are thread-safe, with no mutable state. + </para> + <para> + This is a simple start to get JSON formatting working. As it's reflection-based, + it's not as quick as baking calls into generated messages - but is a simpler implementation. + (This code is generally not heavily optimized.) + </para> + </remarks> + </member> + <member name="P:Google.Protobuf.JsonFormatter.Default"> + <summary> + Returns a formatter using the default settings. + </summary> + </member> + <member name="F:Google.Protobuf.JsonFormatter.CommonRepresentations"> + <summary> + The JSON representation of the first 160 characters of Unicode. + Empty strings are replaced by the static constructor. + </summary> + </member> + <member name="M:Google.Protobuf.JsonFormatter.#ctor(Google.Protobuf.JsonFormatter.Settings)"> + <summary> + Creates a new formatted with the given settings. + </summary> + <param name="settings">The settings.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Format(Google.Protobuf.IMessage)"> + <summary> + Formats the specified message as JSON. + </summary> + <param name="message">The message to format.</param> + <returns>The formatted message.</returns> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Format(Google.Protobuf.IMessage,System.IO.TextWriter)"> + <summary> + Formats the specified message as JSON. + </summary> + <param name="message">The message to format.</param> + <param name="writer">The TextWriter to write the formatted message to.</param> + <returns>The formatted message.</returns> + </member> + <member name="M:Google.Protobuf.JsonFormatter.ToDiagnosticString(Google.Protobuf.IMessage)"> + <summary> + Converts a message to JSON for diagnostic purposes with no extra context. + </summary> + <remarks> + <para> + This differs from calling <see cref="M:Google.Protobuf.JsonFormatter.Format(Google.Protobuf.IMessage)"/> on the default JSON + formatter in its handling of <see cref="T:Google.Protobuf.WellKnownTypes.Any"/>. As no type registry is available + in <see cref="M:System.Object.ToString"/> calls, the normal way of resolving the type of + an <c>Any</c> message cannot be applied. Instead, a JSON property named <c>@value</c> + is included with the base64 data from the <see cref="P:Google.Protobuf.WellKnownTypes.Any.Value"/> property of the message. + </para> + <para>The value returned by this method is only designed to be used for diagnostic + purposes. It may not be parsable by <see cref="T:Google.Protobuf.JsonParser"/>, and may not be parsable + by other Protocol Buffer implementations.</para> + </remarks> + <param name="message">The message to format for diagnostic purposes.</param> + <returns>The diagnostic-only JSON representation of the message</returns> + </member> + <member name="M:Google.Protobuf.JsonFormatter.WriteValue(System.IO.TextWriter,System.Object)"> + <summary> + Writes a single value to the given writer as JSON. Only types understood by + Protocol Buffers can be written in this way. This method is only exposed for + advanced use cases; most users should be using <see cref="M:Google.Protobuf.JsonFormatter.Format(Google.Protobuf.IMessage)"/> + or <see cref="M:Google.Protobuf.JsonFormatter.Format(Google.Protobuf.IMessage,System.IO.TextWriter)"/>. + </summary> + <param name="writer">The writer to write the value to. Must not be null.</param> + <param name="value">The value to write. May be null.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.WriteWellKnownTypeValue(System.IO.TextWriter,Google.Protobuf.Reflection.MessageDescriptor,System.Object)"> + <summary> + Central interception point for well-known type formatting. Any well-known types which + don't need special handling can fall back to WriteMessage. We avoid assuming that the + values are using the embedded well-known types, in order to allow for dynamic messages + in the future. + </summary> + </member> + <member name="M:Google.Protobuf.JsonFormatter.WriteString(System.IO.TextWriter,System.String)"> + <summary> + Writes a string (including leading and trailing double quotes) to a builder, escaping as required. + </summary> + <remarks> + Other than surrogate pair handling, this code is mostly taken from src/google/protobuf/util/internal/json_escaping.cc. + </remarks> + </member> + <member name="T:Google.Protobuf.JsonFormatter.Settings"> + <summary> + Settings controlling JSON formatting. + </summary> + </member> + <member name="P:Google.Protobuf.JsonFormatter.Settings.Default"> + <summary> + Default settings, as used by <see cref="P:Google.Protobuf.JsonFormatter.Default"/> + </summary> + </member> + <member name="P:Google.Protobuf.JsonFormatter.Settings.FormatDefaultValues"> + <summary> + Whether fields whose values are the default for the field type (e.g. 0 for integers) + should be formatted (true) or omitted (false). + </summary> + </member> + <member name="P:Google.Protobuf.JsonFormatter.Settings.TypeRegistry"> + <summary> + The type registry used to format <see cref="T:Google.Protobuf.WellKnownTypes.Any"/> messages. + </summary> + </member> + <member name="P:Google.Protobuf.JsonFormatter.Settings.FormatEnumsAsIntegers"> + <summary> + Whether to format enums as ints. Defaults to false. + </summary> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Settings.#ctor(System.Boolean)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonFormatter.Settings"/> object with the specified formatting of default values + and an empty type registry. + </summary> + <param name="formatDefaultValues"><c>true</c> if default values (0, empty strings etc) should be formatted; <c>false</c> otherwise.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Settings.#ctor(System.Boolean,Google.Protobuf.Reflection.TypeRegistry)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonFormatter.Settings"/> object with the specified formatting of default values + and type registry. + </summary> + <param name="formatDefaultValues"><c>true</c> if default values (0, empty strings etc) should be formatted; <c>false</c> otherwise.</param> + <param name="typeRegistry">The <see cref="P:Google.Protobuf.JsonFormatter.Settings.TypeRegistry"/> to use when formatting <see cref="T:Google.Protobuf.WellKnownTypes.Any"/> messages.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Settings.#ctor(System.Boolean,Google.Protobuf.Reflection.TypeRegistry,System.Boolean)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonFormatter.Settings"/> object with the specified parameters. + </summary> + <param name="formatDefaultValues"><c>true</c> if default values (0, empty strings etc) should be formatted; <c>false</c> otherwise.</param> + <param name="typeRegistry">The <see cref="P:Google.Protobuf.JsonFormatter.Settings.TypeRegistry"/> to use when formatting <see cref="T:Google.Protobuf.WellKnownTypes.Any"/> messages. TypeRegistry.Empty will be used if it is null.</param> + <param name="formatEnumsAsIntegers"><c>true</c> to format the enums as integers; <c>false</c> to format enums as enum names.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Settings.WithFormatDefaultValues(System.Boolean)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonFormatter.Settings"/> object with the specified formatting of default values and the current settings. + </summary> + <param name="formatDefaultValues"><c>true</c> if default values (0, empty strings etc) should be formatted; <c>false</c> otherwise.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Settings.WithTypeRegistry(Google.Protobuf.Reflection.TypeRegistry)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonFormatter.Settings"/> object with the specified type registry and the current settings. + </summary> + <param name="typeRegistry">The <see cref="P:Google.Protobuf.JsonFormatter.Settings.TypeRegistry"/> to use when formatting <see cref="T:Google.Protobuf.WellKnownTypes.Any"/> messages.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Settings.WithFormatEnumsAsIntegers(System.Boolean)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonFormatter.Settings"/> object with the specified enums formatting option and the current settings. + </summary> + <param name="formatEnumsAsIntegers"><c>true</c> to format the enums as integers; <c>false</c> to format enums as enum names.</param> + </member> + <member name="T:Google.Protobuf.JsonParser"> + <summary> + Reflection-based converter from JSON to messages. + </summary> + <remarks> + <para> + Instances of this class are thread-safe, with no mutable state. + </para> + <para> + This is a simple start to get JSON parsing working. As it's reflection-based, + it's not as quick as baking calls into generated messages - but is a simpler implementation. + (This code is generally not heavily optimized.) + </para> + </remarks> + </member> + <member name="P:Google.Protobuf.JsonParser.Default"> + <summary> + Returns a formatter using the default settings. + </summary> + </member> + <member name="M:Google.Protobuf.JsonParser.#ctor(Google.Protobuf.JsonParser.Settings)"> + <summary> + Creates a new formatted with the given settings. + </summary> + <param name="settings">The settings.</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Merge(Google.Protobuf.IMessage,System.String)"> + <summary> + Parses <paramref name="json"/> and merges the information into the given message. + </summary> + <param name="message">The message to merge the JSON information into.</param> + <param name="json">The JSON to parse.</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Merge(Google.Protobuf.IMessage,System.IO.TextReader)"> + <summary> + Parses JSON read from <paramref name="jsonReader"/> and merges the information into the given message. + </summary> + <param name="message">The message to merge the JSON information into.</param> + <param name="jsonReader">Reader providing the JSON to parse.</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Merge(Google.Protobuf.IMessage,Google.Protobuf.JsonTokenizer)"> + <summary> + Merges the given message using data from the given tokenizer. In most cases, the next + token should be a "start object" token, but wrapper types and nullity can invalidate + that assumption. This is implemented as an LL(1) recursive descent parser over the stream + of tokens provided by the tokenizer. This token stream is assumed to be valid JSON, with the + tokenizer performing that validation - but not every token stream is valid "protobuf JSON". + </summary> + </member> + <member name="M:Google.Protobuf.JsonParser.Parse``1(System.String)"> + <summary> + Parses <paramref name="json"/> into a new message. + </summary> + <typeparam name="T">The type of message to create.</typeparam> + <param name="json">The JSON to parse.</param> + <exception cref="T:Google.Protobuf.InvalidJsonException">The JSON does not comply with RFC 7159</exception> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception> + </member> + <member name="M:Google.Protobuf.JsonParser.Parse``1(System.IO.TextReader)"> + <summary> + Parses JSON read from <paramref name="jsonReader"/> into a new message. + </summary> + <typeparam name="T">The type of message to create.</typeparam> + <param name="jsonReader">Reader providing the JSON to parse.</param> + <exception cref="T:Google.Protobuf.InvalidJsonException">The JSON does not comply with RFC 7159</exception> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception> + </member> + <member name="M:Google.Protobuf.JsonParser.Parse(System.String,Google.Protobuf.Reflection.MessageDescriptor)"> + <summary> + Parses <paramref name="json"/> into a new message. + </summary> + <param name="json">The JSON to parse.</param> + <param name="descriptor">Descriptor of message type to parse.</param> + <exception cref="T:Google.Protobuf.InvalidJsonException">The JSON does not comply with RFC 7159</exception> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception> + </member> + <member name="M:Google.Protobuf.JsonParser.Parse(System.IO.TextReader,Google.Protobuf.Reflection.MessageDescriptor)"> + <summary> + Parses JSON read from <paramref name="jsonReader"/> into a new message. + </summary> + <param name="jsonReader">Reader providing the JSON to parse.</param> + <param name="descriptor">Descriptor of message type to parse.</param> + <exception cref="T:Google.Protobuf.InvalidJsonException">The JSON does not comply with RFC 7159</exception> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception> + </member> + <member name="M:Google.Protobuf.JsonParser.NewMessageForField(Google.Protobuf.Reflection.FieldDescriptor)"> + <summary> + Creates a new instance of the message type for the given field. + </summary> + </member> + <member name="M:Google.Protobuf.JsonParser.ValidateInfinityAndNan(System.String,System.Boolean,System.Boolean,System.Boolean)"> + <summary> + Checks that any infinite/NaN values originated from the correct text. + This corrects the lenient whitespace handling of double.Parse/float.Parse, as well as the + way that Mono parses out-of-range values as infinity. + </summary> + </member> + <member name="T:Google.Protobuf.JsonParser.Settings"> + <summary> + Settings controlling JSON parsing. + </summary> + </member> + <member name="P:Google.Protobuf.JsonParser.Settings.Default"> + <summary> + Default settings, as used by <see cref="P:Google.Protobuf.JsonParser.Default"/>. This has the same default + recursion limit as <see cref="T:Google.Protobuf.CodedInputStream"/>, and an empty type registry. + </summary> + </member> + <member name="P:Google.Protobuf.JsonParser.Settings.RecursionLimit"> + <summary> + The maximum depth of messages to parse. Note that this limit only applies to parsing + messages, not collections - so a message within a collection within a message only counts as + depth 2, not 3. + </summary> + </member> + <member name="P:Google.Protobuf.JsonParser.Settings.TypeRegistry"> + <summary> + The type registry used to parse <see cref="T:Google.Protobuf.WellKnownTypes.Any"/> messages. + </summary> + </member> + <member name="P:Google.Protobuf.JsonParser.Settings.IgnoreUnknownFields"> + <summary> + Whether the parser should ignore unknown fields (<c>true</c>) or throw an exception when + they are encountered (<c>false</c>). + </summary> + </member> + <member name="M:Google.Protobuf.JsonParser.Settings.#ctor(System.Int32)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonParser.Settings"/> object with the specified recursion limit. + </summary> + <param name="recursionLimit">The maximum depth of messages to parse</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Settings.#ctor(System.Int32,Google.Protobuf.Reflection.TypeRegistry)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonParser.Settings"/> object with the specified recursion limit and type registry. + </summary> + <param name="recursionLimit">The maximum depth of messages to parse</param> + <param name="typeRegistry">The type registry used to parse <see cref="T:Google.Protobuf.WellKnownTypes.Any"/> messages</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Settings.WithIgnoreUnknownFields(System.Boolean)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonParser.Settings"/> object set to either ignore unknown fields, or throw an exception + when unknown fields are encountered. + </summary> + <param name="ignoreUnknownFields"><c>true</c> if unknown fields should be ignored when parsing; <c>false</c> to throw an exception.</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Settings.WithRecursionLimit(System.Int32)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonParser.Settings"/> object based on this one, but with the specified recursion limit. + </summary> + <param name="recursionLimit">The new recursion limit.</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Settings.WithTypeRegistry(Google.Protobuf.Reflection.TypeRegistry)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonParser.Settings"/> object based on this one, but with the specified type registry. + </summary> + <param name="typeRegistry">The new type registry. Must not be null.</param> + </member> + <member name="T:Google.Protobuf.JsonTokenizer"> + <summary> + Simple but strict JSON tokenizer, rigidly following RFC 7159. + </summary> + <remarks> + <para> + This tokenizer is stateful, and only returns "useful" tokens - names, values etc. + It does not create tokens for the separator between names and values, or for the comma + between values. It validates the token stream as it goes - so callers can assume that the + tokens it produces are appropriate. For example, it would never produce "start object, end array." + </para> + <para>Implementation details: the base class handles single token push-back and </para> + <para>Not thread-safe.</para> + </remarks> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.FromTextReader(System.IO.TextReader)"> + <summary> + Creates a tokenizer that reads from the given text reader. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.FromReplayedTokens(System.Collections.Generic.IList{Google.Protobuf.JsonToken},Google.Protobuf.JsonTokenizer)"> + <summary> + Creates a tokenizer that first replays the given list of tokens, then continues reading + from another tokenizer. Note that if the returned tokenizer is "pushed back", that does not push back + on the continuation tokenizer, or vice versa. Care should be taken when using this method - it was + created for the sake of Any parsing. + </summary> + </member> + <member name="P:Google.Protobuf.JsonTokenizer.ObjectDepth"> + <summary> + Returns the depth of the stack, purely in objects (not collections). + Informally, this is the number of remaining unclosed '{' characters we have. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.Next"> + <summary> + Returns the next JSON token in the stream. An EndDocument token is returned to indicate the end of the stream, + after which point <c>Next()</c> should not be called again. + </summary> + <remarks>This implementation provides single-token buffering, and calls <see cref="M:Google.Protobuf.JsonTokenizer.NextImpl"/> if there is no buffered token.</remarks> + <returns>The next token in the stream. This is never null.</returns> + <exception cref="T:System.InvalidOperationException">This method is called after an EndDocument token has been returned</exception> + <exception cref="T:Google.Protobuf.InvalidJsonException">The input text does not comply with RFC 7159</exception> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.NextImpl"> + <summary> + Returns the next JSON token in the stream, when requested by the base class. (The <see cref="M:Google.Protobuf.JsonTokenizer.Next"/> method delegates + to this if it doesn't have a buffered token.) + </summary> + <exception cref="T:System.InvalidOperationException">This method is called after an EndDocument token has been returned</exception> + <exception cref="T:Google.Protobuf.InvalidJsonException">The input text does not comply with RFC 7159</exception> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.SkipValue"> + <summary> + Skips the value we're about to read. This must only be called immediately after reading a property name. + If the value is an object or an array, the complete object/array is skipped. + </summary> + </member> + <member name="T:Google.Protobuf.JsonTokenizer.JsonReplayTokenizer"> + <summary> + Tokenizer which first exhausts a list of tokens, then consults another tokenizer. + </summary> + </member> + <member name="T:Google.Protobuf.JsonTokenizer.JsonTextTokenizer"> + <summary> + Tokenizer which does all the *real* work of parsing JSON. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.NextImpl"> + <remarks> + This method essentially just loops through characters skipping whitespace, validating and + changing state (e.g. from ObjectBeforeColon to ObjectAfterColon) + until it reaches something which will be a genuine token (e.g. a start object, or a value) at which point + it returns the token. Although the method is large, it would be relatively hard to break down further... most + of it is the large switch statement, which sometimes returns and sometimes doesn't. + </remarks> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.ReadString"> + <summary> + Reads a string token. It is assumed that the opening " has already been read. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.ReadEscapedCharacter"> + <summary> + Reads an escaped character. It is assumed that the leading backslash has already been read. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.ReadUnicodeEscape"> + <summary> + Reads an escaped Unicode 4-nybble hex sequence. It is assumed that the leading \u has already been read. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.ConsumeLiteral(System.String)"> + <summary> + Consumes a text-only literal, throwing an exception if the read text doesn't match it. + It is assumed that the first letter of the literal has already been read. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.ValidateAndModifyStateForValue(System.String)"> + <summary> + Validates that we're in a valid state to read a value (using the given error prefix if necessary) + and changes the state to the appropriate one, e.g. ObjectAfterColon to ObjectAfterProperty. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.PopContainer"> + <summary> + Pops the top-most container, and sets the state to the appropriate one for the end of a value + in the parent container. + </summary> + </member> + <member name="T:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State"> + <summary> + Possible states of the tokenizer. + </summary> + <remarks> + <para>This is a flags enum purely so we can simply and efficiently represent a set of valid states + for checking.</para> + <para> + Each is documented with an example, + where ^ represents the current position within the text stream. The examples all use string values, + but could be any value, including nested objects/arrays. + The complete state of the tokenizer also includes a stack to indicate the contexts (arrays/objects). + Any additional notional state of "AfterValue" indicates that a value has been completed, at which + point there's an immediate transition to ExpectedEndOfDocument, ObjectAfterProperty or ArrayAfterValue. + </para> + <para> + These states were derived manually by reading RFC 7159 carefully. + </para> + </remarks> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.StartOfDocument"> + <summary> + ^ { "foo": "bar" } + Before the value in a document. Next states: ObjectStart, ArrayStart, "AfterValue" + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ExpectedEndOfDocument"> + <summary> + { "foo": "bar" } ^ + After the value in a document. Next states: ReaderExhausted + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ReaderExhausted"> + <summary> + { "foo": "bar" } ^ (and already read to the end of the reader) + Terminal state. + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ObjectStart"> + <summary> + { ^ "foo": "bar" } + Before the *first* property in an object. + Next states: + "AfterValue" (empty object) + ObjectBeforeColon (read a name) + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ObjectBeforeColon"> + <summary> + { "foo" ^ : "bar", "x": "y" } + Next state: ObjectAfterColon + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ObjectAfterColon"> + <summary> + { "foo" : ^ "bar", "x": "y" } + Before any property other than the first in an object. + (Equivalently: after any property in an object) + Next states: + "AfterValue" (value is simple) + ObjectStart (value is object) + ArrayStart (value is array) + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ObjectAfterProperty"> + <summary> + { "foo" : "bar" ^ , "x" : "y" } + At the end of a property, so expecting either a comma or end-of-object + Next states: ObjectAfterComma or "AfterValue" + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ObjectAfterComma"> + <summary> + { "foo":"bar", ^ "x":"y" } + Read the comma after the previous property, so expecting another property. + This is like ObjectStart, but closing brace isn't valid here + Next state: ObjectBeforeColon. + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ArrayStart"> + <summary> + [ ^ "foo", "bar" ] + Before the *first* value in an array. + Next states: + "AfterValue" (read a value) + "AfterValue" (end of array; will pop stack) + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ArrayAfterValue"> + <summary> + [ "foo" ^ , "bar" ] + After any value in an array, so expecting either a comma or end-of-array + Next states: ArrayAfterComma or "AfterValue" + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ArrayAfterComma"> + <summary> + [ "foo", ^ "bar" ] + After a comma in an array, so there *must* be another value (simple or complex). + Next states: "AfterValue" (simple value), StartObject, StartArray + </summary> + </member> + <member name="T:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.PushBackReader"> + <summary> + Wrapper around a text reader allowing small amounts of buffering and location handling. + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.PushBackReader.nextChar"> + <summary> + The buffered next character, if we have one. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.PushBackReader.Read"> + <summary> + Returns the next character in the stream, or null if we have reached the end. + </summary> + <returns></returns> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.PushBackReader.CreateException(System.String)"> + <summary> + Creates a new exception appropriate for the current state of the reader. + </summary> + </member> + <member name="T:Google.Protobuf.LimitedInputStream"> + <summary> + Stream implementation which proxies another stream, only allowing a certain amount + of data to be read. Note that this is only used to read delimited streams, so it + doesn't attempt to implement everything. + </summary> + </member> + <member name="T:Google.Protobuf.MessageExtensions"> + <summary> + Extension methods on <see cref="T:Google.Protobuf.IMessage"/> and <see cref="T:Google.Protobuf.IMessage`1"/>. + </summary> + </member> + <member name="M:Google.Protobuf.MessageExtensions.MergeFrom(Google.Protobuf.IMessage,System.Byte[])"> + <summary> + Merges data from the given byte array into an existing message. + </summary> + <param name="message">The message to merge the data into.</param> + <param name="data">The data to merge, which must be protobuf-encoded binary data.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.MergeFrom(Google.Protobuf.IMessage,System.Byte[],System.Int32,System.Int32)"> + <summary> + Merges data from the given byte array slice into an existing message. + </summary> + <param name="message">The message to merge the data into.</param> + <param name="data">The data containing the slice to merge, which must be protobuf-encoded binary data.</param> + <param name="offset">The offset of the slice to merge.</param> + <param name="length">The length of the slice to merge.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.MergeFrom(Google.Protobuf.IMessage,Google.Protobuf.ByteString)"> + <summary> + Merges data from the given byte string into an existing message. + </summary> + <param name="message">The message to merge the data into.</param> + <param name="data">The data to merge, which must be protobuf-encoded binary data.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.MergeFrom(Google.Protobuf.IMessage,System.IO.Stream)"> + <summary> + Merges data from the given stream into an existing message. + </summary> + <param name="message">The message to merge the data into.</param> + <param name="input">Stream containing the data to merge, which must be protobuf-encoded binary data.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.MergeDelimitedFrom(Google.Protobuf.IMessage,System.IO.Stream)"> + <summary> + Merges length-delimited data from the given stream into an existing message. + </summary> + <remarks> + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + </remarks> + <param name="message">The message to merge the data into.</param> + <param name="input">Stream containing the data to merge, which must be protobuf-encoded binary data.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.ToByteArray(Google.Protobuf.IMessage)"> + <summary> + Converts the given message into a byte array in protobuf encoding. + </summary> + <param name="message">The message to convert.</param> + <returns>The message data as a byte array.</returns> + </member> + <member name="M:Google.Protobuf.MessageExtensions.WriteTo(Google.Protobuf.IMessage,System.IO.Stream)"> + <summary> + Writes the given message data to the given stream in protobuf encoding. + </summary> + <param name="message">The message to write to the stream.</param> + <param name="output">The stream to write to.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.WriteDelimitedTo(Google.Protobuf.IMessage,System.IO.Stream)"> + <summary> + Writes the length and then data of the given message to a stream. + </summary> + <param name="message">The message to write.</param> + <param name="output">The output stream to write to.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.ToByteString(Google.Protobuf.IMessage)"> + <summary> + Converts the given message into a byte string in protobuf encoding. + </summary> + <param name="message">The message to convert.</param> + <returns>The message data as a byte string.</returns> + </member> + <member name="T:Google.Protobuf.MessageParser"> + <summary> + A general message parser, typically used by reflection-based code as all the methods + return simple <see cref="T:Google.Protobuf.IMessage"/>. + </summary> + </member> + <member name="M:Google.Protobuf.MessageParser.CreateTemplate"> + <summary> + Creates a template instance ready for population. + </summary> + <returns>An empty message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseFrom(System.Byte[])"> + <summary> + Parses a message from a byte array. + </summary> + <param name="data">The byte array containing the message. Must not be null.</param> + <returns>The newly parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseFrom(System.Byte[],System.Int32,System.Int32)"> + <summary> + Parses a message from a byte array slice. + </summary> + <param name="data">The byte array containing the message. Must not be null.</param> + <param name="offset">The offset of the slice to parse.</param> + <param name="length">The length of the slice to parse.</param> + <returns>The newly parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseFrom(Google.Protobuf.ByteString)"> + <summary> + Parses a message from the given byte string. + </summary> + <param name="data">The data to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseFrom(System.IO.Stream)"> + <summary> + Parses a message from the given stream. + </summary> + <param name="input">The stream to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseDelimitedFrom(System.IO.Stream)"> + <summary> + Parses a length-delimited message from the given stream. + </summary> + <remarks> + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + </remarks> + <param name="input">The stream to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseFrom(Google.Protobuf.CodedInputStream)"> + <summary> + Parses a message from the given coded input stream. + </summary> + <param name="input">The stream to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseJson(System.String)"> + <summary> + Parses a message from the given JSON. + </summary> + <param name="json">The JSON to parse.</param> + <returns>The parsed message.</returns> + <exception cref="T:Google.Protobuf.InvalidJsonException">The JSON does not comply with RFC 7159</exception> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception> + </member> + <member name="M:Google.Protobuf.MessageParser.WithDiscardUnknownFields(System.Boolean)"> + <summary> + Creates a new message parser which optionally discards unknown fields when parsing. + </summary> + <param name="discardUnknownFields">Whether or not to discard unknown fields when parsing.</param> + <returns>A newly configured message parser.</returns> + </member> + <member name="T:Google.Protobuf.MessageParser`1"> + <summary> + A parser for a specific message type. + </summary> + <remarks> + <p> + This delegates most behavior to the + <see cref="M:Google.Protobuf.IMessage.MergeFrom(Google.Protobuf.CodedInputStream)"/> implementation within the original type, but + provides convenient overloads to parse from a variety of sources. + </p> + <p> + Most applications will never need to create their own instances of this type; + instead, use the static <c>Parser</c> property of a generated message type to obtain a + parser for that type. + </p> + </remarks> + <typeparam name="T">The type of message to be parsed.</typeparam> + </member> + <member name="M:Google.Protobuf.MessageParser`1.#ctor(System.Func{`0})"> + <summary> + Creates a new parser. + </summary> + <remarks> + The factory method is effectively an optimization over using a generic constraint + to require a parameterless constructor: delegates are significantly faster to execute. + </remarks> + <param name="factory">Function to invoke when a new, empty message is required.</param> + </member> + <member name="M:Google.Protobuf.MessageParser`1.CreateTemplate"> + <summary> + Creates a template instance ready for population. + </summary> + <returns>An empty message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseFrom(System.Byte[])"> + <summary> + Parses a message from a byte array. + </summary> + <param name="data">The byte array containing the message. Must not be null.</param> + <returns>The newly parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseFrom(System.Byte[],System.Int32,System.Int32)"> + <summary> + Parses a message from a byte array slice. + </summary> + <param name="data">The byte array containing the message. Must not be null.</param> + <param name="offset">The offset of the slice to parse.</param> + <param name="length">The length of the slice to parse.</param> + <returns>The newly parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseFrom(Google.Protobuf.ByteString)"> + <summary> + Parses a message from the given byte string. + </summary> + <param name="data">The data to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseFrom(System.IO.Stream)"> + <summary> + Parses a message from the given stream. + </summary> + <param name="input">The stream to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseDelimitedFrom(System.IO.Stream)"> + <summary> + Parses a length-delimited message from the given stream. + </summary> + <remarks> + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + </remarks> + <param name="input">The stream to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseFrom(Google.Protobuf.CodedInputStream)"> + <summary> + Parses a message from the given coded input stream. + </summary> + <param name="input">The stream to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseJson(System.String)"> + <summary> + Parses a message from the given JSON. + </summary> + <param name="json">The JSON to parse.</param> + <returns>The parsed message.</returns> + <exception cref="T:Google.Protobuf.InvalidJsonException">The JSON does not comply with RFC 7159</exception> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception> + </member> + <member name="M:Google.Protobuf.MessageParser`1.WithDiscardUnknownFields(System.Boolean)"> + <summary> + Creates a new message parser which optionally discards unknown fields when parsing. + </summary> + <param name="discardUnknownFields">Whether or not to discard unknown fields when parsing.</param> + <returns>A newly configured message parser.</returns> + </member> + <member name="T:Google.Protobuf.ProtoPreconditions"> + <summary> + Helper methods for throwing exceptions when preconditions are not met. + </summary> + <remarks> + This class is used internally and by generated code; it is not particularly + expected to be used from application code, although nothing prevents it + from being used that way. + </remarks> + </member> + <member name="M:Google.Protobuf.ProtoPreconditions.CheckNotNull``1(``0,System.String)"> + <summary> + Throws an ArgumentNullException if the given value is null, otherwise + return the value to the caller. + </summary> + </member> + <member name="M:Google.Protobuf.ProtoPreconditions.CheckNotNullUnconstrained``1(``0,System.String)"> + <summary> + Throws an ArgumentNullException if the given value is null, otherwise + return the value to the caller. + </summary> + <remarks> + This is equivalent to <see cref="M:Google.Protobuf.ProtoPreconditions.CheckNotNull``1(``0,System.String)"/> but without the type parameter + constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull + with a value type - but it gets in the way if either you want to use it with a nullable + value type, or you want to use it with an unconstrained type parameter. + </remarks> + </member> + <member name="T:Google.Protobuf.Reflection.CustomOptions"> + <summary> + Container for a set of custom options specified within a message, field etc. + </summary> + <remarks> + <para> + This type is publicly immutable, but internally mutable. It is only populated + by the descriptor parsing code - by the time any user code is able to see an instance, + it will be fully initialized. + </para> + <para> + If an option is requested using the incorrect method, an answer may still be returned: all + of the numeric types are represented internally using 64-bit integers, for example. It is up to + the caller to ensure that they make the appropriate method call for the option they're interested in. + Note that enum options are simply stored as integers, so the value should be fetched using + <see cref="M:Google.Protobuf.Reflection.CustomOptions.TryGetInt32(System.Int32,System.Int32@)"/> and then cast appropriately. + </para> + <para> + Repeated options are currently not supported. Asking for a single value of an option + which was actually repeated will return the last value, except for message types where + all the set values are merged together. + </para> + </remarks> + </member> + <member name="F:Google.Protobuf.Reflection.CustomOptions.Empty"> + <summary> + Singleton for all descriptors with an empty set of options. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.CustomOptions.valuesByField"> + <summary> + A sequence of values per field. This needs to be per field rather than per tag to allow correct deserialization + of repeated fields which could be "int, ByteString, int" - unlikely as that is. The fact that values are boxed + is unfortunate; we might be able to use a struct instead, and we could combine uint and ulong values. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetBool(System.Int32,System.Boolean@)"> + <summary> + Retrieves a Boolean value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetInt32(System.Int32,System.Int32@)"> + <summary> + Retrieves a signed 32-bit integer value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetInt64(System.Int32,System.Int64@)"> + <summary> + Retrieves a signed 64-bit integer value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetFixed32(System.Int32,System.UInt32@)"> + <summary> + Retrieves an unsigned 32-bit integer value for the specified option field, + assuming a fixed-length representation. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetFixed64(System.Int32,System.UInt64@)"> + <summary> + Retrieves an unsigned 64-bit integer value for the specified option field, + assuming a fixed-length representation. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetSFixed32(System.Int32,System.Int32@)"> + <summary> + Retrieves a signed 32-bit integer value for the specified option field, + assuming a fixed-length representation. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetSFixed64(System.Int32,System.Int64@)"> + <summary> + Retrieves a signed 64-bit integer value for the specified option field, + assuming a fixed-length representation. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetSInt32(System.Int32,System.Int32@)"> + <summary> + Retrieves a signed 32-bit integer value for the specified option field, + assuming a zigzag encoding. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetSInt64(System.Int32,System.Int64@)"> + <summary> + Retrieves a signed 64-bit integer value for the specified option field, + assuming a zigzag encoding. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetUInt32(System.Int32,System.UInt32@)"> + <summary> + Retrieves an unsigned 32-bit integer value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetUInt64(System.Int32,System.UInt64@)"> + <summary> + Retrieves an unsigned 64-bit integer value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetFloat(System.Int32,System.Single@)"> + <summary> + Retrieves a 32-bit floating point value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetDouble(System.Int32,System.Double@)"> + <summary> + Retrieves a 64-bit floating point value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetString(System.Int32,System.String@)"> + <summary> + Retrieves a string value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetBytes(System.Int32,Google.Protobuf.ByteString@)"> + <summary> + Retrieves a bytes value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetMessage``1(System.Int32,``0@)"> + <summary> + Retrieves a message value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.ReadOrSkipUnknownField(Google.Protobuf.CodedInputStream)"> + <summary> + Reads an unknown field, either parsing it and storing it or skipping it. + </summary> + <remarks> + If the current set of options is empty and we manage to read a field, a new set of options + will be created and returned. Otherwise, the return value is <c>this</c>. This allows + us to start with a singleton empty set of options and just create new ones where necessary. + </remarks> + <param name="input">Input stream to read from. </param> + <returns>The resulting set of custom options, either <c>this</c> or a new set.</returns> + </member> + <member name="T:Google.Protobuf.Reflection.CustomOptions.FieldValue"> + <summary> + All field values can be stored as a byte string or a 64-bit integer. + This struct avoids unnecessary boxing. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorReflection"> + <summary>Holder for reflection information generated from google/protobuf/descriptor.proto</summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorReflection.Descriptor"> + <summary>File descriptor for google/protobuf/descriptor.proto</summary> + </member> + <member name="T:Google.Protobuf.Reflection.FileDescriptorSet"> + <summary> + The protocol compiler can output a FileDescriptorSet containing the .proto + files it parses. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorSet.FileFieldNumber"> + <summary>Field number for the "file" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.FileDescriptorProto"> + <summary> + Describes a complete .proto file. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.Name"> + <summary> + file name, relative to root of source tree + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.PackageFieldNumber"> + <summary>Field number for the "package" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.Package"> + <summary> + e.g. "foo", "foo.bar", etc. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.DependencyFieldNumber"> + <summary>Field number for the "dependency" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.Dependency"> + <summary> + Names of files imported by this file. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.PublicDependencyFieldNumber"> + <summary>Field number for the "public_dependency" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.PublicDependency"> + <summary> + Indexes of the public imported files in the dependency list above. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.WeakDependencyFieldNumber"> + <summary>Field number for the "weak_dependency" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.WeakDependency"> + <summary> + Indexes of the weak imported files in the dependency list. + For Google-internal migration only. Do not use. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.MessageTypeFieldNumber"> + <summary>Field number for the "message_type" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.MessageType"> + <summary> + All top-level definitions in this file. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.EnumTypeFieldNumber"> + <summary>Field number for the "enum_type" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.ServiceFieldNumber"> + <summary>Field number for the "service" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.ExtensionFieldNumber"> + <summary>Field number for the "extension" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.SourceCodeInfoFieldNumber"> + <summary>Field number for the "source_code_info" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.SourceCodeInfo"> + <summary> + This field contains optional information about the original source code. + You may safely remove this entire field without harming runtime + functionality of the descriptors -- the information is needed only by + development tools. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.SyntaxFieldNumber"> + <summary>Field number for the "syntax" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.Syntax"> + <summary> + The syntax of the proto file. + The supported values are "proto2" and "proto3". + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorProto"> + <summary> + Describes a message type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.FieldFieldNumber"> + <summary>Field number for the "field" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.ExtensionFieldNumber"> + <summary>Field number for the "extension" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.NestedTypeFieldNumber"> + <summary>Field number for the "nested_type" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.EnumTypeFieldNumber"> + <summary>Field number for the "enum_type" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.ExtensionRangeFieldNumber"> + <summary>Field number for the "extension_range" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.OneofDeclFieldNumber"> + <summary>Field number for the "oneof_decl" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.ReservedRangeFieldNumber"> + <summary>Field number for the "reserved_range" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.ReservedNameFieldNumber"> + <summary>Field number for the "reserved_name" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorProto.ReservedName"> + <summary> + Reserved field names, which may not be used by fields in the same message. + A given name may only be reserved once. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorProto.Types"> + <summary>Container for nested types declared in the DescriptorProto message type.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange.StartFieldNumber"> + <summary>Field number for the "start" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange.EndFieldNumber"> + <summary>Field number for the "end" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange"> + <summary> + Range of reserved tag numbers. Reserved tag numbers may not be used by + fields or extension ranges in the same message. Reserved ranges may + not overlap. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.StartFieldNumber"> + <summary>Field number for the "start" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.Start"> + <summary> + Inclusive. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.EndFieldNumber"> + <summary>Field number for the "end" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.End"> + <summary> + Exclusive. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.ExtensionRangeOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.ExtensionRangeOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FieldDescriptorProto"> + <summary> + Describes a field within a message. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.NumberFieldNumber"> + <summary>Field number for the "number" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.LabelFieldNumber"> + <summary>Field number for the "label" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.TypeFieldNumber"> + <summary>Field number for the "type" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptorProto.Type"> + <summary> + If type_name is set, this need not be set. If both this and type_name + are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.TypeNameFieldNumber"> + <summary>Field number for the "type_name" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptorProto.TypeName"> + <summary> + For message and enum types, this is the name of the type. If the name + starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + rules are used to find the type (i.e. first the nested types within this + message are searched, then within the parent, on up to the root + namespace). + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.ExtendeeFieldNumber"> + <summary>Field number for the "extendee" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptorProto.Extendee"> + <summary> + For extensions, this is the name of the type being extended. It is + resolved in the same manner as type_name. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.DefaultValueFieldNumber"> + <summary>Field number for the "default_value" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptorProto.DefaultValue"> + <summary> + For numeric types, contains the original text representation of the value. + For booleans, "true" or "false". + For strings, contains the default text contents (not escaped in any way). + For bytes, contains the C escaped value. All bytes >= 128 are escaped. + TODO(kenton): Base-64 encode? + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.OneofIndexFieldNumber"> + <summary>Field number for the "oneof_index" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptorProto.OneofIndex"> + <summary> + If set, gives the index of a oneof in the containing type's oneof_decl + list. This field is a member of that oneof. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.JsonNameFieldNumber"> + <summary>Field number for the "json_name" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptorProto.JsonName"> + <summary> + JSON name of this field. The value is set by protocol compiler. If the + user has set a "json_name" option on this field, that option's value + will be used. Otherwise, it's deduced from the field's name by converting + it to camelCase. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.FieldDescriptorProto.Types"> + <summary>Container for nested types declared in the FieldDescriptorProto message type.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Double"> + <summary> + 0 is reserved for errors. + Order is weird for historical reasons. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Int64"> + <summary> + Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + negative values are likely. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Int32"> + <summary> + Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + negative values are likely. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Group"> + <summary> + Tag-delimited aggregate. + Group type is deprecated and not supported in proto3. However, Proto3 + implementations should still be able to parse the group wire format and + treat group fields as unknown fields. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Message"> + <summary> + Length-delimited aggregate. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Bytes"> + <summary> + New in version 2. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Sint32"> + <summary> + Uses ZigZag encoding. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Sint64"> + <summary> + Uses ZigZag encoding. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label.Optional"> + <summary> + 0 is reserved for errors + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.OneofDescriptorProto"> + <summary> + Describes a oneof. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.OneofDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.OneofDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.EnumDescriptorProto"> + <summary> + Describes an enum type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.ReservedRangeFieldNumber"> + <summary>Field number for the "reserved_range" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptorProto.ReservedRange"> + <summary> + Range of reserved numeric values. Reserved numeric values may not be used + by enum values in the same enum declaration. Reserved ranges may not + overlap. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.ReservedNameFieldNumber"> + <summary>Field number for the "reserved_name" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptorProto.ReservedName"> + <summary> + Reserved enum value names, which may not be reused. A given name may only + be reserved once. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.EnumDescriptorProto.Types"> + <summary>Container for nested types declared in the EnumDescriptorProto message type.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange"> + <summary> + Range of reserved numeric values. Reserved values may not be used by + entries in the same enum. Reserved ranges may not overlap. + + Note that this is distinct from DescriptorProto.ReservedRange in that it + is inclusive such that it can appropriately represent the entire int32 + domain. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange.StartFieldNumber"> + <summary>Field number for the "start" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange.Start"> + <summary> + Inclusive. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange.EndFieldNumber"> + <summary>Field number for the "end" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange.End"> + <summary> + Inclusive. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.EnumValueDescriptorProto"> + <summary> + Describes a value within an enum. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumValueDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumValueDescriptorProto.NumberFieldNumber"> + <summary>Field number for the "number" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumValueDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.ServiceDescriptorProto"> + <summary> + Describes a service. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.ServiceDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.ServiceDescriptorProto.MethodFieldNumber"> + <summary>Field number for the "method" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.ServiceDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.MethodDescriptorProto"> + <summary> + Describes a method of a service. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodDescriptorProto.InputTypeFieldNumber"> + <summary>Field number for the "input_type" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptorProto.InputType"> + <summary> + Input and output type names. These are resolved in the same way as + FieldDescriptorProto.type_name, but must refer to a message type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodDescriptorProto.OutputTypeFieldNumber"> + <summary>Field number for the "output_type" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodDescriptorProto.ClientStreamingFieldNumber"> + <summary>Field number for the "client_streaming" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptorProto.ClientStreaming"> + <summary> + Identifies if client streams multiple client messages + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodDescriptorProto.ServerStreamingFieldNumber"> + <summary>Field number for the "server_streaming" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptorProto.ServerStreaming"> + <summary> + Identifies if server streams multiple server messages + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.JavaPackageFieldNumber"> + <summary>Field number for the "java_package" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.JavaPackage"> + <summary> + Sets the Java package where classes generated from this .proto will be + placed. By default, the proto package is used, but this is often + inappropriate because proto packages do not normally start with backwards + domain names. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.JavaOuterClassnameFieldNumber"> + <summary>Field number for the "java_outer_classname" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.JavaOuterClassname"> + <summary> + If set, all the classes from the .proto file are wrapped in a single + outer class with the given name. This applies to both Proto1 + (equivalent to the old "--one_java_file" option) and Proto2 (where + a .proto always translates to a single class, but you may want to + explicitly choose the class name). + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.JavaMultipleFilesFieldNumber"> + <summary>Field number for the "java_multiple_files" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.JavaMultipleFiles"> + <summary> + If set true, then the Java code generator will generate a separate .java + file for each top-level message, enum, and service defined in the .proto + file. Thus, these types will *not* be nested inside the outer class + named by java_outer_classname. However, the outer class will still be + generated to contain the file's getDescriptor() method as well as any + top-level extensions defined in the file. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.JavaGenerateEqualsAndHashFieldNumber"> + <summary>Field number for the "java_generate_equals_and_hash" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.JavaGenerateEqualsAndHash"> + <summary> + This option does nothing. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.JavaStringCheckUtf8FieldNumber"> + <summary>Field number for the "java_string_check_utf8" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.JavaStringCheckUtf8"> + <summary> + If set true, then the Java2 code generator will generate code that + throws an exception whenever an attempt is made to assign a non-UTF-8 + byte sequence to a string field. + Message reflection will do the same. + However, an extension field still accepts non-UTF-8 byte sequences. + This option has no effect on when used with the lite runtime. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.OptimizeForFieldNumber"> + <summary>Field number for the "optimize_for" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.GoPackageFieldNumber"> + <summary>Field number for the "go_package" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.GoPackage"> + <summary> + Sets the Go package where structs generated from this .proto will be + placed. If omitted, the Go package will be derived from the following: + - The basename of the package import path, if provided. + - Otherwise, the package statement in the .proto file, if present. + - Otherwise, the basename of the .proto file, without extension. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.CcGenericServicesFieldNumber"> + <summary>Field number for the "cc_generic_services" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.CcGenericServices"> + <summary> + Should generic services be generated in each language? "Generic" services + are not specific to any particular RPC system. They are generated by the + main code generators in each language (without additional plugins). + Generic services were the only kind of service generation supported by + early versions of google.protobuf. + + Generic services are now considered deprecated in favor of using plugins + that generate code specific to your particular RPC system. Therefore, + these default to false. Old code which depends on generic services should + explicitly set them to true. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.JavaGenericServicesFieldNumber"> + <summary>Field number for the "java_generic_services" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.PyGenericServicesFieldNumber"> + <summary>Field number for the "py_generic_services" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.PhpGenericServicesFieldNumber"> + <summary>Field number for the "php_generic_services" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.Deprecated"> + <summary> + Is this file deprecated? + Depending on the target platform, this can emit Deprecated annotations + for everything in the file, or it will be completely ignored; in the very + least, this is a formalization for deprecating files. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.CcEnableArenasFieldNumber"> + <summary>Field number for the "cc_enable_arenas" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.CcEnableArenas"> + <summary> + Enables the use of arenas for the proto messages in this file. This applies + only to generated classes for C++. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.ObjcClassPrefixFieldNumber"> + <summary>Field number for the "objc_class_prefix" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.ObjcClassPrefix"> + <summary> + Sets the objective c class prefix which is prepended to all objective c + generated classes from this .proto. There is no default. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.CsharpNamespaceFieldNumber"> + <summary>Field number for the "csharp_namespace" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.CsharpNamespace"> + <summary> + Namespace for generated classes; defaults to the package. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.SwiftPrefixFieldNumber"> + <summary>Field number for the "swift_prefix" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.SwiftPrefix"> + <summary> + By default Swift generators will take the proto package and CamelCase it + replacing '.' with underscore and use that to prefix the types/symbols + defined. When this options is provided, they will use this value instead + to prefix the types/symbols defined. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.PhpClassPrefixFieldNumber"> + <summary>Field number for the "php_class_prefix" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.PhpClassPrefix"> + <summary> + Sets the php class prefix which is prepended to all php generated classes + from this .proto. Default is empty. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.PhpNamespaceFieldNumber"> + <summary>Field number for the "php_namespace" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.PhpNamespace"> + <summary> + Use this option to change the namespace of php generated classes. Default + is empty. When this option is empty, the package name will be used for + determining the namespace. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.PhpMetadataNamespaceFieldNumber"> + <summary>Field number for the "php_metadata_namespace" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.PhpMetadataNamespace"> + <summary> + Use this option to change the namespace of php generated metadata classes. + Default is empty. When this option is empty, the proto file name will be used + for determining the namespace. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.RubyPackageFieldNumber"> + <summary>Field number for the "ruby_package" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.RubyPackage"> + <summary> + Use this option to change the package of ruby generated classes. Default + is empty. When this option is not set, the package name will be used for + determining the ruby package. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. + See the documentation for the "Options" section above. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FileOptions.Types"> + <summary>Container for nested types declared in the FileOptions message type.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode"> + <summary> + Generated classes can be optimized for speed or code size. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode.Speed"> + <summary> + Generate complete code for parsing, serialization, + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode.CodeSize"> + <summary> + etc. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode.LiteRuntime"> + <summary> + Generate code using MessageLite and the lite runtime. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MessageOptions.MessageSetWireFormatFieldNumber"> + <summary>Field number for the "message_set_wire_format" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageOptions.MessageSetWireFormat"> + <summary> + Set true to use the old proto1 MessageSet wire format for extensions. + This is provided for backwards-compatibility with the MessageSet wire + format. You should not use this for any other reason: It's less + efficient, has fewer features, and is more complicated. + + The message must be defined exactly as follows: + message Foo { + option message_set_wire_format = true; + extensions 4 to max; + } + Note that the message cannot have any defined fields; MessageSets only + have extensions. + + All extensions of your type must be singular messages; e.g. they cannot + be int32s, enums, or repeated messages. + + Because this is an option, the above two restrictions are not enforced by + the protocol compiler. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MessageOptions.NoStandardDescriptorAccessorFieldNumber"> + <summary>Field number for the "no_standard_descriptor_accessor" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageOptions.NoStandardDescriptorAccessor"> + <summary> + Disables the generation of the standard "descriptor()" accessor, which can + conflict with a field of the same name. This is meant to make migration + from proto1 easier; new code should avoid fields named "descriptor". + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MessageOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageOptions.Deprecated"> + <summary> + Is this message deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the message, or it will be completely ignored; in the very least, + this is a formalization for deprecating messages. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MessageOptions.MapEntryFieldNumber"> + <summary>Field number for the "map_entry" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageOptions.MapEntry"> + <summary> + Whether the message is an automatically generated map entry type for the + maps field. + + For maps fields: + map<KeyType, ValueType> map_field = 1; + The parsed descriptor looks like: + message MapFieldEntry { + option map_entry = true; + optional KeyType key = 1; + optional ValueType value = 2; + } + repeated MapFieldEntry map_field = 1; + + Implementations may choose not to generate the map_entry=true message, but + use a native map in the target language to hold the keys and values. + The reflection APIs in such implementions still need to work as + if the field is a repeated message field. + + NOTE: Do not set the option in .proto files. Always use the maps syntax + instead. The option should only be implicitly set by the proto compiler + parser. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MessageOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.CtypeFieldNumber"> + <summary>Field number for the "ctype" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.Ctype"> + <summary> + The ctype option instructs the C++ code generator to use a different + representation of the field than it normally would. See the specific + options below. This option is not yet implemented in the open source + release -- sorry, we'll try to include it in a future version! + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.PackedFieldNumber"> + <summary>Field number for the "packed" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.Packed"> + <summary> + The packed option can be enabled for repeated primitive fields to enable + a more efficient representation on the wire. Rather than repeatedly + writing the tag and type for each element, the entire array is encoded as + a single length-delimited blob. In proto3, only explicit setting it to + false will avoid using packed encoding. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.JstypeFieldNumber"> + <summary>Field number for the "jstype" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.Jstype"> + <summary> + The jstype option determines the JavaScript type used for values of the + field. The option is permitted only for 64 bit integral and fixed types + (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + is represented as JavaScript string, which avoids loss of precision that + can happen when a large value is converted to a floating point JavaScript. + Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + use the JavaScript "number" type. The behavior of the default option + JS_NORMAL is implementation dependent. + + This option is an enum to permit additional types to be added, e.g. + goog.math.Integer. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.LazyFieldNumber"> + <summary>Field number for the "lazy" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.Lazy"> + <summary> + Should this field be parsed lazily? Lazy applies only to message-type + fields. It means that when the outer message is initially parsed, the + inner message's contents will not be parsed but instead stored in encoded + form. The inner message will actually be parsed when it is first accessed. + + This is only a hint. Implementations are free to choose whether to use + eager or lazy parsing regardless of the value of this option. However, + setting this option true suggests that the protocol author believes that + using lazy parsing on this field is worth the additional bookkeeping + overhead typically needed to implement it. + + This option does not affect the public interface of any generated code; + all method signatures remain the same. Furthermore, thread-safety of the + interface is not affected by this option; const methods remain safe to + call from multiple threads concurrently, while non-const methods continue + to require exclusive access. + + Note that implementations may choose not to check required fields within + a lazy sub-message. That is, calling IsInitialized() on the outer message + may return true even if the inner message has missing required fields. + This is necessary because otherwise the inner message would have to be + parsed in order to perform the check, defeating the purpose of lazy + parsing. An implementation which chooses not to check required fields + must be consistent about it. That is, for any particular sub-message, the + implementation must either *always* check its required fields, or *never* + check its required fields, regardless of whether or not the message has + been parsed. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.Deprecated"> + <summary> + Is this field deprecated? + Depending on the target platform, this can emit Deprecated annotations + for accessors, or it will be completely ignored; in the very least, this + is a formalization for deprecating fields. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.WeakFieldNumber"> + <summary>Field number for the "weak" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.Weak"> + <summary> + For Google-internal migration only. Do not use. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FieldOptions.Types"> + <summary>Container for nested types declared in the FieldOptions message type.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.Types.CType.String"> + <summary> + Default mode. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.Types.JSType.JsNormal"> + <summary> + Use the default type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.Types.JSType.JsString"> + <summary> + Use JavaScript strings. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.Types.JSType.JsNumber"> + <summary> + Use JavaScript numbers. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.OneofOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.OneofOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumOptions.AllowAliasFieldNumber"> + <summary>Field number for the "allow_alias" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumOptions.AllowAlias"> + <summary> + Set this option to true to allow mapping different tag names to the same + value. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumOptions.Deprecated"> + <summary> + Is this enum deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the enum, or it will be completely ignored; in the very least, this + is a formalization for deprecating enums. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumValueOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumValueOptions.Deprecated"> + <summary> + Is this enum value deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the enum value, or it will be completely ignored; in the very least, + this is a formalization for deprecating enum values. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumValueOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumValueOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.ServiceOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.ServiceOptions.Deprecated"> + <summary> + Is this service deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the service, or it will be completely ignored; in the very least, + this is a formalization for deprecating services. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.ServiceOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.ServiceOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodOptions.Deprecated"> + <summary> + Is this method deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the method, or it will be completely ignored; in the very least, + this is a formalization for deprecating methods. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodOptions.IdempotencyLevelFieldNumber"> + <summary>Field number for the "idempotency_level" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.MethodOptions.Types"> + <summary>Container for nested types declared in the MethodOptions message type.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel"> + <summary> + Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + or neither? HTTP based RPC implementation may choose GET verb for safe + methods, and PUT verb for idempotent methods instead of the default POST. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel.NoSideEffects"> + <summary> + implies idempotent + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel.Idempotent"> + <summary> + idempotent, but may have side effects + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.UninterpretedOption"> + <summary> + A message representing a option the parser does not recognize. This only + appears in options protos created by the compiler::Parser class. + DescriptorPool resolves these when building Descriptor objects. Therefore, + options protos in descriptor objects (e.g. returned by Descriptor::options(), + or produced by Descriptor::CopyTo()) will never have UninterpretedOptions + in them. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.IdentifierValueFieldNumber"> + <summary>Field number for the "identifier_value" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.UninterpretedOption.IdentifierValue"> + <summary> + The value of the uninterpreted option, in whatever type the tokenizer + identified it as during parsing. Exactly one of these should be set. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.PositiveIntValueFieldNumber"> + <summary>Field number for the "positive_int_value" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.NegativeIntValueFieldNumber"> + <summary>Field number for the "negative_int_value" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.DoubleValueFieldNumber"> + <summary>Field number for the "double_value" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.StringValueFieldNumber"> + <summary>Field number for the "string_value" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.AggregateValueFieldNumber"> + <summary>Field number for the "aggregate_value" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.UninterpretedOption.Types"> + <summary>Container for nested types declared in the UninterpretedOption message type.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart"> + <summary> + The name of the uninterpreted option. Each string represents a segment in + a dot-separated name. is_extension is true iff a segment represents an + extension (denoted with parentheses in options specs in .proto files). + E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents + "foo.(bar.baz).qux". + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart.NamePart_FieldNumber"> + <summary>Field number for the "name_part" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart.IsExtensionFieldNumber"> + <summary>Field number for the "is_extension" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.SourceCodeInfo"> + <summary> + Encapsulates information about the original source file from which a + FileDescriptorProto was generated. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.SourceCodeInfo.LocationFieldNumber"> + <summary>Field number for the "location" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.SourceCodeInfo.Location"> + <summary> + A Location identifies a piece of source code in a .proto file which + corresponds to a particular definition. This information is intended + to be useful to IDEs, code indexers, documentation generators, and similar + tools. + + For example, say we have a file like: + message Foo { + optional string foo = 1; + } + Let's look at just the field definition: + optional string foo = 1; + ^ ^^ ^^ ^ ^^^ + a bc de f ghi + We have the following locations: + span path represents + [a,i) [ 4, 0, 2, 0 ] The whole field definition. + [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + + Notes: + - A location may refer to a repeated field itself (i.e. not to any + particular index within it). This is used whenever a set of elements are + logically enclosed in a single code segment. For example, an entire + extend block (possibly containing multiple extension definitions) will + have an outer location whose path refers to the "extensions" repeated + field without an index. + - Multiple locations may have the same path. This happens when a single + logical declaration is spread out across multiple places. The most + obvious example is the "extend" block again -- there may be multiple + extend blocks in the same scope, each of which will have the same path. + - A location's span is not always a subset of its parent's span. For + example, the "extendee" of an extension declaration appears at the + beginning of the "extend" block and is shared by all extensions within + the block. + - Just because a location's span is a subset of some other location's span + does not mean that it is a descendent. For example, a "group" defines + both a type and a field in a single declaration. Thus, the locations + corresponding to the type and field and their components will overlap. + - Code which tries to interpret locations should probably be designed to + ignore those that it doesn't understand, as more types of locations could + be recorded in the future. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.SourceCodeInfo.Types"> + <summary>Container for nested types declared in the SourceCodeInfo message type.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.PathFieldNumber"> + <summary>Field number for the "path" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.Path"> + <summary> + Identifies which part of the FileDescriptorProto was defined at this + location. + + Each element is a field number or an index. They form a path from + the root FileDescriptorProto to the place where the definition. For + example, this path: + [ 4, 3, 2, 7, 1 ] + refers to: + file.message_type(3) // 4, 3 + .field(7) // 2, 7 + .name() // 1 + This is because FileDescriptorProto.message_type has field number 4: + repeated DescriptorProto message_type = 4; + and DescriptorProto.field has field number 2: + repeated FieldDescriptorProto field = 2; + and FieldDescriptorProto.name has field number 1: + optional string name = 1; + + Thus, the above path gives the location of a field name. If we removed + the last element: + [ 4, 3, 2, 7 ] + this path refers to the whole field declaration (from the beginning + of the label to the terminating semicolon). + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.SpanFieldNumber"> + <summary>Field number for the "span" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.Span"> + <summary> + Always has exactly three or four elements: start line, start column, + end line (optional, otherwise assumed same as start line), end column. + These are packed into a single field for efficiency. Note that line + and column numbers are zero-based -- typically you will want to add + 1 to each before displaying to a user. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.LeadingCommentsFieldNumber"> + <summary>Field number for the "leading_comments" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.LeadingComments"> + <summary> + If this SourceCodeInfo represents a complete declaration, these are any + comments appearing before and after the declaration which appear to be + attached to the declaration. + + A series of line comments appearing on consecutive lines, with no other + tokens appearing on those lines, will be treated as a single comment. + + leading_detached_comments will keep paragraphs of comments that appear + before (but not connected to) the current element. Each paragraph, + separated by empty lines, will be one comment element in the repeated + field. + + Only the comment content is provided; comment markers (e.g. //) are + stripped out. For block comments, leading whitespace and an asterisk + will be stripped from the beginning of each line other than the first. + Newlines are included in the output. + + Examples: + + optional int32 foo = 1; // Comment attached to foo. + // Comment attached to bar. + optional int32 bar = 2; + + optional string baz = 3; + // Comment attached to baz. + // Another line attached to baz. + + // Comment attached to qux. + // + // Another line attached to qux. + optional double qux = 4; + + // Detached comment for corge. This is not leading or trailing comments + // to qux or corge because there are blank lines separating it from + // both. + + // Detached comment for corge paragraph 2. + + optional string corge = 5; + /* Block comment attached + * to corge. Leading asterisks + * will be removed. */ + /* Block comment attached to + * grault. */ + optional int32 grault = 6; + + // ignored detached comments. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.TrailingCommentsFieldNumber"> + <summary>Field number for the "trailing_comments" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.LeadingDetachedCommentsFieldNumber"> + <summary>Field number for the "leading_detached_comments" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.GeneratedCodeInfo"> + <summary> + Describes the relationship between generated code and its original source + file. A GeneratedCodeInfo message is associated with only one generated + source file, but may contain references to different source .proto files. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.GeneratedCodeInfo.AnnotationFieldNumber"> + <summary>Field number for the "annotation" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedCodeInfo.Annotation"> + <summary> + An Annotation connects some span of text in generated code to an element + of its generating .proto file. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.GeneratedCodeInfo.Types"> + <summary>Container for nested types declared in the GeneratedCodeInfo message type.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.PathFieldNumber"> + <summary>Field number for the "path" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.Path"> + <summary> + Identifies the element in the original source .proto file. This field + is formatted the same as SourceCodeInfo.Location.path. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.SourceFileFieldNumber"> + <summary>Field number for the "source_file" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.SourceFile"> + <summary> + Identifies the filesystem path to the original source .proto. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.BeginFieldNumber"> + <summary>Field number for the "begin" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.Begin"> + <summary> + Identifies the starting offset in bytes in the generated code + that relates to the identified object. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.EndFieldNumber"> + <summary>Field number for the "end" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.End"> + <summary> + Identifies the ending offset in bytes in the generated code that + relates to the identified offset. The end offset should be one past + the last relevant byte (so the length of the text = end - begin). + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorBase"> + <summary> + Base class for nearly all descriptors, providing common functionality. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorBase.Index"> + <value> + The index of this descriptor within its parent descriptor. + </value> + <remarks> + This returns the index of this descriptor within its parent, for + this descriptor's type. (There can be duplicate values for different + types, e.g. one enum type with index 0 and one message type with index 0.) + </remarks> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorBase.Name"> + <summary> + Returns the name of the entity (field, message etc) being described. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorBase.FullName"> + <summary> + The fully qualified name of the descriptor's target. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorBase.File"> + <value> + The file this descriptor was declared in. + </value> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorPool"> + <summary> + Contains lookup tables containing all the descriptors defined in a particular file. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.FindSymbol``1(System.String)"> + <summary> + Finds a symbol of the given name within the pool. + </summary> + <typeparam name="T">The type of symbol to look for</typeparam> + <param name="fullName">Fully-qualified name to look up</param> + <returns>The symbol with the given name and type, + or null if the symbol doesn't exist or has the wrong type</returns> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.AddPackage(System.String,Google.Protobuf.Reflection.FileDescriptor)"> + <summary> + Adds a package to the symbol tables. If a package by the same name + already exists, that is fine, but if some other kind of symbol + exists under the same name, an exception is thrown. If the package + has multiple components, this also adds the parent package(s). + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.AddSymbol(Google.Protobuf.Reflection.IDescriptor)"> + <summary> + Adds a symbol to the symbol table. + </summary> + <exception cref="T:Google.Protobuf.Reflection.DescriptorValidationException">The symbol already existed + in the symbol table.</exception> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.ValidateSymbolName(Google.Protobuf.Reflection.IDescriptor)"> + <summary> + Verifies that the descriptor's name is valid (i.e. it contains + only letters, digits and underscores, and does not start with a digit). + </summary> + <param name="descriptor"></param> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.FindFieldByNumber(Google.Protobuf.Reflection.MessageDescriptor,System.Int32)"> + <summary> + Returns the field with the given number in the given descriptor, + or null if it can't be found. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.AddFieldByNumber(Google.Protobuf.Reflection.FieldDescriptor)"> + <summary> + Adds a field to the fieldsByNumber table. + </summary> + <exception cref="T:Google.Protobuf.Reflection.DescriptorValidationException">A field with the same + containing type and number already exists.</exception> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.AddEnumValueByNumber(Google.Protobuf.Reflection.EnumValueDescriptor)"> + <summary> + Adds an enum value to the enumValuesByNumber table. If an enum value + with the same type and number already exists, this method does nothing. + (This is allowed; the first value defined with the number takes precedence.) + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.LookupSymbol(System.String,Google.Protobuf.Reflection.IDescriptor)"> + <summary> + Looks up a descriptor by name, relative to some other descriptor. + The name may be fully-qualified (with a leading '.'), partially-qualified, + or unqualified. C++-like name lookup semantics are used to search for the + matching descriptor. + </summary> + <remarks> + This isn't heavily optimized, but it's only used during cross linking anyway. + If it starts being used more widely, we should look at performance more carefully. + </remarks> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorPool.DescriptorIntPair"> + <summary> + Struct used to hold the keys for the fieldByNumber table. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorUtil"> + <summary> + Internal class containing utility methods when working with descriptors. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorUtil.IndexedConverter`2"> + <summary> + Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert + arrays. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorUtil.ConvertAndMakeReadOnly``2(System.Collections.Generic.IList{``0},Google.Protobuf.Reflection.DescriptorUtil.IndexedConverter{``0,``1})"> + <summary> + Converts the given array into a read-only list, applying the specified conversion to + each input element. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorValidationException"> + <summary> + Thrown when building descriptors fails because the source DescriptorProtos + are not valid. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorValidationException.ProblemSymbolName"> + <value> + The full name of the descriptor where the error occurred. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorValidationException.Description"> + <value> + A human-readable description of the error. (The Message property + is made up of the descriptor's name and this description.) + </value> + </member> + <member name="T:Google.Protobuf.Reflection.EnumDescriptor"> + <summary> + Descriptor for an enum type in a .proto file. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptor.Name"> + <summary> + The brief name of the descriptor's target. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptor.ClrType"> + <summary> + The CLR type for this enum. For generated code, this will be a CLR enum type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptor.ContainingType"> + <value> + If this is a nested type, get the outer descriptor, otherwise null. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptor.Values"> + <value> + An unmodifiable list of defined value descriptors for this enum. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.EnumDescriptor.FindValueByNumber(System.Int32)"> + <summary> + Finds an enum value by number. If multiple enum values have the + same number, this returns the first defined value with that number. + If there is no value for the given number, this returns <c>null</c>. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.EnumDescriptor.FindValueByName(System.String)"> + <summary> + Finds an enum value by name. + </summary> + <param name="name">The unqualified name of the value (e.g. "FOO").</param> + <returns>The value's descriptor, or null if not found.</returns> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this enum. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.EnumValueDescriptor"> + <summary> + Descriptor for a single enum value within an enum in a .proto file. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumValueDescriptor.Name"> + <summary> + Returns the name of the enum value described by this object. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumValueDescriptor.Number"> + <summary> + Returns the number associated with this enum value. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumValueDescriptor.EnumDescriptor"> + <summary> + Returns the enum descriptor that this value is part of. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumValueDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this enum value. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FieldAccessorBase"> + <summary> + Base class for field accessors. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FieldDescriptor"> + <summary> + Descriptor for a field or extension within a message in a .proto file. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.ContainingType"> + <summary> + Get the field's containing message type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.ContainingOneof"> + <summary> + Returns the oneof containing this field, or <c>null</c> if it is not part of a oneof. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.JsonName"> + <summary> + The effective JSON name for this field. This is usually the lower-camel-cased form of the field name, + but can be overridden using the <c>json_name</c> option in the .proto file. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.Name"> + <summary> + The brief name of the descriptor's target. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.Accessor"> + <summary> + Returns the accessor for this field. + </summary> + <remarks> + <para> + While a <see cref="T:Google.Protobuf.Reflection.FieldDescriptor"/> describes the field, it does not provide + any way of obtaining or changing the value of the field within a specific message; + that is the responsibility of the accessor. + </para> + <para> + The value returned by this property will be non-null for all regular fields. However, + if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. This is not represented in any + generated type, and the value of the map field itself is represented by a dictionary in the + reflection API. There are never instances of those "hidden" messages, so no accessor is provided + and this property will return null. + </para> + </remarks> + </member> + <member name="M:Google.Protobuf.Reflection.FieldDescriptor.GetFieldTypeFromProtoType(Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type)"> + <summary> + Maps a field type as included in the .proto file to a FieldType. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.IsRepeated"> + <summary> + Returns <c>true</c> if this field is a repeated field; <c>false</c> otherwise. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.IsMap"> + <summary> + Returns <c>true</c> if this field is a map field; <c>false</c> otherwise. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.IsPacked"> + <summary> + Returns <c>true</c> if this field is a packed, repeated field; <c>false</c> otherwise. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.FieldType"> + <summary> + Returns the type of the field. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.FieldNumber"> + <summary> + Returns the field number declared in the proto file. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.FieldDescriptor.CompareTo(Google.Protobuf.Reflection.FieldDescriptor)"> + <summary> + Compares this descriptor with another one, ordering in "canonical" order + which simply means ascending order by field number. <paramref name="other"/> + must be a field of the same type, i.e. the <see cref="P:Google.Protobuf.Reflection.FieldDescriptor.ContainingType"/> of + both fields must be the same. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.EnumType"> + <summary> + For enum fields, returns the field's type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.MessageType"> + <summary> + For embedded message and group fields, returns the field's type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this field. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.FieldDescriptor.CrossLink"> + <summary> + Look up and cross-link all field types etc. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FieldType"> + <summary> + Enumeration of all the possible field types. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Double"> + <summary> + The <c>double</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Float"> + <summary> + The <c>float</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Int64"> + <summary> + The <c>int64</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.UInt64"> + <summary> + The <c>uint64</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Int32"> + <summary> + The <c>int32</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Fixed64"> + <summary> + The <c>fixed64</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Fixed32"> + <summary> + The <c>fixed32</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Bool"> + <summary> + The <c>bool</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.String"> + <summary> + The <c>string</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Group"> + <summary> + The field type used for groups (not supported in this implementation). + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Message"> + <summary> + The field type used for message fields. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Bytes"> + <summary> + The <c>bytes</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.UInt32"> + <summary> + The <c>uint32</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.SFixed32"> + <summary> + The <c>sfixed32</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.SFixed64"> + <summary> + The <c>sfixed64</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.SInt32"> + <summary> + The <c>sint32</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.SInt64"> + <summary> + The <c>sint64</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Enum"> + <summary> + The field type used for enum fields. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FileDescriptor"> + <summary> + Describes a .proto file, including everything defined within. + IDescriptor is implemented such that the File property returns this descriptor, + and the FullName is the same as the Name. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.ComputeFullName(Google.Protobuf.Reflection.MessageDescriptor,System.String)"> + <summary> + Computes the full name of a descriptor within this file, with an optional parent message. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.DeterminePublicDependencies(Google.Protobuf.Reflection.FileDescriptor,Google.Protobuf.Reflection.FileDescriptorProto,Google.Protobuf.Reflection.FileDescriptor[],System.Boolean)"> + <summary> + Extracts public dependencies from direct dependencies. This is a static method despite its + first parameter, as the value we're in the middle of constructing is only used for exceptions. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Proto"> + <value> + The descriptor in its protocol message representation. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Name"> + <value> + The file name. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Package"> + <summary> + The package as declared in the .proto file. This may or may not + be equivalent to the .NET namespace of the generated classes. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.MessageTypes"> + <value> + Unmodifiable list of top-level message types declared in this file. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.EnumTypes"> + <value> + Unmodifiable list of top-level enum types declared in this file. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Services"> + <value> + Unmodifiable list of top-level services declared in this file. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Dependencies"> + <value> + Unmodifiable list of this file's dependencies (imports). + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.PublicDependencies"> + <value> + Unmodifiable list of this file's public dependencies (public imports). + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.SerializedData"> + <value> + The original serialized binary form of this descriptor. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Google#Protobuf#Reflection#IDescriptor#FullName"> + <value> + Implementation of IDescriptor.FullName - just returns the same as Name. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Google#Protobuf#Reflection#IDescriptor#File"> + <value> + Implementation of IDescriptor.File - just returns this descriptor. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.DescriptorPool"> + <value> + Pool containing symbol descriptors. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.FindTypeByName``1(System.String)"> + <summary> + Finds a type (message, enum, service or extension) in the file by name. Does not find nested types. + </summary> + <param name="name">The unqualified type name to look for.</param> + <typeparam name="T">The type of descriptor to look for</typeparam> + <returns>The type's descriptor, or null if not found.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.BuildFrom(Google.Protobuf.ByteString,Google.Protobuf.Reflection.FileDescriptorProto,Google.Protobuf.Reflection.FileDescriptor[],System.Boolean,Google.Protobuf.Reflection.GeneratedClrTypeInfo)"> + <summary> + Builds a FileDescriptor from its protocol buffer representation. + </summary> + <param name="descriptorData">The original serialized descriptor data. + We have only limited proto2 support, so serializing FileDescriptorProto + would not necessarily give us this.</param> + <param name="proto">The protocol message form of the FileDescriptor.</param> + <param name="dependencies">FileDescriptors corresponding to all of the + file's dependencies, in the exact order listed in the .proto file. May be null, + in which case it is treated as an empty array.</param> + <param name="allowUnknownDependencies">Whether unknown dependencies are ignored (true) or cause an exception to be thrown (false).</param> + <param name="generatedCodeInfo">Details about generated code, for the purposes of reflection.</param> + <exception cref="T:Google.Protobuf.Reflection.DescriptorValidationException">If <paramref name="proto"/> is not + a valid descriptor. This can occur for a number of reasons, such as a field + having an undefined type or because two messages were defined with the same name.</exception> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.FromGeneratedCode(System.Byte[],Google.Protobuf.Reflection.FileDescriptor[],Google.Protobuf.Reflection.GeneratedClrTypeInfo)"> + <summary> + Creates a descriptor for generated code. + </summary> + <remarks> + This method is only designed to be used by the results of generating code with protoc, + which creates the appropriate dependencies etc. It has to be public because the generated + code is "external", but should not be called directly by end users. + </remarks> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.ToString"> + <summary> + Returns a <see cref="T:System.String" /> that represents this instance. + </summary> + <returns> + A <see cref="T:System.String" /> that represents this instance. + </returns> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.DescriptorProtoFileDescriptor"> + <summary> + Returns the file descriptor for descriptor.proto. + </summary> + <remarks> + This is used for protos which take a direct dependency on <c>descriptor.proto</c>, typically for + annotations. While <c>descriptor.proto</c> is a proto2 file, it is built into the Google.Protobuf + runtime for reflection purposes. The messages are internal to the runtime as they would require + proto2 semantics for full support, but the file descriptor is available via this property. The + C# codegen in protoc automatically uses this property when it detects a dependency on <c>descriptor.proto</c>. + </remarks> + <value> + The file descriptor for <c>descriptor.proto</c>. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this file. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.ForceReflectionInitialization``1"> + <summary> + Performs initialization for the given generic type argument. + </summary> + <remarks> + This method is present for the sake of AOT compilers. It allows code (whether handwritten or generated) + to make calls into the reflection machinery of this library to express an intention to use that type + reflectively (e.g. for JSON parsing and formatting). The call itself does almost nothing, but AOT compilers + attempting to determine which generic type arguments need to be handled will spot the code path and act + accordingly. + </remarks> + <typeparam name="T">The type to force initialization for.</typeparam> + </member> + <member name="T:Google.Protobuf.Reflection.GeneratedClrTypeInfo"> + <summary> + Extra information provided by generated code when initializing a message or file descriptor. + These are constructed as required, and are not long-lived. Hand-written code should + never need to use this type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedClrTypeInfo.ClrType"> + <summary> + Irrelevant for file descriptors; the CLR type for the message for message descriptors. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedClrTypeInfo.Parser"> + <summary> + Irrelevant for file descriptors; the parser for message descriptors. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedClrTypeInfo.PropertyNames"> + <summary> + Irrelevant for file descriptors; the CLR property names (in message descriptor field order) + for fields in the message for message descriptors. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedClrTypeInfo.OneofNames"> + <summary> + Irrelevant for file descriptors; the CLR property "base" names (in message descriptor oneof order) + for oneofs in the message for message descriptors. It is expected that for a oneof name of "Foo", + there will be a "FooCase" property and a "ClearFoo" method. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedClrTypeInfo.NestedTypes"> + <summary> + The reflection information for types within this file/message descriptor. Elements may be null + if there is no corresponding generated type, e.g. for map entry types. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedClrTypeInfo.NestedEnums"> + <summary> + The CLR types for enums within this file/message descriptor. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.GeneratedClrTypeInfo.#ctor(System.Type,Google.Protobuf.MessageParser,System.String[],System.String[],System.Type[],Google.Protobuf.Reflection.GeneratedClrTypeInfo[])"> + <summary> + Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names. + Each array parameter may be null, to indicate a lack of values. + The parameter order is designed to make it feasible to format the generated code readably. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.GeneratedClrTypeInfo.#ctor(System.Type[],Google.Protobuf.Reflection.GeneratedClrTypeInfo[])"> + <summary> + Creates a GeneratedClrTypeInfo for a file descriptor, with only types and enums. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.IDescriptor"> + <summary> + Interface implemented by all descriptor types. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.IDescriptor.Name"> + <summary> + Returns the name of the entity (message, field etc) being described. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.IDescriptor.FullName"> + <summary> + Returns the fully-qualified name of the entity being described. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.IDescriptor.File"> + <summary> + Returns the descriptor for the .proto file that this entity is part of. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.IFieldAccessor"> + <summary> + Allows fields to be reflectively accessed. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.IFieldAccessor.Descriptor"> + <summary> + Returns the descriptor associated with this field. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.IFieldAccessor.Clear(Google.Protobuf.IMessage)"> + <summary> + Clears the field in the specified message. (For repeated fields, + this clears the list.) + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.IFieldAccessor.GetValue(Google.Protobuf.IMessage)"> + <summary> + Fetches the field value. For repeated values, this will be an + <see cref="T:System.Collections.IList"/> implementation. For map values, this will be an + <see cref="T:System.Collections.IDictionary"/> implementation. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.IFieldAccessor.SetValue(Google.Protobuf.IMessage,System.Object)"> + <summary> + Mutator for single "simple" fields only. + </summary> + <remarks> + Repeated fields are mutated by fetching the value and manipulating it as a list. + Map fields are mutated by fetching the value and manipulating it as a dictionary. + </remarks> + <exception cref="T:System.InvalidOperationException">The field is not a "simple" field.</exception> + </member> + <member name="T:Google.Protobuf.Reflection.MapFieldAccessor"> + <summary> + Accessor for map fields. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.MessageDescriptor"> + <summary> + Describes a message type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.Name"> + <summary> + The brief name of the descriptor's target. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.ClrType"> + <summary> + The CLR type used to represent message instances from this descriptor. + </summary> + <remarks> + <para> + The value returned by this property will be non-null for all regular fields. However, + if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. This is not represented in any + generated type, so this property will return null in such cases. + </para> + <para> + For wrapper types (<see cref="T:Google.Protobuf.WellKnownTypes.StringValue"/> and the like), the type returned here + will be the generated message type, not the native type used by reflection for fields of those types. Code + using reflection should call <see cref="P:Google.Protobuf.Reflection.MessageDescriptor.IsWrapperType"/> to determine whether a message descriptor represents + a wrapper type, and handle the result appropriately. + </para> + </remarks> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.Parser"> + <summary> + A parser for this message type. + </summary> + <remarks> + <para> + As <see cref="T:Google.Protobuf.Reflection.MessageDescriptor"/> is not generic, this cannot be statically + typed to the relevant type, but it should produce objects of a type compatible with <see cref="P:Google.Protobuf.Reflection.MessageDescriptor.ClrType"/>. + </para> + <para> + The value returned by this property will be non-null for all regular fields. However, + if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. No message parser object is created for + such messages, so this property will return null in such cases. + </para> + <para> + For wrapper types (<see cref="T:Google.Protobuf.WellKnownTypes.StringValue"/> and the like), the parser returned here + will be the generated message type, not the native type used by reflection for fields of those types. Code + using reflection should call <see cref="P:Google.Protobuf.Reflection.MessageDescriptor.IsWrapperType"/> to determine whether a message descriptor represents + a wrapper type, and handle the result appropriately. + </para> + </remarks> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.IsWellKnownType"> + <summary> + Returns whether this message is one of the "well known types" which may have runtime/protoc support. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.IsWrapperType"> + <summary> + Returns whether this message is one of the "wrapper types" used for fields which represent primitive values + with the addition of presence. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.ContainingType"> + <value> + If this is a nested type, get the outer descriptor, otherwise null. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.Fields"> + <value> + A collection of fields, which can be retrieved by name or field number. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.NestedTypes"> + <value> + An unmodifiable list of this message type's nested types. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.EnumTypes"> + <value> + An unmodifiable list of this message type's enum types. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.Oneofs"> + <value> + An unmodifiable list of the "oneof" field collections in this message type. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.FindFieldByName(System.String)"> + <summary> + Finds a field by field name. + </summary> + <param name="name">The unqualified name of the field (e.g. "foo").</param> + <returns>The field's descriptor, or null if not found.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.FindFieldByNumber(System.Int32)"> + <summary> + Finds a field by field number. + </summary> + <param name="number">The field number within this message type.</param> + <returns>The field's descriptor, or null if not found.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.FindDescriptor``1(System.String)"> + <summary> + Finds a nested descriptor by name. The is valid for fields, nested + message types, oneofs and enums. + </summary> + <param name="name">The unqualified name of the descriptor, e.g. "Foo"</param> + <returns>The descriptor, or null if not found.</returns> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this message. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.CrossLink"> + <summary> + Looks up and cross-links all fields and nested types. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection"> + <summary> + A collection to simplify retrieving the field accessor for a particular field. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection.InDeclarationOrder"> + <value> + Returns the fields in the message as an immutable list, in the order in which they + are declared in the source .proto file. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection.InFieldNumberOrder"> + <value> + Returns the fields in the message as an immutable list, in ascending field number + order. Field numbers need not be contiguous, so there is no direct mapping from the + index in the list to the field number; to retrieve a field by field number, it is better + to use the <see cref="T:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection"/> indexer. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection.ByJsonName"> + <value> + Returns a read-only dictionary mapping the field names in this message as they're available + in the JSON representation to the field descriptors. For example, a field <c>foo_bar</c> + in the message would result two entries, one with a key <c>fooBar</c> and one with a key + <c>foo_bar</c>, both referring to the same field. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection.Item(System.Int32)"> + <summary> + Retrieves the descriptor for the field with the given number. + </summary> + <param name="number">Number of the field to retrieve the descriptor for</param> + <returns>The accessor for the given field</returns> + <exception cref="T:System.Collections.Generic.KeyNotFoundException">The message descriptor does not contain a field + with the given number</exception> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection.Item(System.String)"> + <summary> + Retrieves the descriptor for the field with the given name. + </summary> + <param name="name">Name of the field to retrieve the descriptor for</param> + <returns>The descriptor for the given field</returns> + <exception cref="T:System.Collections.Generic.KeyNotFoundException">The message descriptor does not contain a field + with the given name</exception> + </member> + <member name="T:Google.Protobuf.Reflection.MethodDescriptor"> + <summary> + Describes a single method in a service. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.Service"> + <value> + The service this method belongs to. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.InputType"> + <value> + The method's input type. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.OutputType"> + <value> + The method's input type. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.IsClientStreaming"> + <value> + Indicates if client streams multiple requests. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.IsServerStreaming"> + <value> + Indicates if server streams multiple responses. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this method. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.Name"> + <summary> + The brief name of the descriptor's target. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.OneofAccessor"> + <summary> + Reflection access for a oneof, allowing clear and "get case" actions. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.OneofAccessor.Descriptor"> + <summary> + Gets the descriptor for this oneof. + </summary> + <value> + The descriptor of the oneof. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.OneofAccessor.Clear(Google.Protobuf.IMessage)"> + <summary> + Clears the oneof in the specified message. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.OneofAccessor.GetCaseFieldDescriptor(Google.Protobuf.IMessage)"> + <summary> + Indicates which field in the oneof is set for specified message + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.OneofDescriptor"> + <summary> + Describes a "oneof" field collection in a message type: a set of + fields of which at most one can be set in any particular message. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.OneofDescriptor.Name"> + <summary> + The brief name of the descriptor's target. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.OneofDescriptor.ContainingType"> + <summary> + Gets the message type containing this oneof. + </summary> + <value> + The message type containing this oneof. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.OneofDescriptor.Fields"> + <summary> + Gets the fields within this oneof, in declaration order. + </summary> + <value> + The fields within this oneof, in declaration order. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.OneofDescriptor.Accessor"> + <summary> + Gets an accessor for reflective access to the values associated with the oneof + in a particular message. + </summary> + <value> + The accessor used for reflective access. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.OneofDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this oneof. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.OriginalNameAttribute"> + <summary> + Specifies the original name (in the .proto file) of a named element, + such as an enum value. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.OriginalNameAttribute.Name"> + <summary> + The name of the element in the .proto file. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.OriginalNameAttribute.PreferredAlias"> + <summary> + If the name is preferred in the .proto file. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.OriginalNameAttribute.#ctor(System.String)"> + <summary> + Constructs a new attribute instance for the given name. + </summary> + <param name="name">The name of the element in the .proto file.</param> + </member> + <member name="T:Google.Protobuf.Reflection.PackageDescriptor"> + <summary> + Represents a package in the symbol table. We use PackageDescriptors + just as placeholders so that someone cannot define, say, a message type + that has the same name as an existing package. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.ReflectionUtil"> + <summary> + The methods in this class are somewhat evil, and should not be tampered with lightly. + Basically they allow the creation of relatively weakly typed delegates from MethodInfos + which are more strongly typed. They do this by creating an appropriate strongly typed + delegate from the MethodInfo, and then calling that within an anonymous method. + Mind-bending stuff (at least to your humble narrator) but the resulting delegates are + very fast compared with calling Invoke later on. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.ReflectionUtil.EmptyTypes"> + <summary> + Empty Type[] used when calling GetProperty to force property instead of indexer fetching. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.ReflectionUtil.CreateFuncIMessageObject(System.Reflection.MethodInfo)"> + <summary> + Creates a delegate which will cast the argument to the type that declares the method, + call the method on it, then convert the result to object. + </summary> + <param name="method">The method to create a delegate for, which must be declared in an IMessage + implementation.</param> + </member> + <member name="M:Google.Protobuf.Reflection.ReflectionUtil.CreateFuncIMessageInt32(System.Reflection.MethodInfo)"> + <summary> + Creates a delegate which will cast the argument to the type that declares the method, + call the method on it, then convert the result to the specified type. The method is expected + to actually return an enum (because of where we're calling it - for oneof cases). Sometimes that + means we need some extra work to perform conversions. + </summary> + <param name="method">The method to create a delegate for, which must be declared in an IMessage + implementation.</param> + </member> + <member name="M:Google.Protobuf.Reflection.ReflectionUtil.CreateActionIMessageObject(System.Reflection.MethodInfo)"> + <summary> + Creates a delegate which will execute the given method after casting the first argument to + the type that declares the method, and the second argument to the first parameter type of the method. + </summary> + <param name="method">The method to create a delegate for, which must be declared in an IMessage + implementation.</param> + </member> + <member name="M:Google.Protobuf.Reflection.ReflectionUtil.CreateActionIMessage(System.Reflection.MethodInfo)"> + <summary> + Creates a delegate which will execute the given method after casting the first argument to + type that declares the method. + </summary> + <param name="method">The method to create a delegate for, which must be declared in an IMessage + implementation.</param> + </member> + <member name="M:Google.Protobuf.Reflection.ReflectionUtil.GetReflectionHelper(System.Type,System.Type)"> + <summary> + Creates a reflection helper for the given type arguments. Currently these are created on demand + rather than cached; this will be "busy" when initially loading a message's descriptor, but after that + they can be garbage collected. We could cache them by type if that proves to be important, but creating + an object is pretty cheap. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.RepeatedFieldAccessor"> + <summary> + Accessor for repeated fields. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.ServiceDescriptor"> + <summary> + Describes a service type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.ServiceDescriptor.Name"> + <summary> + The brief name of the descriptor's target. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.ServiceDescriptor.Methods"> + <value> + An unmodifiable list of methods in this service. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.ServiceDescriptor.FindMethodByName(System.String)"> + <summary> + Finds a method by name. + </summary> + <param name="name">The unqualified name of the method (e.g. "Foo").</param> + <returns>The method's decsriptor, or null if not found.</returns> + </member> + <member name="P:Google.Protobuf.Reflection.ServiceDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this service. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.SingleFieldAccessor"> + <summary> + Accessor for single fields. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.TypeRegistry"> + <summary> + An immutable registry of types which can be looked up by their full name. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.TypeRegistry.Empty"> + <summary> + An empty type registry, containing no types. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.TypeRegistry.Find(System.String)"> + <summary> + Attempts to find a message descriptor by its full name. + </summary> + <param name="fullName">The full name of the message, which is the dot-separated + combination of package, containing messages and message name</param> + <returns>The message descriptor corresponding to <paramref name="fullName"/> or null + if there is no such message descriptor.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.TypeRegistry.FromFiles(Google.Protobuf.Reflection.FileDescriptor[])"> + <summary> + Creates a type registry from the specified set of file descriptors. + </summary> + <remarks> + This is a convenience overload for <see cref="M:Google.Protobuf.Reflection.TypeRegistry.FromFiles(System.Collections.Generic.IEnumerable{Google.Protobuf.Reflection.FileDescriptor})"/> + to allow calls such as <c>TypeRegistry.FromFiles(descriptor1, descriptor2)</c>. + </remarks> + <param name="fileDescriptors">The set of files to include in the registry. Must not contain null values.</param> + <returns>A type registry for the given files.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.TypeRegistry.FromFiles(System.Collections.Generic.IEnumerable{Google.Protobuf.Reflection.FileDescriptor})"> + <summary> + Creates a type registry from the specified set of file descriptors. + </summary> + <remarks> + All message types within all the specified files are added to the registry, and + the dependencies of the specified files are also added, recursively. + </remarks> + <param name="fileDescriptors">The set of files to include in the registry. Must not contain null values.</param> + <returns>A type registry for the given files.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.TypeRegistry.FromMessages(Google.Protobuf.Reflection.MessageDescriptor[])"> + <summary> + Creates a type registry from the file descriptor parents of the specified set of message descriptors. + </summary> + <remarks> + This is a convenience overload for <see cref="M:Google.Protobuf.Reflection.TypeRegistry.FromMessages(System.Collections.Generic.IEnumerable{Google.Protobuf.Reflection.MessageDescriptor})"/> + to allow calls such as <c>TypeRegistry.FromFiles(descriptor1, descriptor2)</c>. + </remarks> + <param name="messageDescriptors">The set of message descriptors to use to identify file descriptors to include in the registry. + Must not contain null values.</param> + <returns>A type registry for the given files.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.TypeRegistry.FromMessages(System.Collections.Generic.IEnumerable{Google.Protobuf.Reflection.MessageDescriptor})"> + <summary> + Creates a type registry from the file descriptor parents of the specified set of message descriptors. + </summary> + <remarks> + The specified message descriptors are only used to identify their file descriptors; the returned registry + contains all the types within the file descriptors which contain the specified message descriptors (and + the dependencies of those files), not just the specified messages. + </remarks> + <param name="messageDescriptors">The set of message descriptors to use to identify file descriptors to include in the registry. + Must not contain null values.</param> + <returns>A type registry for the given files.</returns> + </member> + <member name="T:Google.Protobuf.Reflection.TypeRegistry.Builder"> + <summary> + Builder class which isn't exposed, but acts as a convenient alternative to passing round two dictionaries in recursive calls. + </summary> + </member> + <member name="T:Google.Protobuf.UnknownField"> + <summary> + Represents a single field in an UnknownFieldSet. + + An UnknownField consists of four lists of values. The lists correspond + to the four "wire types" used in the protocol buffer binary format. + Normally, only one of the four lists will contain any values, since it + is impossible to define a valid message type that declares two different + types for the same field number. However, the code is designed to allow + for the case where the same unknown field number is encountered using + multiple different wire types. + + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.#ctor"> + <summary> + Creates a new UnknownField. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.Equals(System.Object)"> + <summary> + Checks if two unknown field are equal. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.GetHashCode"> + <summary> + Get the hash code of the unknown field. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.WriteTo(System.Int32,Google.Protobuf.CodedOutputStream)"> + <summary> + Serializes the field, including the field number, and writes it to + <paramref name="output"/> + </summary> + <param name="fieldNumber">The unknown field number.</param> + <param name="output">The CodedOutputStream to write to.</param> + </member> + <member name="M:Google.Protobuf.UnknownField.GetSerializedSize(System.Int32)"> + <summary> + Computes the number of bytes required to encode this field, including field + number. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.MergeFrom(Google.Protobuf.UnknownField)"> + <summary> + Merge the values in <paramref name="other" /> into this field. For each list + of values, <paramref name="other"/>'s values are append to the ones in this + field. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.AddAll``1(System.Collections.Generic.List{``0},System.Collections.Generic.IList{``0})"> + <summary> + Returns a new list containing all of the given specified values from + both the <paramref name="current"/> and <paramref name="extras"/> lists. + If <paramref name="current" /> is null and <paramref name="extras"/> is empty, + null is returned. Otherwise, either a new list is created (if <paramref name="current" /> + is null) or the elements of <paramref name="extras"/> are added to <paramref name="current" />. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.AddVarint(System.UInt64)"> + <summary> + Adds a varint value. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.AddFixed32(System.UInt32)"> + <summary> + Adds a fixed32 value. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.AddFixed64(System.UInt64)"> + <summary> + Adds a fixed64 value. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.AddLengthDelimited(Google.Protobuf.ByteString)"> + <summary> + Adds a length-delimited value. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.Add``1(System.Collections.Generic.List{``0},``0)"> + <summary> + Adds <paramref name="value"/> to the <paramref name="list"/>, creating + a new list if <paramref name="list"/> is null. The list is returned - either + the original reference or the new list. + </summary> + </member> + <member name="T:Google.Protobuf.UnknownFieldSet"> + <summary> + Used to keep track of fields which were seen when parsing a protocol message + but whose field numbers or types are unrecognized. This most frequently + occurs when new fields are added to a message type and then messages containing + those fields are read by old software that was built before the new types were + added. + + Most users will never need to use this class directly. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.#ctor"> + <summary> + Creates a new UnknownFieldSet. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.HasField(System.Int32)"> + <summary> + Checks whether or not the given field number is present in the set. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.WriteTo(Google.Protobuf.CodedOutputStream)"> + <summary> + Serializes the set and writes it to <paramref name="output"/>. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.CalculateSize"> + <summary> + Gets the number of bytes required to encode this set. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.Equals(System.Object)"> + <summary> + Checks if two unknown field sets are equal. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.GetHashCode"> + <summary> + Gets the unknown field set's hash code. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.AddOrReplaceField(System.Int32,Google.Protobuf.UnknownField)"> + <summary> + Adds a field to the set. If a field with the same number already exists, it + is replaced. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.MergeFieldFrom(Google.Protobuf.CodedInputStream)"> + <summary> + Parse a single field from <paramref name="input"/> and merge it + into this set. + </summary> + <param name="input">The coded input stream containing the field</param> + <returns>false if the tag is an "end group" tag, true otherwise</returns> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.MergeFieldFrom(Google.Protobuf.UnknownFieldSet,Google.Protobuf.CodedInputStream)"> + <summary> + Create a new UnknownFieldSet if unknownFields is null. + Parse a single field from <paramref name="input"/> and merge it + into unknownFields. If <paramref name="input"/> is configured to discard unknown fields, + <paramref name="unknownFields"/> will be returned as-is and the field will be skipped. + </summary> + <param name="unknownFields">The UnknownFieldSet which need to be merged</param> + <param name="input">The coded input stream containing the field</param> + <returns>The merged UnknownFieldSet</returns> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.MergeFrom(Google.Protobuf.UnknownFieldSet)"> + <summary> + Merges the fields from <paramref name="other"/> into this set. + If a field number exists in both sets, the values in <paramref name="other"/> + will be appended to the values in this set. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.MergeFrom(Google.Protobuf.UnknownFieldSet,Google.Protobuf.UnknownFieldSet)"> + <summary> + Created a new UnknownFieldSet to <paramref name="unknownFields"/> if + needed and merges the fields from <paramref name="other"/> into the first set. + If a field number exists in both sets, the values in <paramref name="other"/> + will be appended to the values in this set. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.MergeField(System.Int32,Google.Protobuf.UnknownField)"> + <summary> + Adds a field to the unknown field set. If a field with the same + number already exists, the two are merged. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.Clone(Google.Protobuf.UnknownFieldSet)"> + <summary> + Clone an unknown field set from <paramref name="other"/>. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.AnyReflection"> + <summary>Holder for reflection information generated from google/protobuf/any.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.AnyReflection.Descriptor"> + <summary>File descriptor for google/protobuf/any.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Any"> + <summary> + `Any` contains an arbitrary serialized protocol buffer message along with a + URL that describes the type of the serialized message. + + Protobuf library provides support to pack/unpack Any values in the form + of utility functions or additional generated methods of the Any type. + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := ptypes.MarshalAny(foo) + ... + foo := &pb.Foo{} + if err := ptypes.UnmarshalAny(any, foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + 'type.googleapis.com/full.type.name' as the type URL and the unpack + methods only use the fully qualified type name after the last '/' + in the type URL, for example "foo.bar.com/x/y.z" will yield type + name "y.z". + + JSON + ==== + The JSON representation of an `Any` value uses the regular + representation of the deserialized, embedded message, with an + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": <string>, + "lastName": <string> + } + + If the embedded message type is well-known and has a custom JSON + representation, that representation will be embedded adding a field + `value` which holds the custom JSON in addition to the `@type` + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Any.TypeUrlFieldNumber"> + <summary>Field number for the "type_url" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Any.TypeUrl"> + <summary> + A URL/resource name that uniquely identifies the type of the serialized + protocol buffer message. The last segment of the URL's path must represent + the fully qualified name of the type (as in + `path/google.protobuf.Duration`). The name should be in a canonical form + (e.g., leading "." is not accepted). + + In practice, teams usually precompile into the binary all types that they + expect it to use in the context of Any. However, for URLs which use the + scheme `http`, `https`, or no scheme, one can optionally set up a type + server that maps type URLs to message definitions as follows: + + * If no scheme is provided, `https` is assumed. + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the official + protobuf release, and it is not used for type URLs beginning with + type.googleapis.com. + + Schemes other than `http`, `https` (or the empty scheme) might be + used with implementation specific semantics. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Any.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Any.Value"> + <summary> + Must be a valid serialized protocol buffer of the above specified type. + </summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Any.GetTypeName(System.String)"> + <summary> + Retrieves the type name for a type URL, matching the <see cref="P:Google.Protobuf.Reflection.DescriptorBase.FullName"/> + of the packed message type. + </summary> + <remarks> + <para> + This is always just the last part of the URL, after the final slash. No validation of + anything before the trailing slash is performed. If the type URL does not include a slash, + an empty string is returned rather than an exception being thrown; this won't match any types, + and the calling code is probably in a better position to give a meaningful error. + </para> + <para> + There is no handling of fragments or queries at the moment. + </para> + </remarks> + <param name="typeUrl">The URL to extract the type name from</param> + <returns>The type name</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Any.Unpack``1"> + <summary> + Unpacks the content of this Any message into the target message type, + which must match the type URL within this Any message. + </summary> + <typeparam name="T">The type of message to unpack the content into.</typeparam> + <returns>The unpacked message.</returns> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The target message type doesn't match the type URL in this message</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Any.TryUnpack``1(``0@)"> + <summary> + Attempts to unpack the content of this Any message into the target message type, + if it matches the type URL within this Any message. + </summary> + <typeparam name="T">The type of message to attempt to unpack the content into.</typeparam> + <returns><c>true</c> if the message was successfully unpacked; <c>false</c> if the type name didn't match</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Any.Pack(Google.Protobuf.IMessage)"> + <summary> + Packs the specified message into an Any message using a type URL prefix of "type.googleapis.com". + </summary> + <param name="message">The message to pack.</param> + <returns>An Any message with the content and type URL of <paramref name="message"/>.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Any.Pack(Google.Protobuf.IMessage,System.String)"> + <summary> + Packs the specified message into an Any message using the specified type URL prefix. + </summary> + <param name="message">The message to pack.</param> + <param name="typeUrlPrefix">The prefix for the type URL.</param> + <returns>An Any message with the content and type URL of <paramref name="message"/>.</returns> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.ApiReflection"> + <summary>Holder for reflection information generated from google/protobuf/api.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.ApiReflection.Descriptor"> + <summary>File descriptor for google/protobuf/api.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Api"> + <summary> + Api is a light-weight descriptor for an API Interface. + + Interfaces are also described as "protocol buffer services" in some contexts, + such as by the "service" keyword in a .proto file, but they are different + from API Services, which represent a concrete implementation of an interface + as opposed to simply a description of methods and bindings. They are also + sometimes simply referred to as "APIs" in other contexts, such as the name of + this message itself. See https://cloud.google.com/apis/design/glossary for + detailed terminology. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.Name"> + <summary> + The fully qualified name of this interface, including package name + followed by the interface's simple name. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.MethodsFieldNumber"> + <summary>Field number for the "methods" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.Methods"> + <summary> + The methods of this interface, in unspecified order. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.Options"> + <summary> + Any metadata attached to the interface. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.VersionFieldNumber"> + <summary>Field number for the "version" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.Version"> + <summary> + A version string for this interface. If specified, must have the form + `major-version.minor-version`, as in `1.10`. If the minor version is + omitted, it defaults to zero. If the entire version field is empty, the + major version is derived from the package name, as outlined below. If the + field is not empty, the version in the package name will be verified to be + consistent with what is provided here. + + The versioning schema uses [semantic + versioning](http://semver.org) where the major version number + indicates a breaking change and the minor version an additive, + non-breaking change. Both version numbers are signals to users + what to expect from different versions, and should be carefully + chosen based on the product plan. + + The major version is also reflected in the package name of the + interface, which must end in `v<major-version>`, as in + `google.feature.v1`. For major versions 0 and 1, the suffix can + be omitted. Zero major versions must only be used for + experimental, non-GA interfaces. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.SourceContextFieldNumber"> + <summary>Field number for the "source_context" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.SourceContext"> + <summary> + Source context for the protocol buffer service represented by this + message. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.MixinsFieldNumber"> + <summary>Field number for the "mixins" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.Mixins"> + <summary> + Included interfaces. See [Mixin][]. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.SyntaxFieldNumber"> + <summary>Field number for the "syntax" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.Syntax"> + <summary> + The source syntax of the service. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Method"> + <summary> + Method represents a method of an API interface. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.Name"> + <summary> + The simple name of this method. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.RequestTypeUrlFieldNumber"> + <summary>Field number for the "request_type_url" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.RequestTypeUrl"> + <summary> + A URL of the input message type. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.RequestStreamingFieldNumber"> + <summary>Field number for the "request_streaming" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.RequestStreaming"> + <summary> + If true, the request is streamed. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.ResponseTypeUrlFieldNumber"> + <summary>Field number for the "response_type_url" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.ResponseTypeUrl"> + <summary> + The URL of the output message type. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.ResponseStreamingFieldNumber"> + <summary>Field number for the "response_streaming" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.ResponseStreaming"> + <summary> + If true, the response is streamed. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.Options"> + <summary> + Any metadata attached to the method. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.SyntaxFieldNumber"> + <summary>Field number for the "syntax" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.Syntax"> + <summary> + The source syntax of this method. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Mixin"> + <summary> + Declares an API Interface to be included in this interface. The including + interface must redeclare all the methods from the included interface, but + documentation and options are inherited as follows: + + - If after comment and whitespace stripping, the documentation + string of the redeclared method is empty, it will be inherited + from the original method. + + - Each annotation belonging to the service config (http, + visibility) which is not set in the redeclared method will be + inherited. + + - If an http annotation is inherited, the path pattern will be + modified as follows. Any version prefix will be replaced by the + version of the including interface plus the [root][] path if + specified. + + Example of a simple mixin: + + package google.acl.v1; + service AccessControl { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v1/{resource=**}:getAcl"; + } + } + + package google.storage.v2; + service Storage { + rpc GetAcl(GetAclRequest) returns (Acl); + + // Get a data record. + rpc GetData(GetDataRequest) returns (Data) { + option (google.api.http).get = "/v2/{resource=**}"; + } + } + + Example of a mixin configuration: + + apis: + - name: google.storage.v2.Storage + mixins: + - name: google.acl.v1.AccessControl + + The mixin construct implies that all methods in `AccessControl` are + also declared with same name and request/response types in + `Storage`. A documentation generator or annotation processor will + see the effective `Storage.GetAcl` method after inherting + documentation and annotations as follows: + + service Storage { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v2/{resource=**}:getAcl"; + } + ... + } + + Note how the version in the path pattern changed from `v1` to `v2`. + + If the `root` field in the mixin is specified, it should be a + relative path under which inherited HTTP paths are placed. Example: + + apis: + - name: google.storage.v2.Storage + mixins: + - name: google.acl.v1.AccessControl + root: acls + + This implies the following inherited HTTP annotation: + + service Storage { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; + } + ... + } + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Mixin.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Mixin.Name"> + <summary> + The fully qualified name of the interface which is included. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Mixin.RootFieldNumber"> + <summary>Field number for the "root" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Mixin.Root"> + <summary> + If non-empty specifies a path under which inherited HTTP paths + are rooted. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.DurationReflection"> + <summary>Holder for reflection information generated from google/protobuf/duration.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor"> + <summary>File descriptor for google/protobuf/duration.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Duration"> + <summary> + A Duration represents a signed, fixed-length span of time represented + as a count of seconds and fractions of seconds at nanosecond + resolution. It is independent of any calendar and concepts like "day" + or "month". It is related to Timestamp in that the difference between + two Timestamp values is a Duration and it can be added or subtracted + from a Timestamp. Range is approximately +-10,000 years. + + # Examples + + Example 1: Compute Duration from two Timestamps in pseudo code. + + Timestamp start = ...; + Timestamp end = ...; + Duration duration = ...; + + duration.seconds = end.seconds - start.seconds; + duration.nanos = end.nanos - start.nanos; + + if (duration.seconds < 0 && duration.nanos > 0) { + duration.seconds += 1; + duration.nanos -= 1000000000; + } else if (durations.seconds > 0 && duration.nanos < 0) { + duration.seconds -= 1; + duration.nanos += 1000000000; + } + + Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. + + Timestamp start = ...; + Duration duration = ...; + Timestamp end = ...; + + end.seconds = start.seconds + duration.seconds; + end.nanos = start.nanos + duration.nanos; + + if (end.nanos < 0) { + end.seconds -= 1; + end.nanos += 1000000000; + } else if (end.nanos >= 1000000000) { + end.seconds += 1; + end.nanos -= 1000000000; + } + + Example 3: Compute Duration from datetime.timedelta in Python. + + td = datetime.timedelta(days=3, minutes=10) + duration = Duration() + duration.FromTimedelta(td) + + # JSON Mapping + + In JSON format, the Duration type is encoded as a string rather than an + object, where the string ends in the suffix "s" (indicating seconds) and + is preceded by the number of seconds, with nanoseconds expressed as + fractional seconds. For example, 3 seconds with 0 nanoseconds should be + encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should + be expressed in JSON format as "3.000000001s", and 3 seconds and 1 + microsecond should be expressed in JSON format as "3.000001s". + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Duration.SecondsFieldNumber"> + <summary>Field number for the "seconds" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Duration.Seconds"> + <summary> + Signed seconds of the span of time. Must be from -315,576,000,000 + to +315,576,000,000 inclusive. Note: these bounds are computed from: + 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Duration.NanosFieldNumber"> + <summary>Field number for the "nanos" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Duration.Nanos"> + <summary> + Signed fractions of a second at nanosecond resolution of the span + of time. Durations less than one second are represented with a 0 + `seconds` field and a positive or negative `nanos` field. For durations + of one second or more, a non-zero value for the `nanos` field must be + of the same sign as the `seconds` field. Must be from -999,999,999 + to +999,999,999 inclusive. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Duration.NanosecondsPerSecond"> + <summary> + The number of nanoseconds in a second. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Duration.NanosecondsPerTick"> + <summary> + The number of nanoseconds in a BCL tick (as used by <see cref="T:System.TimeSpan"/> and <see cref="T:System.DateTime"/>). + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Duration.MaxSeconds"> + <summary> + The maximum permitted number of seconds. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Duration.MinSeconds"> + <summary> + The minimum permitted number of seconds. + </summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.ToTimeSpan"> + <summary> + Converts this <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/> to a <see cref="T:System.TimeSpan"/>. + </summary> + <remarks>If the duration is not a precise number of ticks, it is truncated towards 0.</remarks> + <returns>The value of this duration, as a <c>TimeSpan</c>.</returns> + <exception cref="T:System.InvalidOperationException">This value isn't a valid normalized duration, as + described in the documentation.</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.FromTimeSpan(System.TimeSpan)"> + <summary> + Converts the given <see cref="T:System.TimeSpan"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/>. + </summary> + <param name="timeSpan">The <c>TimeSpan</c> to convert.</param> + <returns>The value of the given <c>TimeSpan</c>, as a <c>Duration</c>.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.op_UnaryNegation(Google.Protobuf.WellKnownTypes.Duration)"> + <summary> + Returns the result of negating the duration. For example, the negation of 5 minutes is -5 minutes. + </summary> + <param name="value">The duration to negate. Must not be null.</param> + <returns>The negated value of this duration.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.op_Addition(Google.Protobuf.WellKnownTypes.Duration,Google.Protobuf.WellKnownTypes.Duration)"> + <summary> + Adds the two specified <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/> values together. + </summary> + <param name="lhs">The first value to add. Must not be null.</param> + <param name="rhs">The second value to add. Must not be null.</param> + <returns></returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.op_Subtraction(Google.Protobuf.WellKnownTypes.Duration,Google.Protobuf.WellKnownTypes.Duration)"> + <summary> + Subtracts one <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/> from another. + </summary> + <param name="lhs">The duration to subtract from. Must not be null.</param> + <param name="rhs">The duration to subtract. Must not be null.</param> + <returns>The difference between the two specified durations.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.Normalize(System.Int64,System.Int32)"> + <summary> + Creates a duration with the normalized values from the given number of seconds and + nanoseconds, conforming with the description in the proto file. + </summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.ToJson(System.Int64,System.Int32,System.Boolean)"> + <summary> + Converts a duration specified in seconds/nanoseconds to a string. + </summary> + <remarks> + If the value is a normalized duration in the range described in <c>duration.proto</c>, + <paramref name="diagnosticOnly"/> is ignored. Otherwise, if the parameter is <c>true</c>, + a JSON object with a warning is returned; if it is <c>false</c>, an <see cref="T:System.InvalidOperationException"/> is thrown. + </remarks> + <param name="seconds">Seconds portion of the duration.</param> + <param name="nanoseconds">Nanoseconds portion of the duration.</param> + <param name="diagnosticOnly">Determines the handling of non-normalized values</param> + <exception cref="T:System.InvalidOperationException">The represented duration is invalid, and <paramref name="diagnosticOnly"/> is <c>false</c>.</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.ToDiagnosticString"> + <summary> + Returns a string representation of this <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/> for diagnostic purposes. + </summary> + <remarks> + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + </remarks> + <returns>A string representation of this value.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.AppendNanoseconds(System.Text.StringBuilder,System.Int32)"> + <summary> + Appends a number of nanoseconds to a StringBuilder. Either 0 digits are added (in which + case no "." is appended), or 3 6 or 9 digits. This is internal for use in Timestamp as well + as Duration. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.EmptyReflection"> + <summary>Holder for reflection information generated from google/protobuf/empty.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.EmptyReflection.Descriptor"> + <summary>File descriptor for google/protobuf/empty.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Empty"> + <summary> + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the request + or the response type of an API method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); + } + + The JSON representation for `Empty` is empty JSON object `{}`. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.FieldMaskReflection"> + <summary>Holder for reflection information generated from google/protobuf/field_mask.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor"> + <summary>File descriptor for google/protobuf/field_mask.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.FieldMask"> + <summary> + `FieldMask` represents a set of symbolic field paths, for example: + + paths: "f.a" + paths: "f.b.d" + + Here `f` represents a field in some root message, `a` and `b` + fields in the message found in `f`, and `d` a field found in the + message in `f.b`. + + Field masks are used to specify a subset of fields that should be + returned by a get operation or modified by an update operation. + Field masks also have a custom JSON encoding (see below). + + # Field Masks in Projections + + When used in the context of a projection, a response message or + sub-message is filtered by the API to only contain those fields as + specified in the mask. For example, if the mask in the previous + example is applied to a response message as follows: + + f { + a : 22 + b { + d : 1 + x : 2 + } + y : 13 + } + z: 8 + + The result will not contain specific values for fields x,y and z + (their value will be set to the default, and omitted in proto text + output): + + f { + a : 22 + b { + d : 1 + } + } + + A repeated field is not allowed except at the last position of a + paths string. + + If a FieldMask object is not present in a get operation, the + operation applies to all fields (as if a FieldMask of all fields + had been specified). + + Note that a field mask does not necessarily apply to the + top-level response message. In case of a REST get operation, the + field mask applies directly to the response, but in case of a REST + list operation, the mask instead applies to each individual message + in the returned resource list. In case of a REST custom method, + other definitions may be used. Where the mask applies will be + clearly documented together with its declaration in the API. In + any case, the effect on the returned resource/resources is required + behavior for APIs. + + # Field Masks in Update Operations + + A field mask in update operations specifies which fields of the + targeted resource are going to be updated. The API is required + to only change the values of the fields as specified in the mask + and leave the others untouched. If a resource is passed in to + describe the updated values, the API ignores the values of all + fields not covered by the mask. + + If a repeated field is specified for an update operation, the existing + repeated values in the target resource will be overwritten by the new values. + Note that a repeated field is only allowed in the last position of a `paths` + string. + + If a sub-message is specified in the last position of the field mask for an + update operation, then the existing sub-message in the target resource is + overwritten. Given the target message: + + f { + b { + d : 1 + x : 2 + } + c : 1 + } + + And an update message: + + f { + b { + d : 10 + } + } + + then if the field mask is: + + paths: "f.b" + + then the result will be: + + f { + b { + d : 10 + } + c : 1 + } + + However, if the update mask was: + + paths: "f.b.d" + + then the result would be: + + f { + b { + d : 10 + x : 2 + } + c : 1 + } + + In order to reset a field's value to the default, the field must + be in the mask and set to the default value in the provided resource. + Hence, in order to reset all fields of a resource, provide a default + instance of the resource and set all fields in the mask, or do + not provide a mask as described below. + + If a field mask is not present on update, the operation applies to + all fields (as if a field mask of all fields has been specified). + Note that in the presence of schema evolution, this may mean that + fields the client does not know and has therefore not filled into + the request will be reset to their default. If this is unwanted + behavior, a specific service may require a client to always specify + a field mask, producing an error if not. + + As with get operations, the location of the resource which + describes the updated values in the request message depends on the + operation kind. In any case, the effect of the field mask is + required to be honored by the API. + + ## Considerations for HTTP REST + + The HTTP kind of an update operation which uses a field mask must + be set to PATCH instead of PUT in order to satisfy HTTP semantics + (PUT must only be used for full updates). + + # JSON Encoding of Field Masks + + In JSON, a field mask is encoded as a single string where paths are + separated by a comma. Fields name in each path are converted + to/from lower-camel naming conventions. + + As an example, consider the following message declarations: + + message Profile { + User user = 1; + Photo photo = 2; + } + message User { + string display_name = 1; + string address = 2; + } + + In proto a field mask for `Profile` may look as such: + + mask { + paths: "user.display_name" + paths: "photo" + } + + In JSON, the same mask is represented as below: + + { + mask: "user.displayName,photo" + } + + # Field Masks and Oneof Fields + + Field masks treat fields in oneofs just as regular fields. Consider the + following message: + + message SampleMessage { + oneof test_oneof { + string name = 4; + SubMessage sub_message = 9; + } + } + + The field mask can be: + + mask { + paths: "name" + } + + Or: + + mask { + paths: "sub_message" + } + + Note that oneof type names ("test_oneof" in this case) cannot be used in + paths. + + ## Field Mask Verification + + The implementation of any API method which has a FieldMask type field in the + request should verify the included field paths, and return an + `INVALID_ARGUMENT` error if any path is duplicated or unmappable. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.FieldMask.PathsFieldNumber"> + <summary>Field number for the "paths" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.FieldMask.Paths"> + <summary> + The set of field mask paths. + </summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.FieldMask.ToJson(System.Collections.Generic.IList{System.String},System.Boolean)"> + <summary> + Converts a timestamp specified in seconds/nanoseconds to a string. + </summary> + <remarks> + If the value is a normalized duration in the range described in <c>field_mask.proto</c>, + <paramref name="diagnosticOnly"/> is ignored. Otherwise, if the parameter is <c>true</c>, + a JSON object with a warning is returned; if it is <c>false</c>, an <see cref="T:System.InvalidOperationException"/> is thrown. + </remarks> + <param name="paths">Paths in the field mask</param> + <param name="diagnosticOnly">Determines the handling of non-normalized values</param> + <exception cref="T:System.InvalidOperationException">The represented field mask is invalid, and <paramref name="diagnosticOnly"/> is <c>false</c>.</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.FieldMask.ValidatePath(System.String)"> + <summary> + Checks whether the given path is valid for a field mask. + </summary> + <returns>true if the path is valid; false otherwise</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.FieldMask.ToDiagnosticString"> + <summary> + Returns a string representation of this <see cref="T:Google.Protobuf.WellKnownTypes.FieldMask"/> for diagnostic purposes. + </summary> + <remarks> + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + </remarks> + <returns>A string representation of this value.</returns> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.SourceContextReflection"> + <summary>Holder for reflection information generated from google/protobuf/source_context.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.SourceContextReflection.Descriptor"> + <summary>File descriptor for google/protobuf/source_context.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.SourceContext"> + <summary> + `SourceContext` represents information about the source of a + protobuf element, like the file in which it is defined. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.SourceContext.FileNameFieldNumber"> + <summary>Field number for the "file_name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.SourceContext.FileName"> + <summary> + The path-qualified name of the .proto file that contained the associated + protobuf element. For example: `"google/protobuf/source_context.proto"`. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.StructReflection"> + <summary>Holder for reflection information generated from google/protobuf/struct.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.StructReflection.Descriptor"> + <summary>File descriptor for google/protobuf/struct.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.NullValue"> + <summary> + `NullValue` is a singleton enumeration to represent the null value for the + `Value` type union. + + The JSON representation for `NullValue` is JSON `null`. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.NullValue.NullValue"> + <summary> + Null value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Struct"> + <summary> + `Struct` represents a structured data value, consisting of fields + which map to dynamically typed values. In some languages, `Struct` + might be supported by a native representation. For example, in + scripting languages like JS a struct is represented as an + object. The details of that representation are described together + with the proto support for the language. + + The JSON representation for `Struct` is JSON object. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Struct.FieldsFieldNumber"> + <summary>Field number for the "fields" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Struct.Fields"> + <summary> + Unordered map of dynamically typed values. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Value"> + <summary> + `Value` represents a dynamically typed value which can be either + null, a number, a string, a boolean, a recursive struct value, or a + list of values. A producer of value is expected to set one of that + variants, absence of any variant indicates an error. + + The JSON representation for `Value` is JSON value. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Value.NullValueFieldNumber"> + <summary>Field number for the "null_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Value.NullValue"> + <summary> + Represents a null value. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Value.NumberValueFieldNumber"> + <summary>Field number for the "number_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Value.NumberValue"> + <summary> + Represents a double value. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Value.StringValueFieldNumber"> + <summary>Field number for the "string_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Value.StringValue"> + <summary> + Represents a string value. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Value.BoolValueFieldNumber"> + <summary>Field number for the "bool_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Value.BoolValue"> + <summary> + Represents a boolean value. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Value.StructValueFieldNumber"> + <summary>Field number for the "struct_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Value.StructValue"> + <summary> + Represents a structured value. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Value.ListValueFieldNumber"> + <summary>Field number for the "list_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Value.ListValue"> + <summary> + Represents a repeated `Value`. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Value.KindOneofCase"> + <summary>Enum of possible cases for the "kind" oneof.</summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Value.ForString(System.String)"> + <summary> + Convenience method to create a Value message with a string value. + </summary> + <param name="value">Value to set for the StringValue property.</param> + <returns>A newly-created Value message with the given value.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Value.ForNumber(System.Double)"> + <summary> + Convenience method to create a Value message with a number value. + </summary> + <param name="value">Value to set for the NumberValue property.</param> + <returns>A newly-created Value message with the given value.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Value.ForBool(System.Boolean)"> + <summary> + Convenience method to create a Value message with a Boolean value. + </summary> + <param name="value">Value to set for the BoolValue property.</param> + <returns>A newly-created Value message with the given value.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Value.ForNull"> + <summary> + Convenience method to create a Value message with a null initial value. + </summary> + <returns>A newly-created Value message a null initial value.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Value.ForList(Google.Protobuf.WellKnownTypes.Value[])"> + <summary> + Convenience method to create a Value message with an initial list of values. + </summary> + <remarks>The values provided are not cloned; the references are copied directly.</remarks> + <returns>A newly-created Value message an initial list value.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Value.ForStruct(Google.Protobuf.WellKnownTypes.Struct)"> + <summary> + Convenience method to create a Value message with an initial struct value + </summary> + <remarks>The value provided is not cloned; the reference is copied directly.</remarks> + <returns>A newly-created Value message an initial struct value.</returns> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.ListValue"> + <summary> + `ListValue` is a wrapper around a repeated field of values. + + The JSON representation for `ListValue` is JSON array. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.ListValue.ValuesFieldNumber"> + <summary>Field number for the "values" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.ListValue.Values"> + <summary> + Repeated field of dynamically typed values. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.TimeExtensions"> + <summary> + Extension methods on BCL time-related types, converting to protobuf types. + </summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.TimeExtensions.ToTimestamp(System.DateTime)"> + <summary> + Converts the given <see cref="T:System.DateTime"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/>. + </summary> + <param name="dateTime">The date and time to convert to a timestamp.</param> + <exception cref="T:System.ArgumentException">The <paramref name="dateTime"/> value has a <see cref="P:System.DateTime.Kind"/>other than <c>Utc</c>.</exception> + <returns>The converted timestamp.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.TimeExtensions.ToTimestamp(System.DateTimeOffset)"> + <summary> + Converts the given <see cref="T:System.DateTimeOffset"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/> + </summary> + <remarks>The offset is taken into consideration when converting the value (so the same instant in time + is represented) but is not a separate part of the resulting value. In other words, there is no + roundtrip operation to retrieve the original <c>DateTimeOffset</c>.</remarks> + <param name="dateTimeOffset">The date and time (with UTC offset) to convert to a timestamp.</param> + <returns>The converted timestamp.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.TimeExtensions.ToDuration(System.TimeSpan)"> + <summary> + Converts the given <see cref="T:System.TimeSpan"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/>. + </summary> + <param name="timeSpan">The time span to convert.</param> + <returns>The converted duration.</returns> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.TimestampReflection"> + <summary>Holder for reflection information generated from google/protobuf/timestamp.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor"> + <summary>File descriptor for google/protobuf/timestamp.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Timestamp"> + <summary> + A Timestamp represents a point in time independent of any time zone + or calendar, represented as seconds and fractions of seconds at + nanosecond resolution in UTC Epoch time. It is encoded using the + Proleptic Gregorian Calendar which extends the Gregorian calendar + backwards to year one. It is encoded assuming all minutes are 60 + seconds long, i.e. leap seconds are "smeared" so that no leap second + table is needed for interpretation. Range is from + 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. + By restricting to that range, we ensure that we can convert to + and from RFC 3339 date strings. + See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] + method. In Python, a standard `datetime.datetime` object can be converted + to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) + with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one + can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime-- + ) to obtain a formatter capable of generating timestamps in this format. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Timestamp.SecondsFieldNumber"> + <summary>Field number for the "seconds" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Timestamp.Seconds"> + <summary> + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Timestamp.NanosFieldNumber"> + <summary>Field number for the "nanos" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Timestamp.Nanos"> + <summary> + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. + </summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.op_Subtraction(Google.Protobuf.WellKnownTypes.Timestamp,Google.Protobuf.WellKnownTypes.Timestamp)"> + <summary> + Returns the difference between one <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/> and another, as a <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/>. + </summary> + <param name="lhs">The timestamp to subtract from. Must not be null.</param> + <param name="rhs">The timestamp to subtract. Must not be null.</param> + <returns>The difference between the two specified timestamps.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.op_Addition(Google.Protobuf.WellKnownTypes.Timestamp,Google.Protobuf.WellKnownTypes.Duration)"> + <summary> + Adds a <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/>, to obtain another <c>Timestamp</c>. + </summary> + <param name="lhs">The timestamp to add the duration to. Must not be null.</param> + <param name="rhs">The duration to add. Must not be null.</param> + <returns>The result of adding the duration to the timestamp.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.op_Subtraction(Google.Protobuf.WellKnownTypes.Timestamp,Google.Protobuf.WellKnownTypes.Duration)"> + <summary> + Subtracts a <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/> from a <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/>, to obtain another <c>Timestamp</c>. + </summary> + <param name="lhs">The timestamp to subtract the duration from. Must not be null.</param> + <param name="rhs">The duration to subtract.</param> + <returns>The result of subtracting the duration from the timestamp.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.ToDateTime"> + <summary> + Converts this timestamp into a <see cref="T:System.DateTime"/>. + </summary> + <remarks> + The resulting <c>DateTime</c> will always have a <c>Kind</c> of <c>Utc</c>. + If the timestamp is not a precise number of ticks, it will be truncated towards the start + of time. For example, a timestamp with a <see cref="P:Google.Protobuf.WellKnownTypes.Timestamp.Nanos"/> value of 99 will result in a + <see cref="T:System.DateTime"/> value precisely on a second. + </remarks> + <returns>This timestamp as a <c>DateTime</c>.</returns> + <exception cref="T:System.InvalidOperationException">The timestamp contains invalid values; either it is + incorrectly normalized or is outside the valid range.</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.ToDateTimeOffset"> + <summary> + Converts this timestamp into a <see cref="T:System.DateTimeOffset"/>. + </summary> + <remarks> + The resulting <c>DateTimeOffset</c> will always have an <c>Offset</c> of zero. + If the timestamp is not a precise number of ticks, it will be truncated towards the start + of time. For example, a timestamp with a <see cref="P:Google.Protobuf.WellKnownTypes.Timestamp.Nanos"/> value of 99 will result in a + <see cref="T:System.DateTimeOffset"/> value precisely on a second. + </remarks> + <returns>This timestamp as a <c>DateTimeOffset</c>.</returns> + <exception cref="T:System.InvalidOperationException">The timestamp contains invalid values; either it is + incorrectly normalized or is outside the valid range.</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.FromDateTime(System.DateTime)"> + <summary> + Converts the specified <see cref="T:System.DateTime"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/>. + </summary> + <param name="dateTime"></param> + <exception cref="T:System.ArgumentException">The <c>Kind</c> of <paramref name="dateTime"/> is not <c>DateTimeKind.Utc</c>.</exception> + <returns>The converted timestamp.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.FromDateTimeOffset(System.DateTimeOffset)"> + <summary> + Converts the given <see cref="T:System.DateTimeOffset"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/> + </summary> + <remarks>The offset is taken into consideration when converting the value (so the same instant in time + is represented) but is not a separate part of the resulting value. In other words, there is no + roundtrip operation to retrieve the original <c>DateTimeOffset</c>.</remarks> + <param name="dateTimeOffset">The date and time (with UTC offset) to convert to a timestamp.</param> + <returns>The converted timestamp.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.ToJson(System.Int64,System.Int32,System.Boolean)"> + <summary> + Converts a timestamp specified in seconds/nanoseconds to a string. + </summary> + <remarks> + If the value is a normalized duration in the range described in <c>timestamp.proto</c>, + <paramref name="diagnosticOnly"/> is ignored. Otherwise, if the parameter is <c>true</c>, + a JSON object with a warning is returned; if it is <c>false</c>, an <see cref="T:System.InvalidOperationException"/> is thrown. + </remarks> + <param name="seconds">Seconds portion of the duration.</param> + <param name="nanoseconds">Nanoseconds portion of the duration.</param> + <param name="diagnosticOnly">Determines the handling of non-normalized values</param> + <exception cref="T:System.InvalidOperationException">The represented duration is invalid, and <paramref name="diagnosticOnly"/> is <c>false</c>.</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.ToDiagnosticString"> + <summary> + Returns a string representation of this <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/> for diagnostic purposes. + </summary> + <remarks> + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + </remarks> + <returns>A string representation of this value.</returns> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.TypeReflection"> + <summary>Holder for reflection information generated from google/protobuf/type.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.TypeReflection.Descriptor"> + <summary>File descriptor for google/protobuf/type.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Syntax"> + <summary> + The syntax in which a protocol buffer element is defined. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Syntax.Proto2"> + <summary> + Syntax `proto2`. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Syntax.Proto3"> + <summary> + Syntax `proto3`. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Type"> + <summary> + A protocol buffer message type. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Type.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Type.Name"> + <summary> + The fully qualified message name. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Type.FieldsFieldNumber"> + <summary>Field number for the "fields" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Type.Fields"> + <summary> + The list of fields. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Type.OneofsFieldNumber"> + <summary>Field number for the "oneofs" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Type.Oneofs"> + <summary> + The list of types appearing in `oneof` definitions in this type. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Type.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Type.Options"> + <summary> + The protocol buffer options. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Type.SourceContextFieldNumber"> + <summary>Field number for the "source_context" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Type.SourceContext"> + <summary> + The source context. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Type.SyntaxFieldNumber"> + <summary>Field number for the "syntax" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Type.Syntax"> + <summary> + The source syntax. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Field"> + <summary> + A single field of a message type. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.KindFieldNumber"> + <summary>Field number for the "kind" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.Kind"> + <summary> + The field type. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.CardinalityFieldNumber"> + <summary>Field number for the "cardinality" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.Cardinality"> + <summary> + The field cardinality. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.NumberFieldNumber"> + <summary>Field number for the "number" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.Number"> + <summary> + The field number. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.Name"> + <summary> + The field name. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.TypeUrlFieldNumber"> + <summary>Field number for the "type_url" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.TypeUrl"> + <summary> + The field type URL, without the scheme, for message or enumeration + types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.OneofIndexFieldNumber"> + <summary>Field number for the "oneof_index" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.OneofIndex"> + <summary> + The index of the field type in `Type.oneofs`, for message or enumeration + types. The first type has index 1; zero means the type is not in the list. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.PackedFieldNumber"> + <summary>Field number for the "packed" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.Packed"> + <summary> + Whether to use alternative packed wire representation. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.Options"> + <summary> + The protocol buffer options. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.JsonNameFieldNumber"> + <summary>Field number for the "json_name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.JsonName"> + <summary> + The field JSON name. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.DefaultValueFieldNumber"> + <summary>Field number for the "default_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.DefaultValue"> + <summary> + The string value of the default value of this field. Proto2 syntax only. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Field.Types"> + <summary>Container for nested types declared in the Field message type.</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Field.Types.Kind"> + <summary> + Basic field types. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeUnknown"> + <summary> + Field type unknown. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeDouble"> + <summary> + Field type double. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeFloat"> + <summary> + Field type float. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeInt64"> + <summary> + Field type int64. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeUint64"> + <summary> + Field type uint64. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeInt32"> + <summary> + Field type int32. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeFixed64"> + <summary> + Field type fixed64. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeFixed32"> + <summary> + Field type fixed32. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeBool"> + <summary> + Field type bool. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeString"> + <summary> + Field type string. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeGroup"> + <summary> + Field type group. Proto2 syntax only, and deprecated. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeMessage"> + <summary> + Field type message. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeBytes"> + <summary> + Field type bytes. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeUint32"> + <summary> + Field type uint32. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeEnum"> + <summary> + Field type enum. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeSfixed32"> + <summary> + Field type sfixed32. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeSfixed64"> + <summary> + Field type sfixed64. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeSint32"> + <summary> + Field type sint32. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeSint64"> + <summary> + Field type sint64. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Field.Types.Cardinality"> + <summary> + Whether a field is optional, required, or repeated. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Cardinality.Unknown"> + <summary> + For fields with unknown cardinality. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Cardinality.Optional"> + <summary> + For optional fields. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Cardinality.Required"> + <summary> + For required fields. Proto2 syntax only. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Cardinality.Repeated"> + <summary> + For repeated fields. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Enum"> + <summary> + Enum type definition. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Enum.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Enum.Name"> + <summary> + Enum type name. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Enum.EnumvalueFieldNumber"> + <summary>Field number for the "enumvalue" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Enum.Enumvalue"> + <summary> + Enum value definitions. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Enum.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Enum.Options"> + <summary> + Protocol buffer options. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Enum.SourceContextFieldNumber"> + <summary>Field number for the "source_context" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Enum.SourceContext"> + <summary> + The source context. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Enum.SyntaxFieldNumber"> + <summary>Field number for the "syntax" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Enum.Syntax"> + <summary> + The source syntax. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.EnumValue"> + <summary> + Enum value definition. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.EnumValue.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.EnumValue.Name"> + <summary> + Enum value name. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.EnumValue.NumberFieldNumber"> + <summary>Field number for the "number" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.EnumValue.Number"> + <summary> + Enum value number. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.EnumValue.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.EnumValue.Options"> + <summary> + Protocol buffer options. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Option"> + <summary> + A protocol buffer option, which can be attached to a message, field, + enumeration, etc. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Option.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Option.Name"> + <summary> + The option's name. For protobuf built-in options (options defined in + descriptor.proto), this is the short name. For example, `"map_entry"`. + For custom options, it should be the fully-qualified name. For example, + `"google.api.http"`. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Option.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Option.Value"> + <summary> + The option's value packed in an Any message. If the value is a primitive, + the corresponding wrapper type defined in google/protobuf/wrappers.proto + should be used. If the value is an enum, it should be stored as an int32 + value using the google.protobuf.Int32Value type. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.WrappersReflection"> + <summary>Holder for reflection information generated from google/protobuf/wrappers.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor"> + <summary>File descriptor for google/protobuf/wrappers.proto</summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.WrappersReflection.WrapperValueFieldNumber"> + <summary> + Field number for the single "value" field in all wrapper types. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.DoubleValue"> + <summary> + Wrapper message for `double`. + + The JSON representation for `DoubleValue` is JSON number. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.DoubleValue.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.DoubleValue.Value"> + <summary> + The double value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.FloatValue"> + <summary> + Wrapper message for `float`. + + The JSON representation for `FloatValue` is JSON number. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.FloatValue.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.FloatValue.Value"> + <summary> + The float value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Int64Value"> + <summary> + Wrapper message for `int64`. + + The JSON representation for `Int64Value` is JSON string. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Int64Value.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Int64Value.Value"> + <summary> + The int64 value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.UInt64Value"> + <summary> + Wrapper message for `uint64`. + + The JSON representation for `UInt64Value` is JSON string. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.UInt64Value.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.UInt64Value.Value"> + <summary> + The uint64 value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Int32Value"> + <summary> + Wrapper message for `int32`. + + The JSON representation for `Int32Value` is JSON number. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Int32Value.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Int32Value.Value"> + <summary> + The int32 value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.UInt32Value"> + <summary> + Wrapper message for `uint32`. + + The JSON representation for `UInt32Value` is JSON number. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.UInt32Value.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.UInt32Value.Value"> + <summary> + The uint32 value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.BoolValue"> + <summary> + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.BoolValue.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.BoolValue.Value"> + <summary> + The bool value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.StringValue"> + <summary> + Wrapper message for `string`. + + The JSON representation for `StringValue` is JSON string. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.StringValue.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.StringValue.Value"> + <summary> + The string value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.BytesValue"> + <summary> + Wrapper message for `bytes`. + + The JSON representation for `BytesValue` is JSON string. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.BytesValue.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.BytesValue.Value"> + <summary> + The bytes value. + </summary> + </member> + <member name="T:Google.Protobuf.WireFormat"> + <summary> + This class is used internally by the Protocol Buffer Library and generated + message implementations. It is public only for the sake of those generated + messages. Others should not use this class directly. + <para> + This class contains constants and helper functions useful for dealing with + the Protocol Buffer wire format. + </para> + </summary> + </member> + <member name="T:Google.Protobuf.WireFormat.WireType"> + <summary> + Wire types within protobuf encoding. + </summary> + </member> + <member name="F:Google.Protobuf.WireFormat.WireType.Varint"> + <summary> + Variable-length integer. + </summary> + </member> + <member name="F:Google.Protobuf.WireFormat.WireType.Fixed64"> + <summary> + A fixed-length 64-bit value. + </summary> + </member> + <member name="F:Google.Protobuf.WireFormat.WireType.LengthDelimited"> + <summary> + A length-delimited value, i.e. a length followed by that many bytes of data. + </summary> + </member> + <member name="F:Google.Protobuf.WireFormat.WireType.StartGroup"> + <summary> + A "start group" value - not supported by this implementation. + </summary> + </member> + <member name="F:Google.Protobuf.WireFormat.WireType.EndGroup"> + <summary> + An "end group" value - not supported by this implementation. + </summary> + </member> + <member name="F:Google.Protobuf.WireFormat.WireType.Fixed32"> + <summary> + A fixed-length 32-bit value. + </summary> + </member> + <member name="M:Google.Protobuf.WireFormat.GetTagWireType(System.UInt32)"> + <summary> + Given a tag value, determines the wire type (lower 3 bits). + </summary> + </member> + <member name="M:Google.Protobuf.WireFormat.GetTagFieldNumber(System.UInt32)"> + <summary> + Given a tag value, determines the field number (the upper 29 bits). + </summary> + </member> + <member name="M:Google.Protobuf.WireFormat.MakeTag(System.Int32,Google.Protobuf.WireFormat.WireType)"> + <summary> + Makes a tag value given a field number and wire type. + </summary> + </member> + </members> +</doc>
diff --git a/csharp/nuget/work/packages/Google.Protobuf.3.6.1/lib/netstandard1.0/Google.Protobuf.dll b/csharp/nuget/work/packages/Google.Protobuf.3.6.1/lib/netstandard1.0/Google.Protobuf.dll new file mode 100755 index 0000000..4efae0d --- /dev/null +++ b/csharp/nuget/work/packages/Google.Protobuf.3.6.1/lib/netstandard1.0/Google.Protobuf.dll Binary files differ
diff --git a/csharp/nuget/work/packages/Google.Protobuf.3.6.1/lib/netstandard1.0/Google.Protobuf.xml b/csharp/nuget/work/packages/Google.Protobuf.3.6.1/lib/netstandard1.0/Google.Protobuf.xml new file mode 100755 index 0000000..18a593a --- /dev/null +++ b/csharp/nuget/work/packages/Google.Protobuf.3.6.1/lib/netstandard1.0/Google.Protobuf.xml
@@ -0,0 +1,7548 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Google.Protobuf</name> + </assembly> + <members> + <member name="T:Google.Protobuf.ByteArray"> + <summary> + Provides a utility routine to copy small arrays much more quickly than Buffer.BlockCopy + </summary> + </member> + <member name="F:Google.Protobuf.ByteArray.CopyThreshold"> + <summary> + The threshold above which you should use Buffer.BlockCopy rather than ByteArray.Copy + </summary> + </member> + <member name="M:Google.Protobuf.ByteArray.Copy(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Int32)"> + <summary> + Determines which copy routine to use based on the number of bytes to be copied. + </summary> + </member> + <member name="M:Google.Protobuf.ByteArray.Reverse(System.Byte[])"> + <summary> + Reverses the order of bytes in the array + </summary> + </member> + <member name="T:Google.Protobuf.ByteString"> + <summary> + Immutable array of bytes. + </summary> + </member> + <member name="T:Google.Protobuf.ByteString.Unsafe"> + <summary> + Unsafe operations that can cause IO Failure and/or other catestrophic side-effects. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.Unsafe.FromBytes(System.Byte[])"> + <summary> + Constructs a new ByteString from the given byte array. The array is + *not* copied, and must not be modified after this constructor is called. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.Unsafe.GetBuffer(Google.Protobuf.ByteString)"> + <summary> + Provides direct, unrestricted access to the bytes contained in this instance. + You must not modify or resize the byte array returned by this method. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.AttachBytes(System.Byte[])"> + <summary> + Internal use only. Ensure that the provided array is not mutated and belongs to this instance. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.#ctor(System.Byte[])"> + <summary> + Constructs a new ByteString from the given byte array. The array is + *not* copied, and must not be modified after this constructor is called. + </summary> + </member> + <member name="P:Google.Protobuf.ByteString.Empty"> + <summary> + Returns an empty ByteString. + </summary> + </member> + <member name="P:Google.Protobuf.ByteString.Length"> + <summary> + Returns the length of this ByteString in bytes. + </summary> + </member> + <member name="P:Google.Protobuf.ByteString.IsEmpty"> + <summary> + Returns <c>true</c> if this byte string is empty, <c>false</c> otherwise. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.ToByteArray"> + <summary> + Converts this <see cref="T:Google.Protobuf.ByteString"/> into a byte array. + </summary> + <remarks>The data is copied - changes to the returned array will not be reflected in this <c>ByteString</c>.</remarks> + <returns>A byte array with the same data as this <c>ByteString</c>.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.ToBase64"> + <summary> + Converts this <see cref="T:Google.Protobuf.ByteString"/> into a standard base64 representation. + </summary> + <returns>A base64 representation of this <c>ByteString</c>.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.FromBase64(System.String)"> + <summary> + Constructs a <see cref="T:Google.Protobuf.ByteString" /> from the Base64 Encoded String. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.FromStream(System.IO.Stream)"> + <summary> + Constructs a <see cref="T:Google.Protobuf.ByteString"/> from data in the given stream, synchronously. + </summary> + <remarks>If successful, <paramref name="stream"/> will be read completely, from the position + at the start of the call.</remarks> + <param name="stream">The stream to copy into a ByteString.</param> + <returns>A ByteString with content read from the given stream.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.FromStreamAsync(System.IO.Stream,System.Threading.CancellationToken)"> + <summary> + Constructs a <see cref="T:Google.Protobuf.ByteString"/> from data in the given stream, asynchronously. + </summary> + <remarks>If successful, <paramref name="stream"/> will be read completely, from the position + at the start of the call.</remarks> + <param name="stream">The stream to copy into a ByteString.</param> + <param name="cancellationToken">The cancellation token to use when reading from the stream, if any.</param> + <returns>A ByteString with content read from the given stream.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.CopyFrom(System.Byte[])"> + <summary> + Constructs a <see cref="T:Google.Protobuf.ByteString" /> from the given array. The contents + are copied, so further modifications to the array will not + be reflected in the returned ByteString. + This method can also be invoked in <c>ByteString.CopyFrom(0xaa, 0xbb, ...)</c> form + which is primarily useful for testing. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.CopyFrom(System.Byte[],System.Int32,System.Int32)"> + <summary> + Constructs a <see cref="T:Google.Protobuf.ByteString" /> from a portion of a byte array. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.CopyFrom(System.String,System.Text.Encoding)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.ByteString" /> by encoding the specified text with + the given encoding. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.CopyFromUtf8(System.String)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.ByteString" /> by encoding the specified text in UTF-8. + </summary> + </member> + <member name="P:Google.Protobuf.ByteString.Item(System.Int32)"> + <summary> + Retuns the byte at the given index. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.ToString(System.Text.Encoding)"> + <summary> + Converts this <see cref="T:Google.Protobuf.ByteString"/> into a string by applying the given encoding. + </summary> + <remarks> + This method should only be used to convert binary data which was the result of encoding + text with the given encoding. + </remarks> + <param name="encoding">The encoding to use to decode the binary data into text.</param> + <returns>The result of decoding the binary data with the given decoding.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.ToStringUtf8"> + <summary> + Converts this <see cref="T:Google.Protobuf.ByteString"/> into a string by applying the UTF-8 encoding. + </summary> + <remarks> + This method should only be used to convert binary data which was the result of encoding + text with UTF-8. + </remarks> + <returns>The result of decoding the binary data with the given decoding.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.GetEnumerator"> + <summary> + Returns an iterator over the bytes in this <see cref="T:Google.Protobuf.ByteString"/>. + </summary> + <returns>An iterator over the bytes in this object.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.System#Collections#IEnumerable#GetEnumerator"> + <summary> + Returns an iterator over the bytes in this <see cref="T:Google.Protobuf.ByteString"/>. + </summary> + <returns>An iterator over the bytes in this object.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.CreateCodedInput"> + <summary> + Creates a CodedInputStream from this ByteString's data. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.op_Equality(Google.Protobuf.ByteString,Google.Protobuf.ByteString)"> + <summary> + Compares two byte strings for equality. + </summary> + <param name="lhs">The first byte string to compare.</param> + <param name="rhs">The second byte string to compare.</param> + <returns><c>true</c> if the byte strings are equal; false otherwise.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.op_Inequality(Google.Protobuf.ByteString,Google.Protobuf.ByteString)"> + <summary> + Compares two byte strings for inequality. + </summary> + <param name="lhs">The first byte string to compare.</param> + <param name="rhs">The second byte string to compare.</param> + <returns><c>false</c> if the byte strings are equal; true otherwise.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.Equals(System.Object)"> + <summary> + Compares this byte string with another object. + </summary> + <param name="obj">The object to compare this with.</param> + <returns><c>true</c> if <paramref name="obj"/> refers to an equal <see cref="T:Google.Protobuf.ByteString"/>; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.GetHashCode"> + <summary> + Returns a hash code for this object. Two equal byte strings + will return the same hash code. + </summary> + <returns>A hash code for this object.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.Equals(Google.Protobuf.ByteString)"> + <summary> + Compares this byte string with another. + </summary> + <param name="other">The <see cref="T:Google.Protobuf.ByteString"/> to compare this with.</param> + <returns><c>true</c> if <paramref name="other"/> refers to an equal byte string; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.ByteString.WriteRawBytesTo(Google.Protobuf.CodedOutputStream)"> + <summary> + Used internally by CodedOutputStream to avoid creating a copy for the write + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.CopyTo(System.Byte[],System.Int32)"> + <summary> + Copies the entire byte array to the destination array provided at the offset specified. + </summary> + </member> + <member name="M:Google.Protobuf.ByteString.WriteTo(System.IO.Stream)"> + <summary> + Writes the entire byte array to the provided stream + </summary> + </member> + <member name="T:Google.Protobuf.CodedInputStream"> + <summary> + Reads and decodes protocol message fields. + </summary> + <remarks> + <para> + This class is generally used by generated code to read appropriate + primitives from the stream. It effectively encapsulates the lowest + levels of protocol buffer format. + </para> + <para> + Repeated fields and map fields are not handled by this class; use <see cref="T:Google.Protobuf.Collections.RepeatedField`1"/> + and <see cref="T:Google.Protobuf.Collections.MapField`2"/> to serialize such fields. + </para> + </remarks> + </member> + <member name="F:Google.Protobuf.CodedInputStream.leaveOpen"> + <summary> + Whether to leave the underlying stream open when disposing of this stream. + This is always true when there's no stream. + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.buffer"> + <summary> + Buffer of data read from the stream or provided at construction time. + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.bufferSize"> + <summary> + The index of the buffer at which we need to refill from the stream (if there is one). + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.bufferPos"> + <summary> + The position within the current buffer (i.e. the next byte to read) + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.input"> + <summary> + The stream to read further input from, or null if the byte array buffer was provided + directly on construction, with no further data available. + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.lastTag"> + <summary> + The last tag we read. 0 indicates we've read to the end of the stream + (or haven't read anything yet). + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.nextTag"> + <summary> + The next tag, used to store the value read by PeekTag. + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.totalBytesRetired"> + <summary> + The total number of bytes read before the current buffer. The + total bytes read up to the current position can be computed as + totalBytesRetired + bufferPos. + </summary> + </member> + <member name="F:Google.Protobuf.CodedInputStream.currentLimit"> + <summary> + The absolute position of the end of the current message. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.#ctor(System.Byte[])"> + <summary> + Creates a new CodedInputStream reading data from the given byte array. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.#ctor(System.Byte[],System.Int32,System.Int32)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.CodedInputStream"/> that reads from the given byte array slice. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.#ctor(System.IO.Stream)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.CodedInputStream"/> reading data from the given stream, which will be disposed + when the returned object is disposed. + </summary> + <param name="input">The stream to read from.</param> + </member> + <member name="M:Google.Protobuf.CodedInputStream.#ctor(System.IO.Stream,System.Boolean)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.CodedInputStream"/> reading data from the given stream. + </summary> + <param name="input">The stream to read from.</param> + <param name="leaveOpen"><c>true</c> to leave <paramref name="input"/> open when the returned + <c cref="T:Google.Protobuf.CodedInputStream"/> is disposed; <c>false</c> to dispose of the given stream when the + returned object is disposed.</param> + </member> + <member name="M:Google.Protobuf.CodedInputStream.#ctor(System.IO.Stream,System.Byte[],System.Int32,System.Int32,System.Boolean)"> + <summary> + Creates a new CodedInputStream reading data from the given + stream and buffer, using the default limits. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.#ctor(System.IO.Stream,System.Byte[],System.Int32,System.Int32,System.Int32,System.Int32,System.Boolean)"> + <summary> + Creates a new CodedInputStream reading data from the given + stream and buffer, using the specified limits. + </summary> + <remarks> + This chains to the version with the default limits instead of vice versa to avoid + having to check that the default values are valid every time. + </remarks> + </member> + <member name="M:Google.Protobuf.CodedInputStream.CreateWithLimits(System.IO.Stream,System.Int32,System.Int32)"> + <summary> + Creates a <see cref="T:Google.Protobuf.CodedInputStream"/> with the specified size and recursion limits, reading + from an input stream. + </summary> + <remarks> + This method exists separately from the constructor to reduce the number of constructor overloads. + It is likely to be used considerably less frequently than the constructors, as the default limits + are suitable for most use cases. + </remarks> + <param name="input">The input stream to read from</param> + <param name="sizeLimit">The total limit of data to read from the stream.</param> + <param name="recursionLimit">The maximum recursion depth to allow while reading.</param> + <returns>A <c>CodedInputStream</c> reading from <paramref name="input"/> with the specified size + and recursion limits.</returns> + </member> + <member name="P:Google.Protobuf.CodedInputStream.Position"> + <summary> + Returns the current position in the input stream, or the position in the input buffer + </summary> + </member> + <member name="P:Google.Protobuf.CodedInputStream.LastTag"> + <summary> + Returns the last tag read, or 0 if no tags have been read or we've read beyond + the end of the stream. + </summary> + </member> + <member name="P:Google.Protobuf.CodedInputStream.SizeLimit"> + <summary> + Returns the size limit for this stream. + </summary> + <remarks> + This limit is applied when reading from the underlying stream, as a sanity check. It is + not applied when reading from a byte array data source without an underlying stream. + The default value is Int32.MaxValue. + </remarks> + <value> + The size limit. + </value> + </member> + <member name="P:Google.Protobuf.CodedInputStream.RecursionLimit"> + <summary> + Returns the recursion limit for this stream. This limit is applied whilst reading messages, + to avoid maliciously-recursive data. + </summary> + <remarks> + The default limit is 64. + </remarks> + <value> + The recursion limit for this stream. + </value> + </member> + <member name="P:Google.Protobuf.CodedInputStream.DiscardUnknownFields"> + <summary> + Internal-only property; when set to true, unknown fields will be discarded while parsing. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.Dispose"> + <summary> + Disposes of this instance, potentially closing any underlying stream. + </summary> + <remarks> + As there is no flushing to perform here, disposing of a <see cref="T:Google.Protobuf.CodedInputStream"/> which + was constructed with the <c>leaveOpen</c> option parameter set to <c>true</c> (or one which + was constructed to read from a byte array) has no effect. + </remarks> + </member> + <member name="M:Google.Protobuf.CodedInputStream.CheckReadEndOfStreamTag"> + <summary> + Verifies that the last call to ReadTag() returned tag 0 - in other words, + we've reached the end of the stream when we expected to. + </summary> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The + tag read was not the one specified</exception> + </member> + <member name="M:Google.Protobuf.CodedInputStream.PeekTag"> + <summary> + Peeks at the next field tag. This is like calling <see cref="M:Google.Protobuf.CodedInputStream.ReadTag"/>, but the + tag is not consumed. (So a subsequent call to <see cref="M:Google.Protobuf.CodedInputStream.ReadTag"/> will return the + same value.) + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadTag"> + <summary> + Reads a field tag, returning the tag of 0 for "end of stream". + </summary> + <remarks> + If this method returns 0, it doesn't necessarily mean the end of all + the data in this CodedInputStream; it may be the end of the logical stream + for an embedded message, for example. + </remarks> + <returns>The next field tag, or 0 for end of stream. (0 is never a valid tag.)</returns> + </member> + <member name="M:Google.Protobuf.CodedInputStream.SkipLastField"> + <summary> + Skips the data for the field with the tag we've just read. + This should be called directly after <see cref="M:Google.Protobuf.CodedInputStream.ReadTag"/>, when + the caller wishes to skip an unknown field. + </summary> + <remarks> + This method throws <see cref="T:Google.Protobuf.InvalidProtocolBufferException"/> if the last-read tag was an end-group tag. + If a caller wishes to skip a group, they should skip the whole group, by calling this method after reading the + start-group tag. This behavior allows callers to call this method on any field they don't understand, correctly + resulting in an error if an end-group tag has not been paired with an earlier start-group tag. + </remarks> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The last tag was an end-group tag</exception> + <exception cref="T:System.InvalidOperationException">The last read operation read to the end of the logical stream</exception> + </member> + <member name="M:Google.Protobuf.CodedInputStream.SkipGroup(System.UInt32)"> + <summary> + Skip a group. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadDouble"> + <summary> + Reads a double field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadFloat"> + <summary> + Reads a float field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadUInt64"> + <summary> + Reads a uint64 field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadInt64"> + <summary> + Reads an int64 field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadInt32"> + <summary> + Reads an int32 field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadFixed64"> + <summary> + Reads a fixed64 field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadFixed32"> + <summary> + Reads a fixed32 field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadBool"> + <summary> + Reads a bool field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadString"> + <summary> + Reads a string field from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadMessage(Google.Protobuf.IMessage)"> + <summary> + Reads an embedded message field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadBytes"> + <summary> + Reads a bytes field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadUInt32"> + <summary> + Reads a uint32 field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadEnum"> + <summary> + Reads an enum field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadSFixed32"> + <summary> + Reads an sfixed32 field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadSFixed64"> + <summary> + Reads an sfixed64 field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadSInt32"> + <summary> + Reads an sint32 field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadSInt64"> + <summary> + Reads an sint64 field value from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadLength"> + <summary> + Reads a length for length-delimited data. + </summary> + <remarks> + This is internally just reading a varint, but this method exists + to make the calling code clearer. + </remarks> + </member> + <member name="M:Google.Protobuf.CodedInputStream.MaybeConsumeTag(System.UInt32)"> + <summary> + Peeks at the next tag in the stream. If it matches <paramref name="tag"/>, + the tag is consumed and the method returns <c>true</c>; otherwise, the + stream is left in the original position and the method returns <c>false</c>. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.SlowReadRawVarint32"> + <summary> + Same code as ReadRawVarint32, but read each byte individually, checking for + buffer overflow. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawVarint32"> + <summary> + Reads a raw Varint from the stream. If larger than 32 bits, discard the upper bits. + This method is optimised for the case where we've got lots of data in the buffer. + That means we can check the size just once, then just read directly from the buffer + without constant rechecking of the buffer length. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawVarint32(System.IO.Stream)"> + <summary> + Reads a varint from the input one byte at a time, so that it does not + read any bytes after the end of the varint. If you simply wrapped the + stream in a CodedInputStream and used ReadRawVarint32(Stream) + then you would probably end up reading past the end of the varint since + CodedInputStream buffers its input. + </summary> + <param name="input"></param> + <returns></returns> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawVarint64"> + <summary> + Reads a raw varint from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawLittleEndian32"> + <summary> + Reads a 32-bit little-endian integer from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawLittleEndian64"> + <summary> + Reads a 64-bit little-endian integer from the stream. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.DecodeZigZag32(System.UInt32)"> + <summary> + Decode a 32-bit value with ZigZag encoding. + </summary> + <remarks> + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + </remarks> + </member> + <member name="M:Google.Protobuf.CodedInputStream.DecodeZigZag64(System.UInt64)"> + <summary> + Decode a 32-bit value with ZigZag encoding. + </summary> + <remarks> + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + </remarks> + </member> + <member name="M:Google.Protobuf.CodedInputStream.PushLimit(System.Int32)"> + <summary> + Sets currentLimit to (current position) + byteLimit. This is called + when descending into a length-delimited embedded message. The previous + limit is returned. + </summary> + <returns>The old limit.</returns> + </member> + <member name="M:Google.Protobuf.CodedInputStream.PopLimit(System.Int32)"> + <summary> + Discards the current limit, returning the previous limit. + </summary> + </member> + <member name="P:Google.Protobuf.CodedInputStream.ReachedLimit"> + <summary> + Returns whether or not all the data before the limit has been read. + </summary> + <returns></returns> + </member> + <member name="P:Google.Protobuf.CodedInputStream.IsAtEnd"> + <summary> + Returns true if the stream has reached the end of the input. This is the + case if either the end of the underlying input source has been reached or + the stream has reached a limit created using PushLimit. + </summary> + </member> + <member name="M:Google.Protobuf.CodedInputStream.RefillBuffer(System.Boolean)"> + <summary> + Called when buffer is empty to read more bytes from the + input. If <paramref name="mustSucceed"/> is true, RefillBuffer() gurantees that + either there will be at least one byte in the buffer when it returns + or it will throw an exception. If <paramref name="mustSucceed"/> is false, + RefillBuffer() returns false if no more bytes were available. + </summary> + <param name="mustSucceed"></param> + <returns></returns> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawByte"> + <summary> + Read one byte from the input. + </summary> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException"> + the end of the stream or the current limit was reached + </exception> + </member> + <member name="M:Google.Protobuf.CodedInputStream.ReadRawBytes(System.Int32)"> + <summary> + Reads a fixed size of bytes from the input. + </summary> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException"> + the end of the stream or the current limit was reached + </exception> + </member> + <member name="M:Google.Protobuf.CodedInputStream.SkipRawBytes(System.Int32)"> + <summary> + Reads and discards <paramref name="size"/> bytes. + </summary> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">the end of the stream + or the current limit was reached</exception> + </member> + <member name="M:Google.Protobuf.CodedInputStream.SkipImpl(System.Int32)"> + <summary> + Abstraction of skipping to cope with streams which can't really skip. + </summary> + </member> + <member name="T:Google.Protobuf.CodedOutputStream"> + <summary> + Encodes and writes protocol message fields. + </summary> + <remarks> + <para> + This class is generally used by generated code to write appropriate + primitives to the stream. It effectively encapsulates the lowest + levels of protocol buffer format. Unlike some other implementations, + this does not include combined "write tag and value" methods. Generated + code knows the exact byte representations of the tags they're going to write, + so there's no need to re-encode them each time. Manually-written code calling + this class should just call one of the <c>WriteTag</c> overloads before each value. + </para> + <para> + Repeated fields and map fields are not handled by this class; use <c>RepeatedField<T></c> + and <c>MapField<TKey, TValue></c> to serialize such fields. + </para> + </remarks> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeDoubleSize(System.Double)"> + <summary> + Computes the number of bytes that would be needed to encode a + double field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeFloatSize(System.Single)"> + <summary> + Computes the number of bytes that would be needed to encode a + float field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeUInt64Size(System.UInt64)"> + <summary> + Computes the number of bytes that would be needed to encode a + uint64 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeInt64Size(System.Int64)"> + <summary> + Computes the number of bytes that would be needed to encode an + int64 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeInt32Size(System.Int32)"> + <summary> + Computes the number of bytes that would be needed to encode an + int32 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeFixed64Size(System.UInt64)"> + <summary> + Computes the number of bytes that would be needed to encode a + fixed64 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeFixed32Size(System.UInt32)"> + <summary> + Computes the number of bytes that would be needed to encode a + fixed32 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeBoolSize(System.Boolean)"> + <summary> + Computes the number of bytes that would be needed to encode a + bool field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeStringSize(System.String)"> + <summary> + Computes the number of bytes that would be needed to encode a + string field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeGroupSize(Google.Protobuf.IMessage)"> + <summary> + Computes the number of bytes that would be needed to encode a + group field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeMessageSize(Google.Protobuf.IMessage)"> + <summary> + Computes the number of bytes that would be needed to encode an + embedded message field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeBytesSize(Google.Protobuf.ByteString)"> + <summary> + Computes the number of bytes that would be needed to encode a + bytes field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeUInt32Size(System.UInt32)"> + <summary> + Computes the number of bytes that would be needed to encode a + uint32 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeEnumSize(System.Int32)"> + <summary> + Computes the number of bytes that would be needed to encode a + enum field, including the tag. The caller is responsible for + converting the enum value to its numeric value. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeSFixed32Size(System.Int32)"> + <summary> + Computes the number of bytes that would be needed to encode an + sfixed32 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeSFixed64Size(System.Int64)"> + <summary> + Computes the number of bytes that would be needed to encode an + sfixed64 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeSInt32Size(System.Int32)"> + <summary> + Computes the number of bytes that would be needed to encode an + sint32 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeSInt64Size(System.Int64)"> + <summary> + Computes the number of bytes that would be needed to encode an + sint64 field, including the tag. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeLengthSize(System.Int32)"> + <summary> + Computes the number of bytes that would be needed to encode a length, + as written by <see cref="M:Google.Protobuf.CodedOutputStream.WriteLength(System.Int32)"/>. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeRawVarint32Size(System.UInt32)"> + <summary> + Computes the number of bytes that would be needed to encode a varint. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeRawVarint64Size(System.UInt64)"> + <summary> + Computes the number of bytes that would be needed to encode a varint. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.ComputeTagSize(System.Int32)"> + <summary> + Computes the number of bytes that would be needed to encode a tag. + </summary> + </member> + <member name="F:Google.Protobuf.CodedOutputStream.DefaultBufferSize"> + <summary> + The buffer size used by CreateInstance(Stream). + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.#ctor(System.Byte[])"> + <summary> + Creates a new CodedOutputStream that writes directly to the given + byte array. If more bytes are written than fit in the array, + OutOfSpaceException will be thrown. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.#ctor(System.Byte[],System.Int32,System.Int32)"> + <summary> + Creates a new CodedOutputStream that writes directly to the given + byte array slice. If more bytes are written than fit in the array, + OutOfSpaceException will be thrown. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.#ctor(System.IO.Stream)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.CodedOutputStream" /> which write to the given stream, and disposes of that + stream when the returned <c>CodedOutputStream</c> is disposed. + </summary> + <param name="output">The stream to write to. It will be disposed when the returned <c>CodedOutputStream is disposed.</c></param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.#ctor(System.IO.Stream,System.Int32)"> + <summary> + Creates a new CodedOutputStream which write to the given stream and uses + the specified buffer size. + </summary> + <param name="output">The stream to write to. It will be disposed when the returned <c>CodedOutputStream is disposed.</c></param> + <param name="bufferSize">The size of buffer to use internally.</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.#ctor(System.IO.Stream,System.Boolean)"> + <summary> + Creates a new CodedOutputStream which write to the given stream. + </summary> + <param name="output">The stream to write to.</param> + <param name="leaveOpen">If <c>true</c>, <paramref name="output"/> is left open when the returned <c>CodedOutputStream</c> is disposed; + if <c>false</c>, the provided stream is disposed as well.</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.#ctor(System.IO.Stream,System.Int32,System.Boolean)"> + <summary> + Creates a new CodedOutputStream which write to the given stream and uses + the specified buffer size. + </summary> + <param name="output">The stream to write to.</param> + <param name="bufferSize">The size of buffer to use internally.</param> + <param name="leaveOpen">If <c>true</c>, <paramref name="output"/> is left open when the returned <c>CodedOutputStream</c> is disposed; + if <c>false</c>, the provided stream is disposed as well.</param> + </member> + <member name="P:Google.Protobuf.CodedOutputStream.Position"> + <summary> + Returns the current position in the stream, or the position in the output buffer + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteDouble(System.Double)"> + <summary> + Writes a double field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteFloat(System.Single)"> + <summary> + Writes a float field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteUInt64(System.UInt64)"> + <summary> + Writes a uint64 field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteInt64(System.Int64)"> + <summary> + Writes an int64 field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteInt32(System.Int32)"> + <summary> + Writes an int32 field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteFixed64(System.UInt64)"> + <summary> + Writes a fixed64 field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteFixed32(System.UInt32)"> + <summary> + Writes a fixed32 field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteBool(System.Boolean)"> + <summary> + Writes a bool field value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteString(System.String)"> + <summary> + Writes a string field value, without a tag, to the stream. + The data is length-prefixed. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteMessage(Google.Protobuf.IMessage)"> + <summary> + Writes a message, without a tag, to the stream. + The data is length-prefixed. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteBytes(Google.Protobuf.ByteString)"> + <summary> + Write a byte string, without a tag, to the stream. + The data is length-prefixed. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteUInt32(System.UInt32)"> + <summary> + Writes a uint32 value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteEnum(System.Int32)"> + <summary> + Writes an enum value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteSFixed32(System.Int32)"> + <summary> + Writes an sfixed32 value, without a tag, to the stream. + </summary> + <param name="value">The value to write.</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteSFixed64(System.Int64)"> + <summary> + Writes an sfixed64 value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteSInt32(System.Int32)"> + <summary> + Writes an sint32 value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteSInt64(System.Int64)"> + <summary> + Writes an sint64 value, without a tag, to the stream. + </summary> + <param name="value">The value to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteLength(System.Int32)"> + <summary> + Writes a length (in bytes) for length-delimited data. + </summary> + <remarks> + This method simply writes a rawint, but exists for clarity in calling code. + </remarks> + <param name="length">Length value, in bytes.</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteTag(System.Int32,Google.Protobuf.WireFormat.WireType)"> + <summary> + Encodes and writes a tag. + </summary> + <param name="fieldNumber">The number of the field to write the tag for</param> + <param name="type">The wire format type of the tag to write</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteTag(System.UInt32)"> + <summary> + Writes an already-encoded tag. + </summary> + <param name="tag">The encoded tag</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawTag(System.Byte)"> + <summary> + Writes the given single-byte tag directly to the stream. + </summary> + <param name="b1">The encoded tag</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawTag(System.Byte,System.Byte)"> + <summary> + Writes the given two-byte tag directly to the stream. + </summary> + <param name="b1">The first byte of the encoded tag</param> + <param name="b2">The second byte of the encoded tag</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawTag(System.Byte,System.Byte,System.Byte)"> + <summary> + Writes the given three-byte tag directly to the stream. + </summary> + <param name="b1">The first byte of the encoded tag</param> + <param name="b2">The second byte of the encoded tag</param> + <param name="b3">The third byte of the encoded tag</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawTag(System.Byte,System.Byte,System.Byte,System.Byte)"> + <summary> + Writes the given four-byte tag directly to the stream. + </summary> + <param name="b1">The first byte of the encoded tag</param> + <param name="b2">The second byte of the encoded tag</param> + <param name="b3">The third byte of the encoded tag</param> + <param name="b4">The fourth byte of the encoded tag</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawTag(System.Byte,System.Byte,System.Byte,System.Byte,System.Byte)"> + <summary> + Writes the given five-byte tag directly to the stream. + </summary> + <param name="b1">The first byte of the encoded tag</param> + <param name="b2">The second byte of the encoded tag</param> + <param name="b3">The third byte of the encoded tag</param> + <param name="b4">The fourth byte of the encoded tag</param> + <param name="b5">The fifth byte of the encoded tag</param> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawVarint32(System.UInt32)"> + <summary> + Writes a 32 bit value as a varint. The fast route is taken when + there's enough buffer space left to whizz through without checking + for each byte; otherwise, we resort to calling WriteRawByte each time. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawBytes(System.Byte[])"> + <summary> + Writes out an array of bytes. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.WriteRawBytes(System.Byte[],System.Int32,System.Int32)"> + <summary> + Writes out part of an array of bytes. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.EncodeZigZag32(System.Int32)"> + <summary> + Encode a 32-bit value with ZigZag encoding. + </summary> + <remarks> + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + </remarks> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.EncodeZigZag64(System.Int64)"> + <summary> + Encode a 64-bit value with ZigZag encoding. + </summary> + <remarks> + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + </remarks> + </member> + <member name="T:Google.Protobuf.CodedOutputStream.OutOfSpaceException"> + <summary> + Indicates that a CodedOutputStream wrapping a flat byte array + ran out of space. + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.Dispose"> + <summary> + Flushes any buffered data and optionally closes the underlying stream, if any. + </summary> + <remarks> + <para> + By default, any underlying stream is closed by this method. To configure this behaviour, + use a constructor overload with a <c>leaveOpen</c> parameter. If this instance does not + have an underlying stream, this method does nothing. + </para> + <para> + For the sake of efficiency, calling this method does not prevent future write calls - but + if a later write ends up writing to a stream which has been disposed, that is likely to + fail. It is recommend that you not call any other methods after this. + </para> + </remarks> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.Flush"> + <summary> + Flushes any buffered data to the underlying stream (if there is one). + </summary> + </member> + <member name="M:Google.Protobuf.CodedOutputStream.CheckNoSpaceLeft"> + <summary> + Verifies that SpaceLeft returns zero. It's common to create a byte array + that is exactly big enough to hold a message, then write to it with + a CodedOutputStream. Calling CheckNoSpaceLeft after writing verifies that + the message was actually as big as expected, which can help bugs. + </summary> + </member> + <member name="P:Google.Protobuf.CodedOutputStream.SpaceLeft"> + <summary> + If writing to a flat array, returns the space left in the array. Otherwise, + throws an InvalidOperationException. + </summary> + </member> + <member name="T:Google.Protobuf.Collections.Lists"> + <summary> + Utility to compare if two Lists are the same, and the hash code + of a List. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.Lists.Equals``1(System.Collections.Generic.List{``0},System.Collections.Generic.List{``0})"> + <summary> + Checks if two lists are equal. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.Lists.GetHashCode``1(System.Collections.Generic.List{``0})"> + <summary> + Gets the list's hash code. + </summary> + </member> + <member name="T:Google.Protobuf.Collections.MapField`2"> + <summary> + Representation of a map field in a Protocol Buffer message. + </summary> + <typeparam name="TKey">Key type in the map. Must be a type supported by Protocol Buffer map keys.</typeparam> + <typeparam name="TValue">Value type in the map. Must be a type supported by Protocol Buffers.</typeparam> + <remarks> + <para> + For string keys, the equality comparison is provided by <see cref="P:System.StringComparer.Ordinal" />. + </para> + <para> + Null values are not permitted in the map, either for wrapper types or regular messages. + If a map is deserialized from a data stream and the value is missing from an entry, a default value + is created instead. For primitive types, that is the regular default value (0, the empty string and so + on); for message types, an empty instance of the message is created, as if the map entry contained a 0-length + encoded value for the field. + </para> + <para> + This implementation does not generally prohibit the use of key/value types which are not + supported by Protocol Buffers (e.g. using a key type of <code>byte</code>) but nor does it guarantee + that all operations will work in such cases. + </para> + <para> + The order in which entries are returned when iterating over this object is undefined, and may change + in future versions. + </para> + </remarks> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Clone"> + <summary> + Creates a deep clone of this object. + </summary> + <returns> + A deep clone of this object. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Add(`0,`1)"> + <summary> + Adds the specified key/value pair to the map. + </summary> + <remarks> + This operation fails if the key already exists in the map. To replace an existing entry, use the indexer. + </remarks> + <param name="key">The key to add</param> + <param name="value">The value to add.</param> + <exception cref="T:System.ArgumentException">The given key already exists in map.</exception> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.ContainsKey(`0)"> + <summary> + Determines whether the specified key is present in the map. + </summary> + <param name="key">The key to check.</param> + <returns><c>true</c> if the map contains the given key; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Remove(`0)"> + <summary> + Removes the entry identified by the given key from the map. + </summary> + <param name="key">The key indicating the entry to remove from the map.</param> + <returns><c>true</c> if the map contained the given key before the entry was removed; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.TryGetValue(`0,`1@)"> + <summary> + Gets the value associated with the specified key. + </summary> + <param name="key">The key whose value to get.</param> + <param name="value">When this method returns, the value associated with the specified key, if the key is found; + otherwise, the default value for the type of the <paramref name="value"/> parameter. + This parameter is passed uninitialized.</param> + <returns><c>true</c> if the map contains an element with the specified key; otherwise, <c>false</c>.</returns> + </member> + <member name="P:Google.Protobuf.Collections.MapField`2.Item(`0)"> + <summary> + Gets or sets the value associated with the specified key. + </summary> + <param name="key">The key of the value to get or set.</param> + <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and key does not exist in the collection.</exception> + <returns>The value associated with the specified key. If the specified key is not found, + a get operation throws a <see cref="T:System.Collections.Generic.KeyNotFoundException"/>, and a set operation creates a new element with the specified key.</returns> + </member> + <member name="P:Google.Protobuf.Collections.MapField`2.Keys"> + <summary> + Gets a collection containing the keys in the map. + </summary> + </member> + <member name="P:Google.Protobuf.Collections.MapField`2.Values"> + <summary> + Gets a collection containing the values in the map. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Add(System.Collections.Generic.IDictionary{`0,`1})"> + <summary> + Adds the specified entries to the map. The keys and values are not automatically cloned. + </summary> + <param name="entries">The entries to add to the map.</param> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.GetEnumerator"> + <summary> + Returns an enumerator that iterates through the collection. + </summary> + <returns> + An enumerator that can be used to iterate through the collection. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.System#Collections#IEnumerable#GetEnumerator"> + <summary> + Returns an enumerator that iterates through a collection. + </summary> + <returns> + An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey,TValue}}#Add(System.Collections.Generic.KeyValuePair{`0,`1})"> + <summary> + Adds the specified item to the map. + </summary> + <param name="item">The item to add to the map.</param> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Clear"> + <summary> + Removes all items from the map. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey,TValue}}#Contains(System.Collections.Generic.KeyValuePair{`0,`1})"> + <summary> + Determines whether map contains an entry equivalent to the given key/value pair. + </summary> + <param name="item">The key/value pair to find.</param> + <returns></returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey,TValue}}#CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)"> + <summary> + Copies the key/value pairs in this map to an array. + </summary> + <param name="array">The array to copy the entries into.</param> + <param name="arrayIndex">The index of the array at which to start copying values.</param> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey,TValue}}#Remove(System.Collections.Generic.KeyValuePair{`0,`1})"> + <summary> + Removes the specified key/value pair from the map. + </summary> + <remarks>Both the key and the value must be found for the entry to be removed.</remarks> + <param name="item">The key/value pair to remove.</param> + <returns><c>true</c> if the key/value pair was found and removed; <c>false</c> otherwise.</returns> + </member> + <member name="P:Google.Protobuf.Collections.MapField`2.Count"> + <summary> + Gets the number of elements contained in the map. + </summary> + </member> + <member name="P:Google.Protobuf.Collections.MapField`2.IsReadOnly"> + <summary> + Gets a value indicating whether the map is read-only. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Equals(System.Object)"> + <summary> + Determines whether the specified <see cref="T:System.Object" />, is equal to this instance. + </summary> + <param name="other">The <see cref="T:System.Object" /> to compare with this instance.</param> + <returns> + <c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.GetHashCode"> + <summary> + Returns a hash code for this instance. + </summary> + <returns> + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Equals(Google.Protobuf.Collections.MapField{`0,`1})"> + <summary> + Compares this map with another for equality. + </summary> + <remarks> + The order of the key/value pairs in the maps is not deemed significant in this comparison. + </remarks> + <param name="other">The map to compare this with.</param> + <returns><c>true</c> if <paramref name="other"/> refers to an equal map; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.AddEntriesFrom(Google.Protobuf.CodedInputStream,Google.Protobuf.Collections.MapField{`0,`1}.Codec)"> + <summary> + Adds entries to the map from the given stream. + </summary> + <remarks> + It is assumed that the stream is initially positioned after the tag specified by the codec. + This method will continue reading entries from the stream until the end is reached, or + a different tag is encountered. + </remarks> + <param name="input">Stream to read from</param> + <param name="codec">Codec describing how the key/value pairs are encoded</param> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.WriteTo(Google.Protobuf.CodedOutputStream,Google.Protobuf.Collections.MapField{`0,`1}.Codec)"> + <summary> + Writes the contents of this map to the given coded output stream, using the specified codec + to encode each entry. + </summary> + <param name="output">The output stream to write to.</param> + <param name="codec">The codec to use for each entry.</param> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.CalculateSize(Google.Protobuf.Collections.MapField{`0,`1}.Codec)"> + <summary> + Calculates the size of this map based on the given entry codec. + </summary> + <param name="codec">The codec to use to encode each entry.</param> + <returns></returns> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.ToString"> + <summary> + Returns a string representation of this repeated field, in the same + way as it would be represented by the default JSON formatter. + </summary> + </member> + <member name="T:Google.Protobuf.Collections.MapField`2.Codec"> + <summary> + A codec for a specific map field. This contains all the information required to encode and + decode the nested messages. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.MapField`2.Codec.#ctor(Google.Protobuf.FieldCodec{`0},Google.Protobuf.FieldCodec{`1},System.UInt32)"> + <summary> + Creates a new entry codec based on a separate key codec and value codec, + and the tag to use for each map entry. + </summary> + <param name="keyCodec">The key codec.</param> + <param name="valueCodec">The value codec.</param> + <param name="mapTag">The map tag to use to introduce each map entry.</param> + </member> + <member name="P:Google.Protobuf.Collections.MapField`2.Codec.MapTag"> + <summary> + The tag used in the enclosing message to indicate map entries. + </summary> + </member> + <member name="T:Google.Protobuf.Collections.MapField`2.Codec.MessageAdapter"> + <summary> + A mutable message class, used for parsing and serializing. This + delegates the work to a codec, but implements the <see cref="T:Google.Protobuf.IMessage"/> interface + for interop with <see cref="T:Google.Protobuf.CodedInputStream"/> and <see cref="T:Google.Protobuf.CodedOutputStream"/>. + This is nested inside Codec as it's tightly coupled to the associated codec, + and it's simpler if it has direct access to all its fields. + </summary> + </member> + <member name="T:Google.Protobuf.Collections.ProtobufEqualityComparers"> + <summary> + Provides a central place to implement equality comparisons, primarily for bitwise float/double equality. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.ProtobufEqualityComparers.GetEqualityComparer``1"> + <summary> + Returns an equality comparer for <typeparamref name="T"/> suitable for Protobuf equality comparisons. + This is usually just the default equality comparer for the type, but floating point numbers are compared + bitwise. + </summary> + <typeparam name="T">The type of equality comparer to return.</typeparam> + <returns>The equality comparer.</returns> + </member> + <member name="P:Google.Protobuf.Collections.ProtobufEqualityComparers.BitwiseDoubleEqualityComparer"> + <summary> + Returns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + </summary> + </member> + <member name="P:Google.Protobuf.Collections.ProtobufEqualityComparers.BitwiseSingleEqualityComparer"> + <summary> + Returns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + </summary> + </member> + <member name="P:Google.Protobuf.Collections.ProtobufEqualityComparers.BitwiseNullableDoubleEqualityComparer"> + <summary> + Returns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + </summary> + </member> + <member name="P:Google.Protobuf.Collections.ProtobufEqualityComparers.BitwiseNullableSingleEqualityComparer"> + <summary> + Returns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + </summary> + </member> + <member name="T:Google.Protobuf.Collections.ReadOnlyDictionary`2"> + <summary> + Read-only wrapper around another dictionary. + </summary> + </member> + <member name="T:Google.Protobuf.Collections.RepeatedField`1"> + <summary> + The contents of a repeated field: essentially, a collection with some extra + restrictions (no null values) and capabilities (deep cloning). + </summary> + <remarks> + This implementation does not generally prohibit the use of types which are not + supported by Protocol Buffers but nor does it guarantee that all operations will work in such cases. + </remarks> + <typeparam name="T">The element type of the repeated field.</typeparam> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Clone"> + <summary> + Creates a deep clone of this repeated field. + </summary> + <remarks> + If the field type is + a message type, each element is also cloned; otherwise, it is + assumed that the field type is primitive (including string and + bytes, both of which are immutable) and so a simple copy is + equivalent to a deep clone. + </remarks> + <returns>A deep clone of this repeated field.</returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.AddEntriesFrom(Google.Protobuf.CodedInputStream,Google.Protobuf.FieldCodec{`0})"> + <summary> + Adds the entries from the given input stream, decoding them with the specified codec. + </summary> + <param name="input">The input stream to read from.</param> + <param name="codec">The codec to use in order to read each entry.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.CalculateSize(Google.Protobuf.FieldCodec{`0})"> + <summary> + Calculates the size of this collection based on the given codec. + </summary> + <param name="codec">The codec to use when encoding each field.</param> + <returns>The number of bytes that would be written to a <see cref="T:Google.Protobuf.CodedOutputStream"/> by <see cref="M:Google.Protobuf.Collections.RepeatedField`1.WriteTo(Google.Protobuf.CodedOutputStream,Google.Protobuf.FieldCodec{`0})"/>, + using the same codec.</returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.WriteTo(Google.Protobuf.CodedOutputStream,Google.Protobuf.FieldCodec{`0})"> + <summary> + Writes the contents of this collection to the given <see cref="T:Google.Protobuf.CodedOutputStream"/>, + encoding each value using the specified codec. + </summary> + <param name="output">The output stream to write to.</param> + <param name="codec">The codec to use when encoding each value.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Add(`0)"> + <summary> + Adds the specified item to the collection. + </summary> + <param name="item">The item to add.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Clear"> + <summary> + Removes all items from the collection. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Contains(`0)"> + <summary> + Determines whether this collection contains the given item. + </summary> + <param name="item">The item to find.</param> + <returns><c>true</c> if this collection contains the given item; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.CopyTo(`0[],System.Int32)"> + <summary> + Copies this collection to the given array. + </summary> + <param name="array">The array to copy to.</param> + <param name="arrayIndex">The first index of the array to copy to.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Remove(`0)"> + <summary> + Removes the specified item from the collection + </summary> + <param name="item">The item to remove.</param> + <returns><c>true</c> if the item was found and removed; <c>false</c> otherwise.</returns> + </member> + <member name="P:Google.Protobuf.Collections.RepeatedField`1.Count"> + <summary> + Gets the number of elements contained in the collection. + </summary> + </member> + <member name="P:Google.Protobuf.Collections.RepeatedField`1.IsReadOnly"> + <summary> + Gets a value indicating whether the collection is read-only. + </summary> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.AddRange(System.Collections.Generic.IEnumerable{`0})"> + <summary> + Adds all of the specified values into this collection. + </summary> + <param name="values">The values to add to this collection.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Add(System.Collections.Generic.IEnumerable{`0})"> + <summary> + Adds all of the specified values into this collection. This method is present to + allow repeated fields to be constructed from queries within collection initializers. + Within non-collection-initializer code, consider using the equivalent <see cref="M:Google.Protobuf.Collections.RepeatedField`1.AddRange(System.Collections.Generic.IEnumerable{`0})"/> + method instead for clarity. + </summary> + <param name="values">The values to add to this collection.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.GetEnumerator"> + <summary> + Returns an enumerator that iterates through the collection. + </summary> + <returns> + An enumerator that can be used to iterate through the collection. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Equals(System.Object)"> + <summary> + Determines whether the specified <see cref="T:System.Object" />, is equal to this instance. + </summary> + <param name="obj">The <see cref="T:System.Object" /> to compare with this instance.</param> + <returns> + <c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.System#Collections#IEnumerable#GetEnumerator"> + <summary> + Returns an enumerator that iterates through a collection. + </summary> + <returns> + An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.GetHashCode"> + <summary> + Returns a hash code for this instance. + </summary> + <returns> + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + </returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Equals(Google.Protobuf.Collections.RepeatedField{`0})"> + <summary> + Compares this repeated field with another for equality. + </summary> + <param name="other">The repeated field to compare this with.</param> + <returns><c>true</c> if <paramref name="other"/> refers to an equal repeated field; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.IndexOf(`0)"> + <summary> + Returns the index of the given item within the collection, or -1 if the item is not + present. + </summary> + <param name="item">The item to find in the collection.</param> + <returns>The zero-based index of the item, or -1 if it is not found.</returns> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.Insert(System.Int32,`0)"> + <summary> + Inserts the given item at the specified index. + </summary> + <param name="index">The index at which to insert the item.</param> + <param name="item">The item to insert.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.RemoveAt(System.Int32)"> + <summary> + Removes the item at the given index. + </summary> + <param name="index">The zero-based index of the item to remove.</param> + </member> + <member name="M:Google.Protobuf.Collections.RepeatedField`1.ToString"> + <summary> + Returns a string representation of this repeated field, in the same + way as it would be represented by the default JSON formatter. + </summary> + </member> + <member name="P:Google.Protobuf.Collections.RepeatedField`1.Item(System.Int32)"> + <summary> + Gets or sets the item at the specified index. + </summary> + <value> + The element at the specified index. + </value> + <param name="index">The zero-based index of the element to get or set.</param> + <returns>The item at the specified index.</returns> + </member> + <member name="T:Google.Protobuf.Compatibility.PropertyInfoExtensions"> + <summary> + Extension methods for <see cref="T:System.Reflection.PropertyInfo"/>, effectively providing + the familiar members from previous desktop framework versions while + targeting the newer releases, .NET Core etc. + </summary> + </member> + <member name="M:Google.Protobuf.Compatibility.PropertyInfoExtensions.GetGetMethod(System.Reflection.PropertyInfo)"> + <summary> + Returns the public getter of a property, or null if there is no such getter + (either because it's read-only, or the getter isn't public). + </summary> + </member> + <member name="M:Google.Protobuf.Compatibility.PropertyInfoExtensions.GetSetMethod(System.Reflection.PropertyInfo)"> + <summary> + Returns the public setter of a property, or null if there is no such setter + (either because it's write-only, or the setter isn't public). + </summary> + </member> + <member name="T:Google.Protobuf.Compatibility.TypeExtensions"> + <summary> + Provides extension methods on Type that just proxy to TypeInfo. + These are used to support the new type system from .NET 4.5, without + having calls to GetTypeInfo all over the place. While the methods here are meant to be + broadly compatible with the desktop framework, there are some subtle differences in behaviour - but + they're not expected to affect our use cases. While the class is internal, that should be fine: we can + evaluate each new use appropriately. + </summary> + </member> + <member name="M:Google.Protobuf.Compatibility.TypeExtensions.IsAssignableFrom(System.Type,System.Type)"> + <summary> + See https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom + </summary> + </member> + <member name="M:Google.Protobuf.Compatibility.TypeExtensions.GetProperty(System.Type,System.String)"> + <summary> + Returns a representation of the public property associated with the given name in the given type, + including inherited properties or null if there is no such public property. + Here, "public property" means a property where either the getter, or the setter, or both, is public. + </summary> + </member> + <member name="M:Google.Protobuf.Compatibility.TypeExtensions.GetMethod(System.Type,System.String)"> + <summary> + Returns a representation of the public method associated with the given name in the given type, + including inherited methods. + </summary> + <remarks> + This has a few differences compared with Type.GetMethod in the desktop framework. It will throw + if there is an ambiguous match even between a private method and a public one, but it *won't* throw + if there are two overloads at different levels in the type hierarchy (e.g. class Base declares public void Foo(int) and + class Child : Base declares public void Foo(long)). + </remarks> + <exception cref="T:System.Reflection.AmbiguousMatchException">One type in the hierarchy declared more than one method with the same name</exception> + </member> + <member name="T:Google.Protobuf.FieldCodec"> + <summary> + Factory methods for <see cref="T:Google.Protobuf.FieldCodec`1"/>. + </summary> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForString(System.UInt32)"> + <summary> + Retrieves a codec suitable for a string field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForBytes(System.UInt32)"> + <summary> + Retrieves a codec suitable for a bytes field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForBool(System.UInt32)"> + <summary> + Retrieves a codec suitable for a bool field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForInt32(System.UInt32)"> + <summary> + Retrieves a codec suitable for an int32 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForSInt32(System.UInt32)"> + <summary> + Retrieves a codec suitable for an sint32 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForFixed32(System.UInt32)"> + <summary> + Retrieves a codec suitable for a fixed32 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForSFixed32(System.UInt32)"> + <summary> + Retrieves a codec suitable for an sfixed32 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForUInt32(System.UInt32)"> + <summary> + Retrieves a codec suitable for a uint32 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForInt64(System.UInt32)"> + <summary> + Retrieves a codec suitable for an int64 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForSInt64(System.UInt32)"> + <summary> + Retrieves a codec suitable for an sint64 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForFixed64(System.UInt32)"> + <summary> + Retrieves a codec suitable for a fixed64 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForSFixed64(System.UInt32)"> + <summary> + Retrieves a codec suitable for an sfixed64 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForUInt64(System.UInt32)"> + <summary> + Retrieves a codec suitable for a uint64 field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForFloat(System.UInt32)"> + <summary> + Retrieves a codec suitable for a float field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForDouble(System.UInt32)"> + <summary> + Retrieves a codec suitable for a double field with the given tag. + </summary> + <param name="tag">The tag.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForEnum``1(System.UInt32,System.Func{``0,System.Int32},System.Func{System.Int32,``0})"> + <summary> + Retrieves a codec suitable for an enum field with the given tag. + </summary> + <param name="tag">The tag.</param> + <param name="toInt32">A conversion function from <see cref="T:System.Int32"/> to the enum type.</param> + <param name="fromInt32">A conversion function from the enum type to <see cref="T:System.Int32"/>.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForMessage``1(System.UInt32,Google.Protobuf.MessageParser{``0})"> + <summary> + Retrieves a codec suitable for a message field with the given tag. + </summary> + <param name="tag">The tag.</param> + <param name="parser">A parser to use for the message type.</param> + <returns>A codec for the given tag.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForClassWrapper``1(System.UInt32)"> + <summary> + Creates a codec for a wrapper type of a class - which must be string or ByteString. + </summary> + </member> + <member name="M:Google.Protobuf.FieldCodec.ForStructWrapper``1(System.UInt32)"> + <summary> + Creates a codec for a wrapper type of a struct - which must be Int32, Int64, UInt32, UInt64, + Bool, Single or Double. + </summary> + </member> + <member name="T:Google.Protobuf.FieldCodec.WrapperCodecs"> + <summary> + Helper code to create codecs for wrapper types. + </summary> + <remarks> + Somewhat ugly with all the static methods, but the conversions involved to/from nullable types make it + slightly tricky to improve. So long as we keep the public API (ForClassWrapper, ForStructWrapper) in place, + we can refactor later if we come up with something cleaner. + </remarks> + </member> + <member name="M:Google.Protobuf.FieldCodec.WrapperCodecs.GetCodec``1"> + <summary> + Returns a field codec which effectively wraps a value of type T in a message. + + </summary> + </member> + <member name="T:Google.Protobuf.FieldCodec`1"> + <summary> + <para> + An encode/decode pair for a single field. This effectively encapsulates + all the information needed to read or write the field value from/to a coded + stream. + </para> + <para> + This class is public and has to be as it is used by generated code, but its public + API is very limited - just what the generated code needs to call directly. + </para> + </summary> + <remarks> + This never writes default values to the stream, and does not address "packedness" + in repeated fields itself, other than to know whether or not the field *should* be packed. + </remarks> + </member> + <member name="P:Google.Protobuf.FieldCodec`1.ValueWriter"> + <summary> + Returns a delegate to write a value (unconditionally) to a coded output stream. + </summary> + </member> + <member name="P:Google.Protobuf.FieldCodec`1.ValueSizeCalculator"> + <summary> + Returns the size calculator for just a value. + </summary> + </member> + <member name="P:Google.Protobuf.FieldCodec`1.ValueReader"> + <summary> + Returns a delegate to read a value from a coded input stream. It is assumed that + the stream is already positioned on the appropriate tag. + </summary> + </member> + <member name="P:Google.Protobuf.FieldCodec`1.FixedSize"> + <summary> + Returns the fixed size for an entry, or 0 if sizes vary. + </summary> + </member> + <member name="P:Google.Protobuf.FieldCodec`1.Tag"> + <summary> + Gets the tag of the codec. + </summary> + <value> + The tag of the codec. + </value> + </member> + <member name="P:Google.Protobuf.FieldCodec`1.DefaultValue"> + <summary> + Default value for this codec. Usually the same for every instance of the same type, but + for string/ByteString wrapper fields the codec's default value is null, whereas for + other string/ByteString fields it's "" or ByteString.Empty. + </summary> + <value> + The default value of the codec's type. + </value> + </member> + <member name="M:Google.Protobuf.FieldCodec`1.WriteTagAndValue(Google.Protobuf.CodedOutputStream,`0)"> + <summary> + Write a tag and the given value, *if* the value is not the default. + </summary> + </member> + <member name="M:Google.Protobuf.FieldCodec`1.Read(Google.Protobuf.CodedInputStream)"> + <summary> + Reads a value of the codec type from the given <see cref="T:Google.Protobuf.CodedInputStream"/>. + </summary> + <param name="input">The input stream to read from.</param> + <returns>The value read from the stream.</returns> + </member> + <member name="M:Google.Protobuf.FieldCodec`1.CalculateSizeWithTag(`0)"> + <summary> + Calculates the size required to write the given value, with a tag, + if the value is not the default. + </summary> + </member> + <member name="T:Google.Protobuf.FrameworkPortability"> + <summary> + Class containing helpful workarounds for various platform compatibility + </summary> + </member> + <member name="T:Google.Protobuf.ICustomDiagnosticMessage"> + <summary> + A message type that has a custom string format for diagnostic purposes. + </summary> + <remarks> + <para> + Calling <see cref="M:System.Object.ToString"/> on a generated message type normally + returns the JSON representation. If a message type implements this interface, + then the <see cref="M:Google.Protobuf.ICustomDiagnosticMessage.ToDiagnosticString"/> method will be called instead of the regular + JSON formatting code, but only when <c>ToString()</c> is called either on the message itself + or on another message which contains it. This does not affect the normal JSON formatting of + the message. + </para> + <para> + For example, if you create a proto message representing a GUID, the internal + representation may be a <c>bytes</c> field or four <c>fixed32</c> fields. However, when debugging + it may be more convenient to see a result in the same format as <see cref="T:System.Guid"/> provides. + </para> + <para>This interface extends <see cref="T:Google.Protobuf.IMessage"/> to avoid it accidentally being implemented + on types other than messages, where it would not be used by anything in the framework.</para> + </remarks> + </member> + <member name="M:Google.Protobuf.ICustomDiagnosticMessage.ToDiagnosticString"> + <summary> + Returns a string representation of this object, for diagnostic purposes. + </summary> + <remarks> + This method is called when a message is formatted as part of a <see cref="M:System.Object.ToString"/> + call. It does not affect the JSON representation used by <see cref="T:Google.Protobuf.JsonFormatter"/> other than + in calls to <see cref="M:Google.Protobuf.JsonFormatter.ToDiagnosticString(Google.Protobuf.IMessage)"/>. While it is recommended + that the result is valid JSON, this is never assumed by the Protobuf library. + </remarks> + <returns>A string representation of this object, for diagnostic purposes.</returns> + </member> + <member name="T:Google.Protobuf.IDeepCloneable`1"> + <summary> + Generic interface for a deeply cloneable type. + </summary> + <remarks> + <para> + All generated messages implement this interface, but so do some non-message types. + Additionally, due to the type constraint on <c>T</c> in <see cref="T:Google.Protobuf.IMessage`1"/>, + it is simpler to keep this as a separate interface. + </para> + </remarks> + <typeparam name="T">The type itself, returned by the <see cref="M:Google.Protobuf.IDeepCloneable`1.Clone"/> method.</typeparam> + </member> + <member name="M:Google.Protobuf.IDeepCloneable`1.Clone"> + <summary> + Creates a deep clone of this object. + </summary> + <returns>A deep clone of this object.</returns> + </member> + <member name="T:Google.Protobuf.IMessage"> + <summary> + Interface for a Protocol Buffers message, supporting + basic operations required for serialization. + </summary> + </member> + <member name="M:Google.Protobuf.IMessage.MergeFrom(Google.Protobuf.CodedInputStream)"> + <summary> + Merges the data from the specified coded input stream with the current message. + </summary> + <remarks>See the user guide for precise merge semantics.</remarks> + <param name="input"></param> + </member> + <member name="M:Google.Protobuf.IMessage.WriteTo(Google.Protobuf.CodedOutputStream)"> + <summary> + Writes the data to the given coded output stream. + </summary> + <param name="output">Coded output stream to write the data to. Must not be null.</param> + </member> + <member name="M:Google.Protobuf.IMessage.CalculateSize"> + <summary> + Calculates the size of this message in Protocol Buffer wire format, in bytes. + </summary> + <returns>The number of bytes required to write this message + to a coded output stream.</returns> + </member> + <member name="P:Google.Protobuf.IMessage.Descriptor"> + <summary> + Descriptor for this message. All instances are expected to return the same descriptor, + and for generated types this will be an explicitly-implemented member, returning the + same value as the static property declared on the type. + </summary> + </member> + <member name="T:Google.Protobuf.IMessage`1"> + <summary> + Generic interface for a Protocol Buffers message, + where the type parameter is expected to be the same type as + the implementation class. + </summary> + <typeparam name="T">The message type.</typeparam> + </member> + <member name="M:Google.Protobuf.IMessage`1.MergeFrom(`0)"> + <summary> + Merges the given message into this one. + </summary> + <remarks>See the user guide for precise merge semantics.</remarks> + <param name="message">The message to merge with this one. Must not be null.</param> + </member> + <member name="T:Google.Protobuf.InvalidJsonException"> + <summary> + Thrown when an attempt is made to parse invalid JSON, e.g. using + a non-string property key, or including a redundant comma. Parsing a protocol buffer + message represented in JSON using <see cref="T:Google.Protobuf.JsonParser"/> can throw both this + exception and <see cref="T:Google.Protobuf.InvalidProtocolBufferException"/> depending on the situation. This + exception is only thrown for "pure JSON" errors, whereas <c>InvalidProtocolBufferException</c> + is thrown when the JSON may be valid in and of itself, but cannot be parsed as a protocol buffer + message. + </summary> + </member> + <member name="T:Google.Protobuf.InvalidProtocolBufferException"> + <summary> + Thrown when a protocol message being parsed is invalid in some way, + e.g. it contains a malformed varint or a negative byte length. + </summary> + </member> + <member name="M:Google.Protobuf.InvalidProtocolBufferException.InvalidTag"> + <summary> + Creates an exception for an error condition of an invalid tag being encountered. + </summary> + </member> + <member name="T:Google.Protobuf.JsonFormatter"> + <summary> + Reflection-based converter from messages to JSON. + </summary> + <remarks> + <para> + Instances of this class are thread-safe, with no mutable state. + </para> + <para> + This is a simple start to get JSON formatting working. As it's reflection-based, + it's not as quick as baking calls into generated messages - but is a simpler implementation. + (This code is generally not heavily optimized.) + </para> + </remarks> + </member> + <member name="P:Google.Protobuf.JsonFormatter.Default"> + <summary> + Returns a formatter using the default settings. + </summary> + </member> + <member name="F:Google.Protobuf.JsonFormatter.CommonRepresentations"> + <summary> + The JSON representation of the first 160 characters of Unicode. + Empty strings are replaced by the static constructor. + </summary> + </member> + <member name="M:Google.Protobuf.JsonFormatter.#ctor(Google.Protobuf.JsonFormatter.Settings)"> + <summary> + Creates a new formatted with the given settings. + </summary> + <param name="settings">The settings.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Format(Google.Protobuf.IMessage)"> + <summary> + Formats the specified message as JSON. + </summary> + <param name="message">The message to format.</param> + <returns>The formatted message.</returns> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Format(Google.Protobuf.IMessage,System.IO.TextWriter)"> + <summary> + Formats the specified message as JSON. + </summary> + <param name="message">The message to format.</param> + <param name="writer">The TextWriter to write the formatted message to.</param> + <returns>The formatted message.</returns> + </member> + <member name="M:Google.Protobuf.JsonFormatter.ToDiagnosticString(Google.Protobuf.IMessage)"> + <summary> + Converts a message to JSON for diagnostic purposes with no extra context. + </summary> + <remarks> + <para> + This differs from calling <see cref="M:Google.Protobuf.JsonFormatter.Format(Google.Protobuf.IMessage)"/> on the default JSON + formatter in its handling of <see cref="T:Google.Protobuf.WellKnownTypes.Any"/>. As no type registry is available + in <see cref="M:System.Object.ToString"/> calls, the normal way of resolving the type of + an <c>Any</c> message cannot be applied. Instead, a JSON property named <c>@value</c> + is included with the base64 data from the <see cref="P:Google.Protobuf.WellKnownTypes.Any.Value"/> property of the message. + </para> + <para>The value returned by this method is only designed to be used for diagnostic + purposes. It may not be parsable by <see cref="T:Google.Protobuf.JsonParser"/>, and may not be parsable + by other Protocol Buffer implementations.</para> + </remarks> + <param name="message">The message to format for diagnostic purposes.</param> + <returns>The diagnostic-only JSON representation of the message</returns> + </member> + <member name="M:Google.Protobuf.JsonFormatter.WriteValue(System.IO.TextWriter,System.Object)"> + <summary> + Writes a single value to the given writer as JSON. Only types understood by + Protocol Buffers can be written in this way. This method is only exposed for + advanced use cases; most users should be using <see cref="M:Google.Protobuf.JsonFormatter.Format(Google.Protobuf.IMessage)"/> + or <see cref="M:Google.Protobuf.JsonFormatter.Format(Google.Protobuf.IMessage,System.IO.TextWriter)"/>. + </summary> + <param name="writer">The writer to write the value to. Must not be null.</param> + <param name="value">The value to write. May be null.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.WriteWellKnownTypeValue(System.IO.TextWriter,Google.Protobuf.Reflection.MessageDescriptor,System.Object)"> + <summary> + Central interception point for well-known type formatting. Any well-known types which + don't need special handling can fall back to WriteMessage. We avoid assuming that the + values are using the embedded well-known types, in order to allow for dynamic messages + in the future. + </summary> + </member> + <member name="M:Google.Protobuf.JsonFormatter.WriteString(System.IO.TextWriter,System.String)"> + <summary> + Writes a string (including leading and trailing double quotes) to a builder, escaping as required. + </summary> + <remarks> + Other than surrogate pair handling, this code is mostly taken from src/google/protobuf/util/internal/json_escaping.cc. + </remarks> + </member> + <member name="T:Google.Protobuf.JsonFormatter.Settings"> + <summary> + Settings controlling JSON formatting. + </summary> + </member> + <member name="P:Google.Protobuf.JsonFormatter.Settings.Default"> + <summary> + Default settings, as used by <see cref="P:Google.Protobuf.JsonFormatter.Default"/> + </summary> + </member> + <member name="P:Google.Protobuf.JsonFormatter.Settings.FormatDefaultValues"> + <summary> + Whether fields whose values are the default for the field type (e.g. 0 for integers) + should be formatted (true) or omitted (false). + </summary> + </member> + <member name="P:Google.Protobuf.JsonFormatter.Settings.TypeRegistry"> + <summary> + The type registry used to format <see cref="T:Google.Protobuf.WellKnownTypes.Any"/> messages. + </summary> + </member> + <member name="P:Google.Protobuf.JsonFormatter.Settings.FormatEnumsAsIntegers"> + <summary> + Whether to format enums as ints. Defaults to false. + </summary> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Settings.#ctor(System.Boolean)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonFormatter.Settings"/> object with the specified formatting of default values + and an empty type registry. + </summary> + <param name="formatDefaultValues"><c>true</c> if default values (0, empty strings etc) should be formatted; <c>false</c> otherwise.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Settings.#ctor(System.Boolean,Google.Protobuf.Reflection.TypeRegistry)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonFormatter.Settings"/> object with the specified formatting of default values + and type registry. + </summary> + <param name="formatDefaultValues"><c>true</c> if default values (0, empty strings etc) should be formatted; <c>false</c> otherwise.</param> + <param name="typeRegistry">The <see cref="P:Google.Protobuf.JsonFormatter.Settings.TypeRegistry"/> to use when formatting <see cref="T:Google.Protobuf.WellKnownTypes.Any"/> messages.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Settings.#ctor(System.Boolean,Google.Protobuf.Reflection.TypeRegistry,System.Boolean)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonFormatter.Settings"/> object with the specified parameters. + </summary> + <param name="formatDefaultValues"><c>true</c> if default values (0, empty strings etc) should be formatted; <c>false</c> otherwise.</param> + <param name="typeRegistry">The <see cref="P:Google.Protobuf.JsonFormatter.Settings.TypeRegistry"/> to use when formatting <see cref="T:Google.Protobuf.WellKnownTypes.Any"/> messages. TypeRegistry.Empty will be used if it is null.</param> + <param name="formatEnumsAsIntegers"><c>true</c> to format the enums as integers; <c>false</c> to format enums as enum names.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Settings.WithFormatDefaultValues(System.Boolean)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonFormatter.Settings"/> object with the specified formatting of default values and the current settings. + </summary> + <param name="formatDefaultValues"><c>true</c> if default values (0, empty strings etc) should be formatted; <c>false</c> otherwise.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Settings.WithTypeRegistry(Google.Protobuf.Reflection.TypeRegistry)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonFormatter.Settings"/> object with the specified type registry and the current settings. + </summary> + <param name="typeRegistry">The <see cref="P:Google.Protobuf.JsonFormatter.Settings.TypeRegistry"/> to use when formatting <see cref="T:Google.Protobuf.WellKnownTypes.Any"/> messages.</param> + </member> + <member name="M:Google.Protobuf.JsonFormatter.Settings.WithFormatEnumsAsIntegers(System.Boolean)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonFormatter.Settings"/> object with the specified enums formatting option and the current settings. + </summary> + <param name="formatEnumsAsIntegers"><c>true</c> to format the enums as integers; <c>false</c> to format enums as enum names.</param> + </member> + <member name="T:Google.Protobuf.JsonParser"> + <summary> + Reflection-based converter from JSON to messages. + </summary> + <remarks> + <para> + Instances of this class are thread-safe, with no mutable state. + </para> + <para> + This is a simple start to get JSON parsing working. As it's reflection-based, + it's not as quick as baking calls into generated messages - but is a simpler implementation. + (This code is generally not heavily optimized.) + </para> + </remarks> + </member> + <member name="P:Google.Protobuf.JsonParser.Default"> + <summary> + Returns a formatter using the default settings. + </summary> + </member> + <member name="M:Google.Protobuf.JsonParser.#ctor(Google.Protobuf.JsonParser.Settings)"> + <summary> + Creates a new formatted with the given settings. + </summary> + <param name="settings">The settings.</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Merge(Google.Protobuf.IMessage,System.String)"> + <summary> + Parses <paramref name="json"/> and merges the information into the given message. + </summary> + <param name="message">The message to merge the JSON information into.</param> + <param name="json">The JSON to parse.</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Merge(Google.Protobuf.IMessage,System.IO.TextReader)"> + <summary> + Parses JSON read from <paramref name="jsonReader"/> and merges the information into the given message. + </summary> + <param name="message">The message to merge the JSON information into.</param> + <param name="jsonReader">Reader providing the JSON to parse.</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Merge(Google.Protobuf.IMessage,Google.Protobuf.JsonTokenizer)"> + <summary> + Merges the given message using data from the given tokenizer. In most cases, the next + token should be a "start object" token, but wrapper types and nullity can invalidate + that assumption. This is implemented as an LL(1) recursive descent parser over the stream + of tokens provided by the tokenizer. This token stream is assumed to be valid JSON, with the + tokenizer performing that validation - but not every token stream is valid "protobuf JSON". + </summary> + </member> + <member name="M:Google.Protobuf.JsonParser.Parse``1(System.String)"> + <summary> + Parses <paramref name="json"/> into a new message. + </summary> + <typeparam name="T">The type of message to create.</typeparam> + <param name="json">The JSON to parse.</param> + <exception cref="T:Google.Protobuf.InvalidJsonException">The JSON does not comply with RFC 7159</exception> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception> + </member> + <member name="M:Google.Protobuf.JsonParser.Parse``1(System.IO.TextReader)"> + <summary> + Parses JSON read from <paramref name="jsonReader"/> into a new message. + </summary> + <typeparam name="T">The type of message to create.</typeparam> + <param name="jsonReader">Reader providing the JSON to parse.</param> + <exception cref="T:Google.Protobuf.InvalidJsonException">The JSON does not comply with RFC 7159</exception> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception> + </member> + <member name="M:Google.Protobuf.JsonParser.Parse(System.String,Google.Protobuf.Reflection.MessageDescriptor)"> + <summary> + Parses <paramref name="json"/> into a new message. + </summary> + <param name="json">The JSON to parse.</param> + <param name="descriptor">Descriptor of message type to parse.</param> + <exception cref="T:Google.Protobuf.InvalidJsonException">The JSON does not comply with RFC 7159</exception> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception> + </member> + <member name="M:Google.Protobuf.JsonParser.Parse(System.IO.TextReader,Google.Protobuf.Reflection.MessageDescriptor)"> + <summary> + Parses JSON read from <paramref name="jsonReader"/> into a new message. + </summary> + <param name="jsonReader">Reader providing the JSON to parse.</param> + <param name="descriptor">Descriptor of message type to parse.</param> + <exception cref="T:Google.Protobuf.InvalidJsonException">The JSON does not comply with RFC 7159</exception> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception> + </member> + <member name="M:Google.Protobuf.JsonParser.NewMessageForField(Google.Protobuf.Reflection.FieldDescriptor)"> + <summary> + Creates a new instance of the message type for the given field. + </summary> + </member> + <member name="M:Google.Protobuf.JsonParser.ValidateInfinityAndNan(System.String,System.Boolean,System.Boolean,System.Boolean)"> + <summary> + Checks that any infinite/NaN values originated from the correct text. + This corrects the lenient whitespace handling of double.Parse/float.Parse, as well as the + way that Mono parses out-of-range values as infinity. + </summary> + </member> + <member name="T:Google.Protobuf.JsonParser.Settings"> + <summary> + Settings controlling JSON parsing. + </summary> + </member> + <member name="P:Google.Protobuf.JsonParser.Settings.Default"> + <summary> + Default settings, as used by <see cref="P:Google.Protobuf.JsonParser.Default"/>. This has the same default + recursion limit as <see cref="T:Google.Protobuf.CodedInputStream"/>, and an empty type registry. + </summary> + </member> + <member name="P:Google.Protobuf.JsonParser.Settings.RecursionLimit"> + <summary> + The maximum depth of messages to parse. Note that this limit only applies to parsing + messages, not collections - so a message within a collection within a message only counts as + depth 2, not 3. + </summary> + </member> + <member name="P:Google.Protobuf.JsonParser.Settings.TypeRegistry"> + <summary> + The type registry used to parse <see cref="T:Google.Protobuf.WellKnownTypes.Any"/> messages. + </summary> + </member> + <member name="P:Google.Protobuf.JsonParser.Settings.IgnoreUnknownFields"> + <summary> + Whether the parser should ignore unknown fields (<c>true</c>) or throw an exception when + they are encountered (<c>false</c>). + </summary> + </member> + <member name="M:Google.Protobuf.JsonParser.Settings.#ctor(System.Int32)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonParser.Settings"/> object with the specified recursion limit. + </summary> + <param name="recursionLimit">The maximum depth of messages to parse</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Settings.#ctor(System.Int32,Google.Protobuf.Reflection.TypeRegistry)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonParser.Settings"/> object with the specified recursion limit and type registry. + </summary> + <param name="recursionLimit">The maximum depth of messages to parse</param> + <param name="typeRegistry">The type registry used to parse <see cref="T:Google.Protobuf.WellKnownTypes.Any"/> messages</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Settings.WithIgnoreUnknownFields(System.Boolean)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonParser.Settings"/> object set to either ignore unknown fields, or throw an exception + when unknown fields are encountered. + </summary> + <param name="ignoreUnknownFields"><c>true</c> if unknown fields should be ignored when parsing; <c>false</c> to throw an exception.</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Settings.WithRecursionLimit(System.Int32)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonParser.Settings"/> object based on this one, but with the specified recursion limit. + </summary> + <param name="recursionLimit">The new recursion limit.</param> + </member> + <member name="M:Google.Protobuf.JsonParser.Settings.WithTypeRegistry(Google.Protobuf.Reflection.TypeRegistry)"> + <summary> + Creates a new <see cref="T:Google.Protobuf.JsonParser.Settings"/> object based on this one, but with the specified type registry. + </summary> + <param name="typeRegistry">The new type registry. Must not be null.</param> + </member> + <member name="T:Google.Protobuf.JsonTokenizer"> + <summary> + Simple but strict JSON tokenizer, rigidly following RFC 7159. + </summary> + <remarks> + <para> + This tokenizer is stateful, and only returns "useful" tokens - names, values etc. + It does not create tokens for the separator between names and values, or for the comma + between values. It validates the token stream as it goes - so callers can assume that the + tokens it produces are appropriate. For example, it would never produce "start object, end array." + </para> + <para>Implementation details: the base class handles single token push-back and </para> + <para>Not thread-safe.</para> + </remarks> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.FromTextReader(System.IO.TextReader)"> + <summary> + Creates a tokenizer that reads from the given text reader. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.FromReplayedTokens(System.Collections.Generic.IList{Google.Protobuf.JsonToken},Google.Protobuf.JsonTokenizer)"> + <summary> + Creates a tokenizer that first replays the given list of tokens, then continues reading + from another tokenizer. Note that if the returned tokenizer is "pushed back", that does not push back + on the continuation tokenizer, or vice versa. Care should be taken when using this method - it was + created for the sake of Any parsing. + </summary> + </member> + <member name="P:Google.Protobuf.JsonTokenizer.ObjectDepth"> + <summary> + Returns the depth of the stack, purely in objects (not collections). + Informally, this is the number of remaining unclosed '{' characters we have. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.Next"> + <summary> + Returns the next JSON token in the stream. An EndDocument token is returned to indicate the end of the stream, + after which point <c>Next()</c> should not be called again. + </summary> + <remarks>This implementation provides single-token buffering, and calls <see cref="M:Google.Protobuf.JsonTokenizer.NextImpl"/> if there is no buffered token.</remarks> + <returns>The next token in the stream. This is never null.</returns> + <exception cref="T:System.InvalidOperationException">This method is called after an EndDocument token has been returned</exception> + <exception cref="T:Google.Protobuf.InvalidJsonException">The input text does not comply with RFC 7159</exception> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.NextImpl"> + <summary> + Returns the next JSON token in the stream, when requested by the base class. (The <see cref="M:Google.Protobuf.JsonTokenizer.Next"/> method delegates + to this if it doesn't have a buffered token.) + </summary> + <exception cref="T:System.InvalidOperationException">This method is called after an EndDocument token has been returned</exception> + <exception cref="T:Google.Protobuf.InvalidJsonException">The input text does not comply with RFC 7159</exception> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.SkipValue"> + <summary> + Skips the value we're about to read. This must only be called immediately after reading a property name. + If the value is an object or an array, the complete object/array is skipped. + </summary> + </member> + <member name="T:Google.Protobuf.JsonTokenizer.JsonReplayTokenizer"> + <summary> + Tokenizer which first exhausts a list of tokens, then consults another tokenizer. + </summary> + </member> + <member name="T:Google.Protobuf.JsonTokenizer.JsonTextTokenizer"> + <summary> + Tokenizer which does all the *real* work of parsing JSON. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.NextImpl"> + <remarks> + This method essentially just loops through characters skipping whitespace, validating and + changing state (e.g. from ObjectBeforeColon to ObjectAfterColon) + until it reaches something which will be a genuine token (e.g. a start object, or a value) at which point + it returns the token. Although the method is large, it would be relatively hard to break down further... most + of it is the large switch statement, which sometimes returns and sometimes doesn't. + </remarks> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.ReadString"> + <summary> + Reads a string token. It is assumed that the opening " has already been read. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.ReadEscapedCharacter"> + <summary> + Reads an escaped character. It is assumed that the leading backslash has already been read. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.ReadUnicodeEscape"> + <summary> + Reads an escaped Unicode 4-nybble hex sequence. It is assumed that the leading \u has already been read. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.ConsumeLiteral(System.String)"> + <summary> + Consumes a text-only literal, throwing an exception if the read text doesn't match it. + It is assumed that the first letter of the literal has already been read. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.ValidateAndModifyStateForValue(System.String)"> + <summary> + Validates that we're in a valid state to read a value (using the given error prefix if necessary) + and changes the state to the appropriate one, e.g. ObjectAfterColon to ObjectAfterProperty. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.PopContainer"> + <summary> + Pops the top-most container, and sets the state to the appropriate one for the end of a value + in the parent container. + </summary> + </member> + <member name="T:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State"> + <summary> + Possible states of the tokenizer. + </summary> + <remarks> + <para>This is a flags enum purely so we can simply and efficiently represent a set of valid states + for checking.</para> + <para> + Each is documented with an example, + where ^ represents the current position within the text stream. The examples all use string values, + but could be any value, including nested objects/arrays. + The complete state of the tokenizer also includes a stack to indicate the contexts (arrays/objects). + Any additional notional state of "AfterValue" indicates that a value has been completed, at which + point there's an immediate transition to ExpectedEndOfDocument, ObjectAfterProperty or ArrayAfterValue. + </para> + <para> + These states were derived manually by reading RFC 7159 carefully. + </para> + </remarks> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.StartOfDocument"> + <summary> + ^ { "foo": "bar" } + Before the value in a document. Next states: ObjectStart, ArrayStart, "AfterValue" + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ExpectedEndOfDocument"> + <summary> + { "foo": "bar" } ^ + After the value in a document. Next states: ReaderExhausted + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ReaderExhausted"> + <summary> + { "foo": "bar" } ^ (and already read to the end of the reader) + Terminal state. + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ObjectStart"> + <summary> + { ^ "foo": "bar" } + Before the *first* property in an object. + Next states: + "AfterValue" (empty object) + ObjectBeforeColon (read a name) + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ObjectBeforeColon"> + <summary> + { "foo" ^ : "bar", "x": "y" } + Next state: ObjectAfterColon + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ObjectAfterColon"> + <summary> + { "foo" : ^ "bar", "x": "y" } + Before any property other than the first in an object. + (Equivalently: after any property in an object) + Next states: + "AfterValue" (value is simple) + ObjectStart (value is object) + ArrayStart (value is array) + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ObjectAfterProperty"> + <summary> + { "foo" : "bar" ^ , "x" : "y" } + At the end of a property, so expecting either a comma or end-of-object + Next states: ObjectAfterComma or "AfterValue" + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ObjectAfterComma"> + <summary> + { "foo":"bar", ^ "x":"y" } + Read the comma after the previous property, so expecting another property. + This is like ObjectStart, but closing brace isn't valid here + Next state: ObjectBeforeColon. + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ArrayStart"> + <summary> + [ ^ "foo", "bar" ] + Before the *first* value in an array. + Next states: + "AfterValue" (read a value) + "AfterValue" (end of array; will pop stack) + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ArrayAfterValue"> + <summary> + [ "foo" ^ , "bar" ] + After any value in an array, so expecting either a comma or end-of-array + Next states: ArrayAfterComma or "AfterValue" + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.State.ArrayAfterComma"> + <summary> + [ "foo", ^ "bar" ] + After a comma in an array, so there *must* be another value (simple or complex). + Next states: "AfterValue" (simple value), StartObject, StartArray + </summary> + </member> + <member name="T:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.PushBackReader"> + <summary> + Wrapper around a text reader allowing small amounts of buffering and location handling. + </summary> + </member> + <member name="F:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.PushBackReader.nextChar"> + <summary> + The buffered next character, if we have one. + </summary> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.PushBackReader.Read"> + <summary> + Returns the next character in the stream, or null if we have reached the end. + </summary> + <returns></returns> + </member> + <member name="M:Google.Protobuf.JsonTokenizer.JsonTextTokenizer.PushBackReader.CreateException(System.String)"> + <summary> + Creates a new exception appropriate for the current state of the reader. + </summary> + </member> + <member name="T:Google.Protobuf.LimitedInputStream"> + <summary> + Stream implementation which proxies another stream, only allowing a certain amount + of data to be read. Note that this is only used to read delimited streams, so it + doesn't attempt to implement everything. + </summary> + </member> + <member name="T:Google.Protobuf.MessageExtensions"> + <summary> + Extension methods on <see cref="T:Google.Protobuf.IMessage"/> and <see cref="T:Google.Protobuf.IMessage`1"/>. + </summary> + </member> + <member name="M:Google.Protobuf.MessageExtensions.MergeFrom(Google.Protobuf.IMessage,System.Byte[])"> + <summary> + Merges data from the given byte array into an existing message. + </summary> + <param name="message">The message to merge the data into.</param> + <param name="data">The data to merge, which must be protobuf-encoded binary data.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.MergeFrom(Google.Protobuf.IMessage,System.Byte[],System.Int32,System.Int32)"> + <summary> + Merges data from the given byte array slice into an existing message. + </summary> + <param name="message">The message to merge the data into.</param> + <param name="data">The data containing the slice to merge, which must be protobuf-encoded binary data.</param> + <param name="offset">The offset of the slice to merge.</param> + <param name="length">The length of the slice to merge.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.MergeFrom(Google.Protobuf.IMessage,Google.Protobuf.ByteString)"> + <summary> + Merges data from the given byte string into an existing message. + </summary> + <param name="message">The message to merge the data into.</param> + <param name="data">The data to merge, which must be protobuf-encoded binary data.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.MergeFrom(Google.Protobuf.IMessage,System.IO.Stream)"> + <summary> + Merges data from the given stream into an existing message. + </summary> + <param name="message">The message to merge the data into.</param> + <param name="input">Stream containing the data to merge, which must be protobuf-encoded binary data.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.MergeDelimitedFrom(Google.Protobuf.IMessage,System.IO.Stream)"> + <summary> + Merges length-delimited data from the given stream into an existing message. + </summary> + <remarks> + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + </remarks> + <param name="message">The message to merge the data into.</param> + <param name="input">Stream containing the data to merge, which must be protobuf-encoded binary data.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.ToByteArray(Google.Protobuf.IMessage)"> + <summary> + Converts the given message into a byte array in protobuf encoding. + </summary> + <param name="message">The message to convert.</param> + <returns>The message data as a byte array.</returns> + </member> + <member name="M:Google.Protobuf.MessageExtensions.WriteTo(Google.Protobuf.IMessage,System.IO.Stream)"> + <summary> + Writes the given message data to the given stream in protobuf encoding. + </summary> + <param name="message">The message to write to the stream.</param> + <param name="output">The stream to write to.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.WriteDelimitedTo(Google.Protobuf.IMessage,System.IO.Stream)"> + <summary> + Writes the length and then data of the given message to a stream. + </summary> + <param name="message">The message to write.</param> + <param name="output">The output stream to write to.</param> + </member> + <member name="M:Google.Protobuf.MessageExtensions.ToByteString(Google.Protobuf.IMessage)"> + <summary> + Converts the given message into a byte string in protobuf encoding. + </summary> + <param name="message">The message to convert.</param> + <returns>The message data as a byte string.</returns> + </member> + <member name="T:Google.Protobuf.MessageParser"> + <summary> + A general message parser, typically used by reflection-based code as all the methods + return simple <see cref="T:Google.Protobuf.IMessage"/>. + </summary> + </member> + <member name="M:Google.Protobuf.MessageParser.CreateTemplate"> + <summary> + Creates a template instance ready for population. + </summary> + <returns>An empty message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseFrom(System.Byte[])"> + <summary> + Parses a message from a byte array. + </summary> + <param name="data">The byte array containing the message. Must not be null.</param> + <returns>The newly parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseFrom(System.Byte[],System.Int32,System.Int32)"> + <summary> + Parses a message from a byte array slice. + </summary> + <param name="data">The byte array containing the message. Must not be null.</param> + <param name="offset">The offset of the slice to parse.</param> + <param name="length">The length of the slice to parse.</param> + <returns>The newly parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseFrom(Google.Protobuf.ByteString)"> + <summary> + Parses a message from the given byte string. + </summary> + <param name="data">The data to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseFrom(System.IO.Stream)"> + <summary> + Parses a message from the given stream. + </summary> + <param name="input">The stream to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseDelimitedFrom(System.IO.Stream)"> + <summary> + Parses a length-delimited message from the given stream. + </summary> + <remarks> + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + </remarks> + <param name="input">The stream to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseFrom(Google.Protobuf.CodedInputStream)"> + <summary> + Parses a message from the given coded input stream. + </summary> + <param name="input">The stream to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser.ParseJson(System.String)"> + <summary> + Parses a message from the given JSON. + </summary> + <param name="json">The JSON to parse.</param> + <returns>The parsed message.</returns> + <exception cref="T:Google.Protobuf.InvalidJsonException">The JSON does not comply with RFC 7159</exception> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception> + </member> + <member name="M:Google.Protobuf.MessageParser.WithDiscardUnknownFields(System.Boolean)"> + <summary> + Creates a new message parser which optionally discards unknown fields when parsing. + </summary> + <param name="discardUnknownFields">Whether or not to discard unknown fields when parsing.</param> + <returns>A newly configured message parser.</returns> + </member> + <member name="T:Google.Protobuf.MessageParser`1"> + <summary> + A parser for a specific message type. + </summary> + <remarks> + <p> + This delegates most behavior to the + <see cref="M:Google.Protobuf.IMessage.MergeFrom(Google.Protobuf.CodedInputStream)"/> implementation within the original type, but + provides convenient overloads to parse from a variety of sources. + </p> + <p> + Most applications will never need to create their own instances of this type; + instead, use the static <c>Parser</c> property of a generated message type to obtain a + parser for that type. + </p> + </remarks> + <typeparam name="T">The type of message to be parsed.</typeparam> + </member> + <member name="M:Google.Protobuf.MessageParser`1.#ctor(System.Func{`0})"> + <summary> + Creates a new parser. + </summary> + <remarks> + The factory method is effectively an optimization over using a generic constraint + to require a parameterless constructor: delegates are significantly faster to execute. + </remarks> + <param name="factory">Function to invoke when a new, empty message is required.</param> + </member> + <member name="M:Google.Protobuf.MessageParser`1.CreateTemplate"> + <summary> + Creates a template instance ready for population. + </summary> + <returns>An empty message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseFrom(System.Byte[])"> + <summary> + Parses a message from a byte array. + </summary> + <param name="data">The byte array containing the message. Must not be null.</param> + <returns>The newly parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseFrom(System.Byte[],System.Int32,System.Int32)"> + <summary> + Parses a message from a byte array slice. + </summary> + <param name="data">The byte array containing the message. Must not be null.</param> + <param name="offset">The offset of the slice to parse.</param> + <param name="length">The length of the slice to parse.</param> + <returns>The newly parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseFrom(Google.Protobuf.ByteString)"> + <summary> + Parses a message from the given byte string. + </summary> + <param name="data">The data to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseFrom(System.IO.Stream)"> + <summary> + Parses a message from the given stream. + </summary> + <param name="input">The stream to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseDelimitedFrom(System.IO.Stream)"> + <summary> + Parses a length-delimited message from the given stream. + </summary> + <remarks> + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + </remarks> + <param name="input">The stream to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseFrom(Google.Protobuf.CodedInputStream)"> + <summary> + Parses a message from the given coded input stream. + </summary> + <param name="input">The stream to parse.</param> + <returns>The parsed message.</returns> + </member> + <member name="M:Google.Protobuf.MessageParser`1.ParseJson(System.String)"> + <summary> + Parses a message from the given JSON. + </summary> + <param name="json">The JSON to parse.</param> + <returns>The parsed message.</returns> + <exception cref="T:Google.Protobuf.InvalidJsonException">The JSON does not comply with RFC 7159</exception> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception> + </member> + <member name="M:Google.Protobuf.MessageParser`1.WithDiscardUnknownFields(System.Boolean)"> + <summary> + Creates a new message parser which optionally discards unknown fields when parsing. + </summary> + <param name="discardUnknownFields">Whether or not to discard unknown fields when parsing.</param> + <returns>A newly configured message parser.</returns> + </member> + <member name="T:Google.Protobuf.ProtoPreconditions"> + <summary> + Helper methods for throwing exceptions when preconditions are not met. + </summary> + <remarks> + This class is used internally and by generated code; it is not particularly + expected to be used from application code, although nothing prevents it + from being used that way. + </remarks> + </member> + <member name="M:Google.Protobuf.ProtoPreconditions.CheckNotNull``1(``0,System.String)"> + <summary> + Throws an ArgumentNullException if the given value is null, otherwise + return the value to the caller. + </summary> + </member> + <member name="M:Google.Protobuf.ProtoPreconditions.CheckNotNullUnconstrained``1(``0,System.String)"> + <summary> + Throws an ArgumentNullException if the given value is null, otherwise + return the value to the caller. + </summary> + <remarks> + This is equivalent to <see cref="M:Google.Protobuf.ProtoPreconditions.CheckNotNull``1(``0,System.String)"/> but without the type parameter + constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull + with a value type - but it gets in the way if either you want to use it with a nullable + value type, or you want to use it with an unconstrained type parameter. + </remarks> + </member> + <member name="T:Google.Protobuf.Reflection.CustomOptions"> + <summary> + Container for a set of custom options specified within a message, field etc. + </summary> + <remarks> + <para> + This type is publicly immutable, but internally mutable. It is only populated + by the descriptor parsing code - by the time any user code is able to see an instance, + it will be fully initialized. + </para> + <para> + If an option is requested using the incorrect method, an answer may still be returned: all + of the numeric types are represented internally using 64-bit integers, for example. It is up to + the caller to ensure that they make the appropriate method call for the option they're interested in. + Note that enum options are simply stored as integers, so the value should be fetched using + <see cref="M:Google.Protobuf.Reflection.CustomOptions.TryGetInt32(System.Int32,System.Int32@)"/> and then cast appropriately. + </para> + <para> + Repeated options are currently not supported. Asking for a single value of an option + which was actually repeated will return the last value, except for message types where + all the set values are merged together. + </para> + </remarks> + </member> + <member name="F:Google.Protobuf.Reflection.CustomOptions.Empty"> + <summary> + Singleton for all descriptors with an empty set of options. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.CustomOptions.valuesByField"> + <summary> + A sequence of values per field. This needs to be per field rather than per tag to allow correct deserialization + of repeated fields which could be "int, ByteString, int" - unlikely as that is. The fact that values are boxed + is unfortunate; we might be able to use a struct instead, and we could combine uint and ulong values. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetBool(System.Int32,System.Boolean@)"> + <summary> + Retrieves a Boolean value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetInt32(System.Int32,System.Int32@)"> + <summary> + Retrieves a signed 32-bit integer value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetInt64(System.Int32,System.Int64@)"> + <summary> + Retrieves a signed 64-bit integer value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetFixed32(System.Int32,System.UInt32@)"> + <summary> + Retrieves an unsigned 32-bit integer value for the specified option field, + assuming a fixed-length representation. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetFixed64(System.Int32,System.UInt64@)"> + <summary> + Retrieves an unsigned 64-bit integer value for the specified option field, + assuming a fixed-length representation. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetSFixed32(System.Int32,System.Int32@)"> + <summary> + Retrieves a signed 32-bit integer value for the specified option field, + assuming a fixed-length representation. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetSFixed64(System.Int32,System.Int64@)"> + <summary> + Retrieves a signed 64-bit integer value for the specified option field, + assuming a fixed-length representation. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetSInt32(System.Int32,System.Int32@)"> + <summary> + Retrieves a signed 32-bit integer value for the specified option field, + assuming a zigzag encoding. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetSInt64(System.Int32,System.Int64@)"> + <summary> + Retrieves a signed 64-bit integer value for the specified option field, + assuming a zigzag encoding. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetUInt32(System.Int32,System.UInt32@)"> + <summary> + Retrieves an unsigned 32-bit integer value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetUInt64(System.Int32,System.UInt64@)"> + <summary> + Retrieves an unsigned 64-bit integer value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetFloat(System.Int32,System.Single@)"> + <summary> + Retrieves a 32-bit floating point value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetDouble(System.Int32,System.Double@)"> + <summary> + Retrieves a 64-bit floating point value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetString(System.Int32,System.String@)"> + <summary> + Retrieves a string value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetBytes(System.Int32,Google.Protobuf.ByteString@)"> + <summary> + Retrieves a bytes value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.TryGetMessage``1(System.Int32,``0@)"> + <summary> + Retrieves a message value for the specified option field. + </summary> + <param name="field">The field to fetch the value for.</param> + <param name="value">The output variable to populate.</param> + <returns><c>true</c> if a suitable value for the field was found; <c>false</c> otherwise.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.CustomOptions.ReadOrSkipUnknownField(Google.Protobuf.CodedInputStream)"> + <summary> + Reads an unknown field, either parsing it and storing it or skipping it. + </summary> + <remarks> + If the current set of options is empty and we manage to read a field, a new set of options + will be created and returned. Otherwise, the return value is <c>this</c>. This allows + us to start with a singleton empty set of options and just create new ones where necessary. + </remarks> + <param name="input">Input stream to read from. </param> + <returns>The resulting set of custom options, either <c>this</c> or a new set.</returns> + </member> + <member name="T:Google.Protobuf.Reflection.CustomOptions.FieldValue"> + <summary> + All field values can be stored as a byte string or a 64-bit integer. + This struct avoids unnecessary boxing. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorReflection"> + <summary>Holder for reflection information generated from google/protobuf/descriptor.proto</summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorReflection.Descriptor"> + <summary>File descriptor for google/protobuf/descriptor.proto</summary> + </member> + <member name="T:Google.Protobuf.Reflection.FileDescriptorSet"> + <summary> + The protocol compiler can output a FileDescriptorSet containing the .proto + files it parses. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorSet.FileFieldNumber"> + <summary>Field number for the "file" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.FileDescriptorProto"> + <summary> + Describes a complete .proto file. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.Name"> + <summary> + file name, relative to root of source tree + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.PackageFieldNumber"> + <summary>Field number for the "package" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.Package"> + <summary> + e.g. "foo", "foo.bar", etc. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.DependencyFieldNumber"> + <summary>Field number for the "dependency" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.Dependency"> + <summary> + Names of files imported by this file. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.PublicDependencyFieldNumber"> + <summary>Field number for the "public_dependency" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.PublicDependency"> + <summary> + Indexes of the public imported files in the dependency list above. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.WeakDependencyFieldNumber"> + <summary>Field number for the "weak_dependency" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.WeakDependency"> + <summary> + Indexes of the weak imported files in the dependency list. + For Google-internal migration only. Do not use. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.MessageTypeFieldNumber"> + <summary>Field number for the "message_type" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.MessageType"> + <summary> + All top-level definitions in this file. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.EnumTypeFieldNumber"> + <summary>Field number for the "enum_type" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.ServiceFieldNumber"> + <summary>Field number for the "service" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.ExtensionFieldNumber"> + <summary>Field number for the "extension" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.SourceCodeInfoFieldNumber"> + <summary>Field number for the "source_code_info" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.SourceCodeInfo"> + <summary> + This field contains optional information about the original source code. + You may safely remove this entire field without harming runtime + functionality of the descriptors -- the information is needed only by + development tools. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileDescriptorProto.SyntaxFieldNumber"> + <summary>Field number for the "syntax" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptorProto.Syntax"> + <summary> + The syntax of the proto file. + The supported values are "proto2" and "proto3". + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorProto"> + <summary> + Describes a message type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.FieldFieldNumber"> + <summary>Field number for the "field" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.ExtensionFieldNumber"> + <summary>Field number for the "extension" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.NestedTypeFieldNumber"> + <summary>Field number for the "nested_type" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.EnumTypeFieldNumber"> + <summary>Field number for the "enum_type" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.ExtensionRangeFieldNumber"> + <summary>Field number for the "extension_range" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.OneofDeclFieldNumber"> + <summary>Field number for the "oneof_decl" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.ReservedRangeFieldNumber"> + <summary>Field number for the "reserved_range" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.ReservedNameFieldNumber"> + <summary>Field number for the "reserved_name" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorProto.ReservedName"> + <summary> + Reserved field names, which may not be used by fields in the same message. + A given name may only be reserved once. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorProto.Types"> + <summary>Container for nested types declared in the DescriptorProto message type.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange.StartFieldNumber"> + <summary>Field number for the "start" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange.EndFieldNumber"> + <summary>Field number for the "end" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange"> + <summary> + Range of reserved tag numbers. Reserved tag numbers may not be used by + fields or extension ranges in the same message. Reserved ranges may + not overlap. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.StartFieldNumber"> + <summary>Field number for the "start" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.Start"> + <summary> + Inclusive. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.EndFieldNumber"> + <summary>Field number for the "end" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.End"> + <summary> + Exclusive. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.ExtensionRangeOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.ExtensionRangeOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FieldDescriptorProto"> + <summary> + Describes a field within a message. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.NumberFieldNumber"> + <summary>Field number for the "number" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.LabelFieldNumber"> + <summary>Field number for the "label" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.TypeFieldNumber"> + <summary>Field number for the "type" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptorProto.Type"> + <summary> + If type_name is set, this need not be set. If both this and type_name + are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.TypeNameFieldNumber"> + <summary>Field number for the "type_name" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptorProto.TypeName"> + <summary> + For message and enum types, this is the name of the type. If the name + starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + rules are used to find the type (i.e. first the nested types within this + message are searched, then within the parent, on up to the root + namespace). + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.ExtendeeFieldNumber"> + <summary>Field number for the "extendee" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptorProto.Extendee"> + <summary> + For extensions, this is the name of the type being extended. It is + resolved in the same manner as type_name. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.DefaultValueFieldNumber"> + <summary>Field number for the "default_value" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptorProto.DefaultValue"> + <summary> + For numeric types, contains the original text representation of the value. + For booleans, "true" or "false". + For strings, contains the default text contents (not escaped in any way). + For bytes, contains the C escaped value. All bytes >= 128 are escaped. + TODO(kenton): Base-64 encode? + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.OneofIndexFieldNumber"> + <summary>Field number for the "oneof_index" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptorProto.OneofIndex"> + <summary> + If set, gives the index of a oneof in the containing type's oneof_decl + list. This field is a member of that oneof. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.JsonNameFieldNumber"> + <summary>Field number for the "json_name" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptorProto.JsonName"> + <summary> + JSON name of this field. The value is set by protocol compiler. If the + user has set a "json_name" option on this field, that option's value + will be used. Otherwise, it's deduced from the field's name by converting + it to camelCase. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.FieldDescriptorProto.Types"> + <summary>Container for nested types declared in the FieldDescriptorProto message type.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Double"> + <summary> + 0 is reserved for errors. + Order is weird for historical reasons. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Int64"> + <summary> + Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + negative values are likely. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Int32"> + <summary> + Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + negative values are likely. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Group"> + <summary> + Tag-delimited aggregate. + Group type is deprecated and not supported in proto3. However, Proto3 + implementations should still be able to parse the group wire format and + treat group fields as unknown fields. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Message"> + <summary> + Length-delimited aggregate. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Bytes"> + <summary> + New in version 2. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Sint32"> + <summary> + Uses ZigZag encoding. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Sint64"> + <summary> + Uses ZigZag encoding. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label.Optional"> + <summary> + 0 is reserved for errors + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.OneofDescriptorProto"> + <summary> + Describes a oneof. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.OneofDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.OneofDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.EnumDescriptorProto"> + <summary> + Describes an enum type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.ReservedRangeFieldNumber"> + <summary>Field number for the "reserved_range" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptorProto.ReservedRange"> + <summary> + Range of reserved numeric values. Reserved numeric values may not be used + by enum values in the same enum declaration. Reserved ranges may not + overlap. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.ReservedNameFieldNumber"> + <summary>Field number for the "reserved_name" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptorProto.ReservedName"> + <summary> + Reserved enum value names, which may not be reused. A given name may only + be reserved once. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.EnumDescriptorProto.Types"> + <summary>Container for nested types declared in the EnumDescriptorProto message type.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange"> + <summary> + Range of reserved numeric values. Reserved values may not be used by + entries in the same enum. Reserved ranges may not overlap. + + Note that this is distinct from DescriptorProto.ReservedRange in that it + is inclusive such that it can appropriately represent the entire int32 + domain. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange.StartFieldNumber"> + <summary>Field number for the "start" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange.Start"> + <summary> + Inclusive. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange.EndFieldNumber"> + <summary>Field number for the "end" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange.End"> + <summary> + Inclusive. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.EnumValueDescriptorProto"> + <summary> + Describes a value within an enum. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumValueDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumValueDescriptorProto.NumberFieldNumber"> + <summary>Field number for the "number" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumValueDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.ServiceDescriptorProto"> + <summary> + Describes a service. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.ServiceDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.ServiceDescriptorProto.MethodFieldNumber"> + <summary>Field number for the "method" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.ServiceDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.MethodDescriptorProto"> + <summary> + Describes a method of a service. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodDescriptorProto.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodDescriptorProto.InputTypeFieldNumber"> + <summary>Field number for the "input_type" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptorProto.InputType"> + <summary> + Input and output type names. These are resolved in the same way as + FieldDescriptorProto.type_name, but must refer to a message type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodDescriptorProto.OutputTypeFieldNumber"> + <summary>Field number for the "output_type" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodDescriptorProto.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodDescriptorProto.ClientStreamingFieldNumber"> + <summary>Field number for the "client_streaming" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptorProto.ClientStreaming"> + <summary> + Identifies if client streams multiple client messages + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodDescriptorProto.ServerStreamingFieldNumber"> + <summary>Field number for the "server_streaming" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptorProto.ServerStreaming"> + <summary> + Identifies if server streams multiple server messages + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.JavaPackageFieldNumber"> + <summary>Field number for the "java_package" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.JavaPackage"> + <summary> + Sets the Java package where classes generated from this .proto will be + placed. By default, the proto package is used, but this is often + inappropriate because proto packages do not normally start with backwards + domain names. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.JavaOuterClassnameFieldNumber"> + <summary>Field number for the "java_outer_classname" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.JavaOuterClassname"> + <summary> + If set, all the classes from the .proto file are wrapped in a single + outer class with the given name. This applies to both Proto1 + (equivalent to the old "--one_java_file" option) and Proto2 (where + a .proto always translates to a single class, but you may want to + explicitly choose the class name). + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.JavaMultipleFilesFieldNumber"> + <summary>Field number for the "java_multiple_files" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.JavaMultipleFiles"> + <summary> + If set true, then the Java code generator will generate a separate .java + file for each top-level message, enum, and service defined in the .proto + file. Thus, these types will *not* be nested inside the outer class + named by java_outer_classname. However, the outer class will still be + generated to contain the file's getDescriptor() method as well as any + top-level extensions defined in the file. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.JavaGenerateEqualsAndHashFieldNumber"> + <summary>Field number for the "java_generate_equals_and_hash" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.JavaGenerateEqualsAndHash"> + <summary> + This option does nothing. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.JavaStringCheckUtf8FieldNumber"> + <summary>Field number for the "java_string_check_utf8" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.JavaStringCheckUtf8"> + <summary> + If set true, then the Java2 code generator will generate code that + throws an exception whenever an attempt is made to assign a non-UTF-8 + byte sequence to a string field. + Message reflection will do the same. + However, an extension field still accepts non-UTF-8 byte sequences. + This option has no effect on when used with the lite runtime. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.OptimizeForFieldNumber"> + <summary>Field number for the "optimize_for" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.GoPackageFieldNumber"> + <summary>Field number for the "go_package" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.GoPackage"> + <summary> + Sets the Go package where structs generated from this .proto will be + placed. If omitted, the Go package will be derived from the following: + - The basename of the package import path, if provided. + - Otherwise, the package statement in the .proto file, if present. + - Otherwise, the basename of the .proto file, without extension. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.CcGenericServicesFieldNumber"> + <summary>Field number for the "cc_generic_services" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.CcGenericServices"> + <summary> + Should generic services be generated in each language? "Generic" services + are not specific to any particular RPC system. They are generated by the + main code generators in each language (without additional plugins). + Generic services were the only kind of service generation supported by + early versions of google.protobuf. + + Generic services are now considered deprecated in favor of using plugins + that generate code specific to your particular RPC system. Therefore, + these default to false. Old code which depends on generic services should + explicitly set them to true. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.JavaGenericServicesFieldNumber"> + <summary>Field number for the "java_generic_services" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.PyGenericServicesFieldNumber"> + <summary>Field number for the "py_generic_services" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.PhpGenericServicesFieldNumber"> + <summary>Field number for the "php_generic_services" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.Deprecated"> + <summary> + Is this file deprecated? + Depending on the target platform, this can emit Deprecated annotations + for everything in the file, or it will be completely ignored; in the very + least, this is a formalization for deprecating files. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.CcEnableArenasFieldNumber"> + <summary>Field number for the "cc_enable_arenas" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.CcEnableArenas"> + <summary> + Enables the use of arenas for the proto messages in this file. This applies + only to generated classes for C++. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.ObjcClassPrefixFieldNumber"> + <summary>Field number for the "objc_class_prefix" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.ObjcClassPrefix"> + <summary> + Sets the objective c class prefix which is prepended to all objective c + generated classes from this .proto. There is no default. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.CsharpNamespaceFieldNumber"> + <summary>Field number for the "csharp_namespace" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.CsharpNamespace"> + <summary> + Namespace for generated classes; defaults to the package. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.SwiftPrefixFieldNumber"> + <summary>Field number for the "swift_prefix" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.SwiftPrefix"> + <summary> + By default Swift generators will take the proto package and CamelCase it + replacing '.' with underscore and use that to prefix the types/symbols + defined. When this options is provided, they will use this value instead + to prefix the types/symbols defined. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.PhpClassPrefixFieldNumber"> + <summary>Field number for the "php_class_prefix" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.PhpClassPrefix"> + <summary> + Sets the php class prefix which is prepended to all php generated classes + from this .proto. Default is empty. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.PhpNamespaceFieldNumber"> + <summary>Field number for the "php_namespace" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.PhpNamespace"> + <summary> + Use this option to change the namespace of php generated classes. Default + is empty. When this option is empty, the package name will be used for + determining the namespace. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.PhpMetadataNamespaceFieldNumber"> + <summary>Field number for the "php_metadata_namespace" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.PhpMetadataNamespace"> + <summary> + Use this option to change the namespace of php generated metadata classes. + Default is empty. When this option is empty, the proto file name will be used + for determining the namespace. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.RubyPackageFieldNumber"> + <summary>Field number for the "ruby_package" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.RubyPackage"> + <summary> + Use this option to change the package of ruby generated classes. Default + is empty. When this option is not set, the package name will be used for + determining the ruby package. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. + See the documentation for the "Options" section above. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FileOptions.Types"> + <summary>Container for nested types declared in the FileOptions message type.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode"> + <summary> + Generated classes can be optimized for speed or code size. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode.Speed"> + <summary> + Generate complete code for parsing, serialization, + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode.CodeSize"> + <summary> + etc. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode.LiteRuntime"> + <summary> + Generate code using MessageLite and the lite runtime. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MessageOptions.MessageSetWireFormatFieldNumber"> + <summary>Field number for the "message_set_wire_format" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageOptions.MessageSetWireFormat"> + <summary> + Set true to use the old proto1 MessageSet wire format for extensions. + This is provided for backwards-compatibility with the MessageSet wire + format. You should not use this for any other reason: It's less + efficient, has fewer features, and is more complicated. + + The message must be defined exactly as follows: + message Foo { + option message_set_wire_format = true; + extensions 4 to max; + } + Note that the message cannot have any defined fields; MessageSets only + have extensions. + + All extensions of your type must be singular messages; e.g. they cannot + be int32s, enums, or repeated messages. + + Because this is an option, the above two restrictions are not enforced by + the protocol compiler. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MessageOptions.NoStandardDescriptorAccessorFieldNumber"> + <summary>Field number for the "no_standard_descriptor_accessor" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageOptions.NoStandardDescriptorAccessor"> + <summary> + Disables the generation of the standard "descriptor()" accessor, which can + conflict with a field of the same name. This is meant to make migration + from proto1 easier; new code should avoid fields named "descriptor". + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MessageOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageOptions.Deprecated"> + <summary> + Is this message deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the message, or it will be completely ignored; in the very least, + this is a formalization for deprecating messages. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MessageOptions.MapEntryFieldNumber"> + <summary>Field number for the "map_entry" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageOptions.MapEntry"> + <summary> + Whether the message is an automatically generated map entry type for the + maps field. + + For maps fields: + map<KeyType, ValueType> map_field = 1; + The parsed descriptor looks like: + message MapFieldEntry { + option map_entry = true; + optional KeyType key = 1; + optional ValueType value = 2; + } + repeated MapFieldEntry map_field = 1; + + Implementations may choose not to generate the map_entry=true message, but + use a native map in the target language to hold the keys and values. + The reflection APIs in such implementions still need to work as + if the field is a repeated message field. + + NOTE: Do not set the option in .proto files. Always use the maps syntax + instead. The option should only be implicitly set by the proto compiler + parser. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MessageOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.CtypeFieldNumber"> + <summary>Field number for the "ctype" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.Ctype"> + <summary> + The ctype option instructs the C++ code generator to use a different + representation of the field than it normally would. See the specific + options below. This option is not yet implemented in the open source + release -- sorry, we'll try to include it in a future version! + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.PackedFieldNumber"> + <summary>Field number for the "packed" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.Packed"> + <summary> + The packed option can be enabled for repeated primitive fields to enable + a more efficient representation on the wire. Rather than repeatedly + writing the tag and type for each element, the entire array is encoded as + a single length-delimited blob. In proto3, only explicit setting it to + false will avoid using packed encoding. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.JstypeFieldNumber"> + <summary>Field number for the "jstype" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.Jstype"> + <summary> + The jstype option determines the JavaScript type used for values of the + field. The option is permitted only for 64 bit integral and fixed types + (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + is represented as JavaScript string, which avoids loss of precision that + can happen when a large value is converted to a floating point JavaScript. + Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + use the JavaScript "number" type. The behavior of the default option + JS_NORMAL is implementation dependent. + + This option is an enum to permit additional types to be added, e.g. + goog.math.Integer. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.LazyFieldNumber"> + <summary>Field number for the "lazy" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.Lazy"> + <summary> + Should this field be parsed lazily? Lazy applies only to message-type + fields. It means that when the outer message is initially parsed, the + inner message's contents will not be parsed but instead stored in encoded + form. The inner message will actually be parsed when it is first accessed. + + This is only a hint. Implementations are free to choose whether to use + eager or lazy parsing regardless of the value of this option. However, + setting this option true suggests that the protocol author believes that + using lazy parsing on this field is worth the additional bookkeeping + overhead typically needed to implement it. + + This option does not affect the public interface of any generated code; + all method signatures remain the same. Furthermore, thread-safety of the + interface is not affected by this option; const methods remain safe to + call from multiple threads concurrently, while non-const methods continue + to require exclusive access. + + Note that implementations may choose not to check required fields within + a lazy sub-message. That is, calling IsInitialized() on the outer message + may return true even if the inner message has missing required fields. + This is necessary because otherwise the inner message would have to be + parsed in order to perform the check, defeating the purpose of lazy + parsing. An implementation which chooses not to check required fields + must be consistent about it. That is, for any particular sub-message, the + implementation must either *always* check its required fields, or *never* + check its required fields, regardless of whether or not the message has + been parsed. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.Deprecated"> + <summary> + Is this field deprecated? + Depending on the target platform, this can emit Deprecated annotations + for accessors, or it will be completely ignored; in the very least, this + is a formalization for deprecating fields. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.WeakFieldNumber"> + <summary>Field number for the "weak" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.Weak"> + <summary> + For Google-internal migration only. Do not use. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FieldOptions.Types"> + <summary>Container for nested types declared in the FieldOptions message type.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.Types.CType.String"> + <summary> + Default mode. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.Types.JSType.JsNormal"> + <summary> + Use the default type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.Types.JSType.JsString"> + <summary> + Use JavaScript strings. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldOptions.Types.JSType.JsNumber"> + <summary> + Use JavaScript numbers. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.OneofOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.OneofOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumOptions.AllowAliasFieldNumber"> + <summary>Field number for the "allow_alias" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumOptions.AllowAlias"> + <summary> + Set this option to true to allow mapping different tag names to the same + value. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumOptions.Deprecated"> + <summary> + Is this enum deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the enum, or it will be completely ignored; in the very least, this + is a formalization for deprecating enums. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumValueOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumValueOptions.Deprecated"> + <summary> + Is this enum value deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the enum value, or it will be completely ignored; in the very least, + this is a formalization for deprecating enum values. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.EnumValueOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumValueOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.ServiceOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.ServiceOptions.Deprecated"> + <summary> + Is this service deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the service, or it will be completely ignored; in the very least, + this is a formalization for deprecating services. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.ServiceOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.ServiceOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodOptions.DeprecatedFieldNumber"> + <summary>Field number for the "deprecated" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodOptions.Deprecated"> + <summary> + Is this method deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the method, or it will be completely ignored; in the very least, + this is a formalization for deprecating methods. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodOptions.IdempotencyLevelFieldNumber"> + <summary>Field number for the "idempotency_level" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodOptions.UninterpretedOptionFieldNumber"> + <summary>Field number for the "uninterpreted_option" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodOptions.UninterpretedOption"> + <summary> + The parser stores options it doesn't recognize here. See above. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.MethodOptions.Types"> + <summary>Container for nested types declared in the MethodOptions message type.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel"> + <summary> + Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + or neither? HTTP based RPC implementation may choose GET verb for safe + methods, and PUT verb for idempotent methods instead of the default POST. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel.NoSideEffects"> + <summary> + implies idempotent + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel.Idempotent"> + <summary> + idempotent, but may have side effects + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.UninterpretedOption"> + <summary> + A message representing a option the parser does not recognize. This only + appears in options protos created by the compiler::Parser class. + DescriptorPool resolves these when building Descriptor objects. Therefore, + options protos in descriptor objects (e.g. returned by Descriptor::options(), + or produced by Descriptor::CopyTo()) will never have UninterpretedOptions + in them. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.IdentifierValueFieldNumber"> + <summary>Field number for the "identifier_value" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.UninterpretedOption.IdentifierValue"> + <summary> + The value of the uninterpreted option, in whatever type the tokenizer + identified it as during parsing. Exactly one of these should be set. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.PositiveIntValueFieldNumber"> + <summary>Field number for the "positive_int_value" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.NegativeIntValueFieldNumber"> + <summary>Field number for the "negative_int_value" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.DoubleValueFieldNumber"> + <summary>Field number for the "double_value" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.StringValueFieldNumber"> + <summary>Field number for the "string_value" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.AggregateValueFieldNumber"> + <summary>Field number for the "aggregate_value" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.UninterpretedOption.Types"> + <summary>Container for nested types declared in the UninterpretedOption message type.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart"> + <summary> + The name of the uninterpreted option. Each string represents a segment in + a dot-separated name. is_extension is true iff a segment represents an + extension (denoted with parentheses in options specs in .proto files). + E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents + "foo.(bar.baz).qux". + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart.NamePart_FieldNumber"> + <summary>Field number for the "name_part" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart.IsExtensionFieldNumber"> + <summary>Field number for the "is_extension" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.SourceCodeInfo"> + <summary> + Encapsulates information about the original source file from which a + FileDescriptorProto was generated. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.SourceCodeInfo.LocationFieldNumber"> + <summary>Field number for the "location" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.SourceCodeInfo.Location"> + <summary> + A Location identifies a piece of source code in a .proto file which + corresponds to a particular definition. This information is intended + to be useful to IDEs, code indexers, documentation generators, and similar + tools. + + For example, say we have a file like: + message Foo { + optional string foo = 1; + } + Let's look at just the field definition: + optional string foo = 1; + ^ ^^ ^^ ^ ^^^ + a bc de f ghi + We have the following locations: + span path represents + [a,i) [ 4, 0, 2, 0 ] The whole field definition. + [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + + Notes: + - A location may refer to a repeated field itself (i.e. not to any + particular index within it). This is used whenever a set of elements are + logically enclosed in a single code segment. For example, an entire + extend block (possibly containing multiple extension definitions) will + have an outer location whose path refers to the "extensions" repeated + field without an index. + - Multiple locations may have the same path. This happens when a single + logical declaration is spread out across multiple places. The most + obvious example is the "extend" block again -- there may be multiple + extend blocks in the same scope, each of which will have the same path. + - A location's span is not always a subset of its parent's span. For + example, the "extendee" of an extension declaration appears at the + beginning of the "extend" block and is shared by all extensions within + the block. + - Just because a location's span is a subset of some other location's span + does not mean that it is a descendent. For example, a "group" defines + both a type and a field in a single declaration. Thus, the locations + corresponding to the type and field and their components will overlap. + - Code which tries to interpret locations should probably be designed to + ignore those that it doesn't understand, as more types of locations could + be recorded in the future. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.SourceCodeInfo.Types"> + <summary>Container for nested types declared in the SourceCodeInfo message type.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.PathFieldNumber"> + <summary>Field number for the "path" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.Path"> + <summary> + Identifies which part of the FileDescriptorProto was defined at this + location. + + Each element is a field number or an index. They form a path from + the root FileDescriptorProto to the place where the definition. For + example, this path: + [ 4, 3, 2, 7, 1 ] + refers to: + file.message_type(3) // 4, 3 + .field(7) // 2, 7 + .name() // 1 + This is because FileDescriptorProto.message_type has field number 4: + repeated DescriptorProto message_type = 4; + and DescriptorProto.field has field number 2: + repeated FieldDescriptorProto field = 2; + and FieldDescriptorProto.name has field number 1: + optional string name = 1; + + Thus, the above path gives the location of a field name. If we removed + the last element: + [ 4, 3, 2, 7 ] + this path refers to the whole field declaration (from the beginning + of the label to the terminating semicolon). + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.SpanFieldNumber"> + <summary>Field number for the "span" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.Span"> + <summary> + Always has exactly three or four elements: start line, start column, + end line (optional, otherwise assumed same as start line), end column. + These are packed into a single field for efficiency. Note that line + and column numbers are zero-based -- typically you will want to add + 1 to each before displaying to a user. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.LeadingCommentsFieldNumber"> + <summary>Field number for the "leading_comments" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.LeadingComments"> + <summary> + If this SourceCodeInfo represents a complete declaration, these are any + comments appearing before and after the declaration which appear to be + attached to the declaration. + + A series of line comments appearing on consecutive lines, with no other + tokens appearing on those lines, will be treated as a single comment. + + leading_detached_comments will keep paragraphs of comments that appear + before (but not connected to) the current element. Each paragraph, + separated by empty lines, will be one comment element in the repeated + field. + + Only the comment content is provided; comment markers (e.g. //) are + stripped out. For block comments, leading whitespace and an asterisk + will be stripped from the beginning of each line other than the first. + Newlines are included in the output. + + Examples: + + optional int32 foo = 1; // Comment attached to foo. + // Comment attached to bar. + optional int32 bar = 2; + + optional string baz = 3; + // Comment attached to baz. + // Another line attached to baz. + + // Comment attached to qux. + // + // Another line attached to qux. + optional double qux = 4; + + // Detached comment for corge. This is not leading or trailing comments + // to qux or corge because there are blank lines separating it from + // both. + + // Detached comment for corge paragraph 2. + + optional string corge = 5; + /* Block comment attached + * to corge. Leading asterisks + * will be removed. */ + /* Block comment attached to + * grault. */ + optional int32 grault = 6; + + // ignored detached comments. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.TrailingCommentsFieldNumber"> + <summary>Field number for the "trailing_comments" field.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.LeadingDetachedCommentsFieldNumber"> + <summary>Field number for the "leading_detached_comments" field.</summary> + </member> + <member name="T:Google.Protobuf.Reflection.GeneratedCodeInfo"> + <summary> + Describes the relationship between generated code and its original source + file. A GeneratedCodeInfo message is associated with only one generated + source file, but may contain references to different source .proto files. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.GeneratedCodeInfo.AnnotationFieldNumber"> + <summary>Field number for the "annotation" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedCodeInfo.Annotation"> + <summary> + An Annotation connects some span of text in generated code to an element + of its generating .proto file. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.GeneratedCodeInfo.Types"> + <summary>Container for nested types declared in the GeneratedCodeInfo message type.</summary> + </member> + <member name="F:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.PathFieldNumber"> + <summary>Field number for the "path" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.Path"> + <summary> + Identifies the element in the original source .proto file. This field + is formatted the same as SourceCodeInfo.Location.path. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.SourceFileFieldNumber"> + <summary>Field number for the "source_file" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.SourceFile"> + <summary> + Identifies the filesystem path to the original source .proto. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.BeginFieldNumber"> + <summary>Field number for the "begin" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.Begin"> + <summary> + Identifies the starting offset in bytes in the generated code + that relates to the identified object. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.EndFieldNumber"> + <summary>Field number for the "end" field.</summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.End"> + <summary> + Identifies the ending offset in bytes in the generated code that + relates to the identified offset. The end offset should be one past + the last relevant byte (so the length of the text = end - begin). + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorBase"> + <summary> + Base class for nearly all descriptors, providing common functionality. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorBase.Index"> + <value> + The index of this descriptor within its parent descriptor. + </value> + <remarks> + This returns the index of this descriptor within its parent, for + this descriptor's type. (There can be duplicate values for different + types, e.g. one enum type with index 0 and one message type with index 0.) + </remarks> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorBase.Name"> + <summary> + Returns the name of the entity (field, message etc) being described. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorBase.FullName"> + <summary> + The fully qualified name of the descriptor's target. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorBase.File"> + <value> + The file this descriptor was declared in. + </value> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorPool"> + <summary> + Contains lookup tables containing all the descriptors defined in a particular file. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.FindSymbol``1(System.String)"> + <summary> + Finds a symbol of the given name within the pool. + </summary> + <typeparam name="T">The type of symbol to look for</typeparam> + <param name="fullName">Fully-qualified name to look up</param> + <returns>The symbol with the given name and type, + or null if the symbol doesn't exist or has the wrong type</returns> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.AddPackage(System.String,Google.Protobuf.Reflection.FileDescriptor)"> + <summary> + Adds a package to the symbol tables. If a package by the same name + already exists, that is fine, but if some other kind of symbol + exists under the same name, an exception is thrown. If the package + has multiple components, this also adds the parent package(s). + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.AddSymbol(Google.Protobuf.Reflection.IDescriptor)"> + <summary> + Adds a symbol to the symbol table. + </summary> + <exception cref="T:Google.Protobuf.Reflection.DescriptorValidationException">The symbol already existed + in the symbol table.</exception> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.ValidateSymbolName(Google.Protobuf.Reflection.IDescriptor)"> + <summary> + Verifies that the descriptor's name is valid (i.e. it contains + only letters, digits and underscores, and does not start with a digit). + </summary> + <param name="descriptor"></param> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.FindFieldByNumber(Google.Protobuf.Reflection.MessageDescriptor,System.Int32)"> + <summary> + Returns the field with the given number in the given descriptor, + or null if it can't be found. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.AddFieldByNumber(Google.Protobuf.Reflection.FieldDescriptor)"> + <summary> + Adds a field to the fieldsByNumber table. + </summary> + <exception cref="T:Google.Protobuf.Reflection.DescriptorValidationException">A field with the same + containing type and number already exists.</exception> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.AddEnumValueByNumber(Google.Protobuf.Reflection.EnumValueDescriptor)"> + <summary> + Adds an enum value to the enumValuesByNumber table. If an enum value + with the same type and number already exists, this method does nothing. + (This is allowed; the first value defined with the number takes precedence.) + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorPool.LookupSymbol(System.String,Google.Protobuf.Reflection.IDescriptor)"> + <summary> + Looks up a descriptor by name, relative to some other descriptor. + The name may be fully-qualified (with a leading '.'), partially-qualified, + or unqualified. C++-like name lookup semantics are used to search for the + matching descriptor. + </summary> + <remarks> + This isn't heavily optimized, but it's only used during cross linking anyway. + If it starts being used more widely, we should look at performance more carefully. + </remarks> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorPool.DescriptorIntPair"> + <summary> + Struct used to hold the keys for the fieldByNumber table. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorUtil"> + <summary> + Internal class containing utility methods when working with descriptors. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorUtil.IndexedConverter`2"> + <summary> + Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert + arrays. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.DescriptorUtil.ConvertAndMakeReadOnly``2(System.Collections.Generic.IList{``0},Google.Protobuf.Reflection.DescriptorUtil.IndexedConverter{``0,``1})"> + <summary> + Converts the given array into a read-only list, applying the specified conversion to + each input element. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.DescriptorValidationException"> + <summary> + Thrown when building descriptors fails because the source DescriptorProtos + are not valid. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorValidationException.ProblemSymbolName"> + <value> + The full name of the descriptor where the error occurred. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.DescriptorValidationException.Description"> + <value> + A human-readable description of the error. (The Message property + is made up of the descriptor's name and this description.) + </value> + </member> + <member name="T:Google.Protobuf.Reflection.EnumDescriptor"> + <summary> + Descriptor for an enum type in a .proto file. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptor.Name"> + <summary> + The brief name of the descriptor's target. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptor.ClrType"> + <summary> + The CLR type for this enum. For generated code, this will be a CLR enum type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptor.ContainingType"> + <value> + If this is a nested type, get the outer descriptor, otherwise null. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptor.Values"> + <value> + An unmodifiable list of defined value descriptors for this enum. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.EnumDescriptor.FindValueByNumber(System.Int32)"> + <summary> + Finds an enum value by number. If multiple enum values have the + same number, this returns the first defined value with that number. + If there is no value for the given number, this returns <c>null</c>. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.EnumDescriptor.FindValueByName(System.String)"> + <summary> + Finds an enum value by name. + </summary> + <param name="name">The unqualified name of the value (e.g. "FOO").</param> + <returns>The value's descriptor, or null if not found.</returns> + </member> + <member name="P:Google.Protobuf.Reflection.EnumDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this enum. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.EnumValueDescriptor"> + <summary> + Descriptor for a single enum value within an enum in a .proto file. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumValueDescriptor.Name"> + <summary> + Returns the name of the enum value described by this object. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumValueDescriptor.Number"> + <summary> + Returns the number associated with this enum value. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumValueDescriptor.EnumDescriptor"> + <summary> + Returns the enum descriptor that this value is part of. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.EnumValueDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this enum value. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FieldAccessorBase"> + <summary> + Base class for field accessors. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FieldDescriptor"> + <summary> + Descriptor for a field or extension within a message in a .proto file. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.ContainingType"> + <summary> + Get the field's containing message type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.ContainingOneof"> + <summary> + Returns the oneof containing this field, or <c>null</c> if it is not part of a oneof. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.JsonName"> + <summary> + The effective JSON name for this field. This is usually the lower-camel-cased form of the field name, + but can be overridden using the <c>json_name</c> option in the .proto file. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.Name"> + <summary> + The brief name of the descriptor's target. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.Accessor"> + <summary> + Returns the accessor for this field. + </summary> + <remarks> + <para> + While a <see cref="T:Google.Protobuf.Reflection.FieldDescriptor"/> describes the field, it does not provide + any way of obtaining or changing the value of the field within a specific message; + that is the responsibility of the accessor. + </para> + <para> + The value returned by this property will be non-null for all regular fields. However, + if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. This is not represented in any + generated type, and the value of the map field itself is represented by a dictionary in the + reflection API. There are never instances of those "hidden" messages, so no accessor is provided + and this property will return null. + </para> + </remarks> + </member> + <member name="M:Google.Protobuf.Reflection.FieldDescriptor.GetFieldTypeFromProtoType(Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type)"> + <summary> + Maps a field type as included in the .proto file to a FieldType. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.IsRepeated"> + <summary> + Returns <c>true</c> if this field is a repeated field; <c>false</c> otherwise. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.IsMap"> + <summary> + Returns <c>true</c> if this field is a map field; <c>false</c> otherwise. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.IsPacked"> + <summary> + Returns <c>true</c> if this field is a packed, repeated field; <c>false</c> otherwise. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.FieldType"> + <summary> + Returns the type of the field. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.FieldNumber"> + <summary> + Returns the field number declared in the proto file. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.FieldDescriptor.CompareTo(Google.Protobuf.Reflection.FieldDescriptor)"> + <summary> + Compares this descriptor with another one, ordering in "canonical" order + which simply means ascending order by field number. <paramref name="other"/> + must be a field of the same type, i.e. the <see cref="P:Google.Protobuf.Reflection.FieldDescriptor.ContainingType"/> of + both fields must be the same. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.EnumType"> + <summary> + For enum fields, returns the field's type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.MessageType"> + <summary> + For embedded message and group fields, returns the field's type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FieldDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this field. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.FieldDescriptor.CrossLink"> + <summary> + Look up and cross-link all field types etc. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FieldType"> + <summary> + Enumeration of all the possible field types. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Double"> + <summary> + The <c>double</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Float"> + <summary> + The <c>float</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Int64"> + <summary> + The <c>int64</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.UInt64"> + <summary> + The <c>uint64</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Int32"> + <summary> + The <c>int32</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Fixed64"> + <summary> + The <c>fixed64</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Fixed32"> + <summary> + The <c>fixed32</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Bool"> + <summary> + The <c>bool</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.String"> + <summary> + The <c>string</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Group"> + <summary> + The field type used for groups (not supported in this implementation). + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Message"> + <summary> + The field type used for message fields. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Bytes"> + <summary> + The <c>bytes</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.UInt32"> + <summary> + The <c>uint32</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.SFixed32"> + <summary> + The <c>sfixed32</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.SFixed64"> + <summary> + The <c>sfixed64</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.SInt32"> + <summary> + The <c>sint32</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.SInt64"> + <summary> + The <c>sint64</c> field type. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.FieldType.Enum"> + <summary> + The field type used for enum fields. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.FileDescriptor"> + <summary> + Describes a .proto file, including everything defined within. + IDescriptor is implemented such that the File property returns this descriptor, + and the FullName is the same as the Name. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.ComputeFullName(Google.Protobuf.Reflection.MessageDescriptor,System.String)"> + <summary> + Computes the full name of a descriptor within this file, with an optional parent message. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.DeterminePublicDependencies(Google.Protobuf.Reflection.FileDescriptor,Google.Protobuf.Reflection.FileDescriptorProto,Google.Protobuf.Reflection.FileDescriptor[],System.Boolean)"> + <summary> + Extracts public dependencies from direct dependencies. This is a static method despite its + first parameter, as the value we're in the middle of constructing is only used for exceptions. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Proto"> + <value> + The descriptor in its protocol message representation. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Name"> + <value> + The file name. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Package"> + <summary> + The package as declared in the .proto file. This may or may not + be equivalent to the .NET namespace of the generated classes. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.MessageTypes"> + <value> + Unmodifiable list of top-level message types declared in this file. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.EnumTypes"> + <value> + Unmodifiable list of top-level enum types declared in this file. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Services"> + <value> + Unmodifiable list of top-level services declared in this file. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Dependencies"> + <value> + Unmodifiable list of this file's dependencies (imports). + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.PublicDependencies"> + <value> + Unmodifiable list of this file's public dependencies (public imports). + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.SerializedData"> + <value> + The original serialized binary form of this descriptor. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Google#Protobuf#Reflection#IDescriptor#FullName"> + <value> + Implementation of IDescriptor.FullName - just returns the same as Name. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.Google#Protobuf#Reflection#IDescriptor#File"> + <value> + Implementation of IDescriptor.File - just returns this descriptor. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.DescriptorPool"> + <value> + Pool containing symbol descriptors. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.FindTypeByName``1(System.String)"> + <summary> + Finds a type (message, enum, service or extension) in the file by name. Does not find nested types. + </summary> + <param name="name">The unqualified type name to look for.</param> + <typeparam name="T">The type of descriptor to look for</typeparam> + <returns>The type's descriptor, or null if not found.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.BuildFrom(Google.Protobuf.ByteString,Google.Protobuf.Reflection.FileDescriptorProto,Google.Protobuf.Reflection.FileDescriptor[],System.Boolean,Google.Protobuf.Reflection.GeneratedClrTypeInfo)"> + <summary> + Builds a FileDescriptor from its protocol buffer representation. + </summary> + <param name="descriptorData">The original serialized descriptor data. + We have only limited proto2 support, so serializing FileDescriptorProto + would not necessarily give us this.</param> + <param name="proto">The protocol message form of the FileDescriptor.</param> + <param name="dependencies">FileDescriptors corresponding to all of the + file's dependencies, in the exact order listed in the .proto file. May be null, + in which case it is treated as an empty array.</param> + <param name="allowUnknownDependencies">Whether unknown dependencies are ignored (true) or cause an exception to be thrown (false).</param> + <param name="generatedCodeInfo">Details about generated code, for the purposes of reflection.</param> + <exception cref="T:Google.Protobuf.Reflection.DescriptorValidationException">If <paramref name="proto"/> is not + a valid descriptor. This can occur for a number of reasons, such as a field + having an undefined type or because two messages were defined with the same name.</exception> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.FromGeneratedCode(System.Byte[],Google.Protobuf.Reflection.FileDescriptor[],Google.Protobuf.Reflection.GeneratedClrTypeInfo)"> + <summary> + Creates a descriptor for generated code. + </summary> + <remarks> + This method is only designed to be used by the results of generating code with protoc, + which creates the appropriate dependencies etc. It has to be public because the generated + code is "external", but should not be called directly by end users. + </remarks> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.ToString"> + <summary> + Returns a <see cref="T:System.String" /> that represents this instance. + </summary> + <returns> + A <see cref="T:System.String" /> that represents this instance. + </returns> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.DescriptorProtoFileDescriptor"> + <summary> + Returns the file descriptor for descriptor.proto. + </summary> + <remarks> + This is used for protos which take a direct dependency on <c>descriptor.proto</c>, typically for + annotations. While <c>descriptor.proto</c> is a proto2 file, it is built into the Google.Protobuf + runtime for reflection purposes. The messages are internal to the runtime as they would require + proto2 semantics for full support, but the file descriptor is available via this property. The + C# codegen in protoc automatically uses this property when it detects a dependency on <c>descriptor.proto</c>. + </remarks> + <value> + The file descriptor for <c>descriptor.proto</c>. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.FileDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this file. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.FileDescriptor.ForceReflectionInitialization``1"> + <summary> + Performs initialization for the given generic type argument. + </summary> + <remarks> + This method is present for the sake of AOT compilers. It allows code (whether handwritten or generated) + to make calls into the reflection machinery of this library to express an intention to use that type + reflectively (e.g. for JSON parsing and formatting). The call itself does almost nothing, but AOT compilers + attempting to determine which generic type arguments need to be handled will spot the code path and act + accordingly. + </remarks> + <typeparam name="T">The type to force initialization for.</typeparam> + </member> + <member name="T:Google.Protobuf.Reflection.GeneratedClrTypeInfo"> + <summary> + Extra information provided by generated code when initializing a message or file descriptor. + These are constructed as required, and are not long-lived. Hand-written code should + never need to use this type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedClrTypeInfo.ClrType"> + <summary> + Irrelevant for file descriptors; the CLR type for the message for message descriptors. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedClrTypeInfo.Parser"> + <summary> + Irrelevant for file descriptors; the parser for message descriptors. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedClrTypeInfo.PropertyNames"> + <summary> + Irrelevant for file descriptors; the CLR property names (in message descriptor field order) + for fields in the message for message descriptors. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedClrTypeInfo.OneofNames"> + <summary> + Irrelevant for file descriptors; the CLR property "base" names (in message descriptor oneof order) + for oneofs in the message for message descriptors. It is expected that for a oneof name of "Foo", + there will be a "FooCase" property and a "ClearFoo" method. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedClrTypeInfo.NestedTypes"> + <summary> + The reflection information for types within this file/message descriptor. Elements may be null + if there is no corresponding generated type, e.g. for map entry types. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.GeneratedClrTypeInfo.NestedEnums"> + <summary> + The CLR types for enums within this file/message descriptor. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.GeneratedClrTypeInfo.#ctor(System.Type,Google.Protobuf.MessageParser,System.String[],System.String[],System.Type[],Google.Protobuf.Reflection.GeneratedClrTypeInfo[])"> + <summary> + Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names. + Each array parameter may be null, to indicate a lack of values. + The parameter order is designed to make it feasible to format the generated code readably. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.GeneratedClrTypeInfo.#ctor(System.Type[],Google.Protobuf.Reflection.GeneratedClrTypeInfo[])"> + <summary> + Creates a GeneratedClrTypeInfo for a file descriptor, with only types and enums. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.IDescriptor"> + <summary> + Interface implemented by all descriptor types. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.IDescriptor.Name"> + <summary> + Returns the name of the entity (message, field etc) being described. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.IDescriptor.FullName"> + <summary> + Returns the fully-qualified name of the entity being described. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.IDescriptor.File"> + <summary> + Returns the descriptor for the .proto file that this entity is part of. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.IFieldAccessor"> + <summary> + Allows fields to be reflectively accessed. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.IFieldAccessor.Descriptor"> + <summary> + Returns the descriptor associated with this field. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.IFieldAccessor.Clear(Google.Protobuf.IMessage)"> + <summary> + Clears the field in the specified message. (For repeated fields, + this clears the list.) + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.IFieldAccessor.GetValue(Google.Protobuf.IMessage)"> + <summary> + Fetches the field value. For repeated values, this will be an + <see cref="T:System.Collections.IList"/> implementation. For map values, this will be an + <see cref="T:System.Collections.IDictionary"/> implementation. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.IFieldAccessor.SetValue(Google.Protobuf.IMessage,System.Object)"> + <summary> + Mutator for single "simple" fields only. + </summary> + <remarks> + Repeated fields are mutated by fetching the value and manipulating it as a list. + Map fields are mutated by fetching the value and manipulating it as a dictionary. + </remarks> + <exception cref="T:System.InvalidOperationException">The field is not a "simple" field.</exception> + </member> + <member name="T:Google.Protobuf.Reflection.MapFieldAccessor"> + <summary> + Accessor for map fields. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.MessageDescriptor"> + <summary> + Describes a message type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.Name"> + <summary> + The brief name of the descriptor's target. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.ClrType"> + <summary> + The CLR type used to represent message instances from this descriptor. + </summary> + <remarks> + <para> + The value returned by this property will be non-null for all regular fields. However, + if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. This is not represented in any + generated type, so this property will return null in such cases. + </para> + <para> + For wrapper types (<see cref="T:Google.Protobuf.WellKnownTypes.StringValue"/> and the like), the type returned here + will be the generated message type, not the native type used by reflection for fields of those types. Code + using reflection should call <see cref="P:Google.Protobuf.Reflection.MessageDescriptor.IsWrapperType"/> to determine whether a message descriptor represents + a wrapper type, and handle the result appropriately. + </para> + </remarks> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.Parser"> + <summary> + A parser for this message type. + </summary> + <remarks> + <para> + As <see cref="T:Google.Protobuf.Reflection.MessageDescriptor"/> is not generic, this cannot be statically + typed to the relevant type, but it should produce objects of a type compatible with <see cref="P:Google.Protobuf.Reflection.MessageDescriptor.ClrType"/>. + </para> + <para> + The value returned by this property will be non-null for all regular fields. However, + if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. No message parser object is created for + such messages, so this property will return null in such cases. + </para> + <para> + For wrapper types (<see cref="T:Google.Protobuf.WellKnownTypes.StringValue"/> and the like), the parser returned here + will be the generated message type, not the native type used by reflection for fields of those types. Code + using reflection should call <see cref="P:Google.Protobuf.Reflection.MessageDescriptor.IsWrapperType"/> to determine whether a message descriptor represents + a wrapper type, and handle the result appropriately. + </para> + </remarks> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.IsWellKnownType"> + <summary> + Returns whether this message is one of the "well known types" which may have runtime/protoc support. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.IsWrapperType"> + <summary> + Returns whether this message is one of the "wrapper types" used for fields which represent primitive values + with the addition of presence. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.ContainingType"> + <value> + If this is a nested type, get the outer descriptor, otherwise null. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.Fields"> + <value> + A collection of fields, which can be retrieved by name or field number. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.NestedTypes"> + <value> + An unmodifiable list of this message type's nested types. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.EnumTypes"> + <value> + An unmodifiable list of this message type's enum types. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.Oneofs"> + <value> + An unmodifiable list of the "oneof" field collections in this message type. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.FindFieldByName(System.String)"> + <summary> + Finds a field by field name. + </summary> + <param name="name">The unqualified name of the field (e.g. "foo").</param> + <returns>The field's descriptor, or null if not found.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.FindFieldByNumber(System.Int32)"> + <summary> + Finds a field by field number. + </summary> + <param name="number">The field number within this message type.</param> + <returns>The field's descriptor, or null if not found.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.FindDescriptor``1(System.String)"> + <summary> + Finds a nested descriptor by name. The is valid for fields, nested + message types, oneofs and enums. + </summary> + <param name="name">The unqualified name of the descriptor, e.g. "Foo"</param> + <returns>The descriptor, or null if not found.</returns> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this message. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.CrossLink"> + <summary> + Looks up and cross-links all fields and nested types. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection"> + <summary> + A collection to simplify retrieving the field accessor for a particular field. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection.InDeclarationOrder"> + <value> + Returns the fields in the message as an immutable list, in the order in which they + are declared in the source .proto file. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection.InFieldNumberOrder"> + <value> + Returns the fields in the message as an immutable list, in ascending field number + order. Field numbers need not be contiguous, so there is no direct mapping from the + index in the list to the field number; to retrieve a field by field number, it is better + to use the <see cref="T:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection"/> indexer. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection.ByJsonName"> + <value> + Returns a read-only dictionary mapping the field names in this message as they're available + in the JSON representation to the field descriptors. For example, a field <c>foo_bar</c> + in the message would result two entries, one with a key <c>fooBar</c> and one with a key + <c>foo_bar</c>, both referring to the same field. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection.Item(System.Int32)"> + <summary> + Retrieves the descriptor for the field with the given number. + </summary> + <param name="number">Number of the field to retrieve the descriptor for</param> + <returns>The accessor for the given field</returns> + <exception cref="T:System.Collections.Generic.KeyNotFoundException">The message descriptor does not contain a field + with the given number</exception> + </member> + <member name="P:Google.Protobuf.Reflection.MessageDescriptor.FieldCollection.Item(System.String)"> + <summary> + Retrieves the descriptor for the field with the given name. + </summary> + <param name="name">Name of the field to retrieve the descriptor for</param> + <returns>The descriptor for the given field</returns> + <exception cref="T:System.Collections.Generic.KeyNotFoundException">The message descriptor does not contain a field + with the given name</exception> + </member> + <member name="T:Google.Protobuf.Reflection.MethodDescriptor"> + <summary> + Describes a single method in a service. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.Service"> + <value> + The service this method belongs to. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.InputType"> + <value> + The method's input type. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.OutputType"> + <value> + The method's input type. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.IsClientStreaming"> + <value> + Indicates if client streams multiple requests. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.IsServerStreaming"> + <value> + Indicates if server streams multiple responses. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this method. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.MethodDescriptor.Name"> + <summary> + The brief name of the descriptor's target. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.OneofAccessor"> + <summary> + Reflection access for a oneof, allowing clear and "get case" actions. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.OneofAccessor.Descriptor"> + <summary> + Gets the descriptor for this oneof. + </summary> + <value> + The descriptor of the oneof. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.OneofAccessor.Clear(Google.Protobuf.IMessage)"> + <summary> + Clears the oneof in the specified message. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.OneofAccessor.GetCaseFieldDescriptor(Google.Protobuf.IMessage)"> + <summary> + Indicates which field in the oneof is set for specified message + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.OneofDescriptor"> + <summary> + Describes a "oneof" field collection in a message type: a set of + fields of which at most one can be set in any particular message. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.OneofDescriptor.Name"> + <summary> + The brief name of the descriptor's target. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.OneofDescriptor.ContainingType"> + <summary> + Gets the message type containing this oneof. + </summary> + <value> + The message type containing this oneof. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.OneofDescriptor.Fields"> + <summary> + Gets the fields within this oneof, in declaration order. + </summary> + <value> + The fields within this oneof, in declaration order. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.OneofDescriptor.Accessor"> + <summary> + Gets an accessor for reflective access to the values associated with the oneof + in a particular message. + </summary> + <value> + The accessor used for reflective access. + </value> + </member> + <member name="P:Google.Protobuf.Reflection.OneofDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this oneof. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.OriginalNameAttribute"> + <summary> + Specifies the original name (in the .proto file) of a named element, + such as an enum value. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.OriginalNameAttribute.Name"> + <summary> + The name of the element in the .proto file. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.OriginalNameAttribute.PreferredAlias"> + <summary> + If the name is preferred in the .proto file. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.OriginalNameAttribute.#ctor(System.String)"> + <summary> + Constructs a new attribute instance for the given name. + </summary> + <param name="name">The name of the element in the .proto file.</param> + </member> + <member name="T:Google.Protobuf.Reflection.PackageDescriptor"> + <summary> + Represents a package in the symbol table. We use PackageDescriptors + just as placeholders so that someone cannot define, say, a message type + that has the same name as an existing package. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.ReflectionUtil"> + <summary> + The methods in this class are somewhat evil, and should not be tampered with lightly. + Basically they allow the creation of relatively weakly typed delegates from MethodInfos + which are more strongly typed. They do this by creating an appropriate strongly typed + delegate from the MethodInfo, and then calling that within an anonymous method. + Mind-bending stuff (at least to your humble narrator) but the resulting delegates are + very fast compared with calling Invoke later on. + </summary> + </member> + <member name="F:Google.Protobuf.Reflection.ReflectionUtil.EmptyTypes"> + <summary> + Empty Type[] used when calling GetProperty to force property instead of indexer fetching. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.ReflectionUtil.CreateFuncIMessageObject(System.Reflection.MethodInfo)"> + <summary> + Creates a delegate which will cast the argument to the type that declares the method, + call the method on it, then convert the result to object. + </summary> + <param name="method">The method to create a delegate for, which must be declared in an IMessage + implementation.</param> + </member> + <member name="M:Google.Protobuf.Reflection.ReflectionUtil.CreateFuncIMessageInt32(System.Reflection.MethodInfo)"> + <summary> + Creates a delegate which will cast the argument to the type that declares the method, + call the method on it, then convert the result to the specified type. The method is expected + to actually return an enum (because of where we're calling it - for oneof cases). Sometimes that + means we need some extra work to perform conversions. + </summary> + <param name="method">The method to create a delegate for, which must be declared in an IMessage + implementation.</param> + </member> + <member name="M:Google.Protobuf.Reflection.ReflectionUtil.CreateActionIMessageObject(System.Reflection.MethodInfo)"> + <summary> + Creates a delegate which will execute the given method after casting the first argument to + the type that declares the method, and the second argument to the first parameter type of the method. + </summary> + <param name="method">The method to create a delegate for, which must be declared in an IMessage + implementation.</param> + </member> + <member name="M:Google.Protobuf.Reflection.ReflectionUtil.CreateActionIMessage(System.Reflection.MethodInfo)"> + <summary> + Creates a delegate which will execute the given method after casting the first argument to + type that declares the method. + </summary> + <param name="method">The method to create a delegate for, which must be declared in an IMessage + implementation.</param> + </member> + <member name="M:Google.Protobuf.Reflection.ReflectionUtil.GetReflectionHelper(System.Type,System.Type)"> + <summary> + Creates a reflection helper for the given type arguments. Currently these are created on demand + rather than cached; this will be "busy" when initially loading a message's descriptor, but after that + they can be garbage collected. We could cache them by type if that proves to be important, but creating + an object is pretty cheap. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.RepeatedFieldAccessor"> + <summary> + Accessor for repeated fields. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.ServiceDescriptor"> + <summary> + Describes a service type. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.ServiceDescriptor.Name"> + <summary> + The brief name of the descriptor's target. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.ServiceDescriptor.Methods"> + <value> + An unmodifiable list of methods in this service. + </value> + </member> + <member name="M:Google.Protobuf.Reflection.ServiceDescriptor.FindMethodByName(System.String)"> + <summary> + Finds a method by name. + </summary> + <param name="name">The unqualified name of the method (e.g. "Foo").</param> + <returns>The method's decsriptor, or null if not found.</returns> + </member> + <member name="P:Google.Protobuf.Reflection.ServiceDescriptor.CustomOptions"> + <summary> + The (possibly empty) set of custom options for this service. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.SingleFieldAccessor"> + <summary> + Accessor for single fields. + </summary> + </member> + <member name="T:Google.Protobuf.Reflection.TypeRegistry"> + <summary> + An immutable registry of types which can be looked up by their full name. + </summary> + </member> + <member name="P:Google.Protobuf.Reflection.TypeRegistry.Empty"> + <summary> + An empty type registry, containing no types. + </summary> + </member> + <member name="M:Google.Protobuf.Reflection.TypeRegistry.Find(System.String)"> + <summary> + Attempts to find a message descriptor by its full name. + </summary> + <param name="fullName">The full name of the message, which is the dot-separated + combination of package, containing messages and message name</param> + <returns>The message descriptor corresponding to <paramref name="fullName"/> or null + if there is no such message descriptor.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.TypeRegistry.FromFiles(Google.Protobuf.Reflection.FileDescriptor[])"> + <summary> + Creates a type registry from the specified set of file descriptors. + </summary> + <remarks> + This is a convenience overload for <see cref="M:Google.Protobuf.Reflection.TypeRegistry.FromFiles(System.Collections.Generic.IEnumerable{Google.Protobuf.Reflection.FileDescriptor})"/> + to allow calls such as <c>TypeRegistry.FromFiles(descriptor1, descriptor2)</c>. + </remarks> + <param name="fileDescriptors">The set of files to include in the registry. Must not contain null values.</param> + <returns>A type registry for the given files.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.TypeRegistry.FromFiles(System.Collections.Generic.IEnumerable{Google.Protobuf.Reflection.FileDescriptor})"> + <summary> + Creates a type registry from the specified set of file descriptors. + </summary> + <remarks> + All message types within all the specified files are added to the registry, and + the dependencies of the specified files are also added, recursively. + </remarks> + <param name="fileDescriptors">The set of files to include in the registry. Must not contain null values.</param> + <returns>A type registry for the given files.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.TypeRegistry.FromMessages(Google.Protobuf.Reflection.MessageDescriptor[])"> + <summary> + Creates a type registry from the file descriptor parents of the specified set of message descriptors. + </summary> + <remarks> + This is a convenience overload for <see cref="M:Google.Protobuf.Reflection.TypeRegistry.FromMessages(System.Collections.Generic.IEnumerable{Google.Protobuf.Reflection.MessageDescriptor})"/> + to allow calls such as <c>TypeRegistry.FromFiles(descriptor1, descriptor2)</c>. + </remarks> + <param name="messageDescriptors">The set of message descriptors to use to identify file descriptors to include in the registry. + Must not contain null values.</param> + <returns>A type registry for the given files.</returns> + </member> + <member name="M:Google.Protobuf.Reflection.TypeRegistry.FromMessages(System.Collections.Generic.IEnumerable{Google.Protobuf.Reflection.MessageDescriptor})"> + <summary> + Creates a type registry from the file descriptor parents of the specified set of message descriptors. + </summary> + <remarks> + The specified message descriptors are only used to identify their file descriptors; the returned registry + contains all the types within the file descriptors which contain the specified message descriptors (and + the dependencies of those files), not just the specified messages. + </remarks> + <param name="messageDescriptors">The set of message descriptors to use to identify file descriptors to include in the registry. + Must not contain null values.</param> + <returns>A type registry for the given files.</returns> + </member> + <member name="T:Google.Protobuf.Reflection.TypeRegistry.Builder"> + <summary> + Builder class which isn't exposed, but acts as a convenient alternative to passing round two dictionaries in recursive calls. + </summary> + </member> + <member name="T:Google.Protobuf.UnknownField"> + <summary> + Represents a single field in an UnknownFieldSet. + + An UnknownField consists of four lists of values. The lists correspond + to the four "wire types" used in the protocol buffer binary format. + Normally, only one of the four lists will contain any values, since it + is impossible to define a valid message type that declares two different + types for the same field number. However, the code is designed to allow + for the case where the same unknown field number is encountered using + multiple different wire types. + + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.#ctor"> + <summary> + Creates a new UnknownField. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.Equals(System.Object)"> + <summary> + Checks if two unknown field are equal. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.GetHashCode"> + <summary> + Get the hash code of the unknown field. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.WriteTo(System.Int32,Google.Protobuf.CodedOutputStream)"> + <summary> + Serializes the field, including the field number, and writes it to + <paramref name="output"/> + </summary> + <param name="fieldNumber">The unknown field number.</param> + <param name="output">The CodedOutputStream to write to.</param> + </member> + <member name="M:Google.Protobuf.UnknownField.GetSerializedSize(System.Int32)"> + <summary> + Computes the number of bytes required to encode this field, including field + number. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.MergeFrom(Google.Protobuf.UnknownField)"> + <summary> + Merge the values in <paramref name="other" /> into this field. For each list + of values, <paramref name="other"/>'s values are append to the ones in this + field. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.AddAll``1(System.Collections.Generic.List{``0},System.Collections.Generic.IList{``0})"> + <summary> + Returns a new list containing all of the given specified values from + both the <paramref name="current"/> and <paramref name="extras"/> lists. + If <paramref name="current" /> is null and <paramref name="extras"/> is empty, + null is returned. Otherwise, either a new list is created (if <paramref name="current" /> + is null) or the elements of <paramref name="extras"/> are added to <paramref name="current" />. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.AddVarint(System.UInt64)"> + <summary> + Adds a varint value. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.AddFixed32(System.UInt32)"> + <summary> + Adds a fixed32 value. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.AddFixed64(System.UInt64)"> + <summary> + Adds a fixed64 value. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.AddLengthDelimited(Google.Protobuf.ByteString)"> + <summary> + Adds a length-delimited value. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownField.Add``1(System.Collections.Generic.List{``0},``0)"> + <summary> + Adds <paramref name="value"/> to the <paramref name="list"/>, creating + a new list if <paramref name="list"/> is null. The list is returned - either + the original reference or the new list. + </summary> + </member> + <member name="T:Google.Protobuf.UnknownFieldSet"> + <summary> + Used to keep track of fields which were seen when parsing a protocol message + but whose field numbers or types are unrecognized. This most frequently + occurs when new fields are added to a message type and then messages containing + those fields are read by old software that was built before the new types were + added. + + Most users will never need to use this class directly. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.#ctor"> + <summary> + Creates a new UnknownFieldSet. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.HasField(System.Int32)"> + <summary> + Checks whether or not the given field number is present in the set. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.WriteTo(Google.Protobuf.CodedOutputStream)"> + <summary> + Serializes the set and writes it to <paramref name="output"/>. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.CalculateSize"> + <summary> + Gets the number of bytes required to encode this set. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.Equals(System.Object)"> + <summary> + Checks if two unknown field sets are equal. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.GetHashCode"> + <summary> + Gets the unknown field set's hash code. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.AddOrReplaceField(System.Int32,Google.Protobuf.UnknownField)"> + <summary> + Adds a field to the set. If a field with the same number already exists, it + is replaced. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.MergeFieldFrom(Google.Protobuf.CodedInputStream)"> + <summary> + Parse a single field from <paramref name="input"/> and merge it + into this set. + </summary> + <param name="input">The coded input stream containing the field</param> + <returns>false if the tag is an "end group" tag, true otherwise</returns> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.MergeFieldFrom(Google.Protobuf.UnknownFieldSet,Google.Protobuf.CodedInputStream)"> + <summary> + Create a new UnknownFieldSet if unknownFields is null. + Parse a single field from <paramref name="input"/> and merge it + into unknownFields. If <paramref name="input"/> is configured to discard unknown fields, + <paramref name="unknownFields"/> will be returned as-is and the field will be skipped. + </summary> + <param name="unknownFields">The UnknownFieldSet which need to be merged</param> + <param name="input">The coded input stream containing the field</param> + <returns>The merged UnknownFieldSet</returns> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.MergeFrom(Google.Protobuf.UnknownFieldSet)"> + <summary> + Merges the fields from <paramref name="other"/> into this set. + If a field number exists in both sets, the values in <paramref name="other"/> + will be appended to the values in this set. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.MergeFrom(Google.Protobuf.UnknownFieldSet,Google.Protobuf.UnknownFieldSet)"> + <summary> + Created a new UnknownFieldSet to <paramref name="unknownFields"/> if + needed and merges the fields from <paramref name="other"/> into the first set. + If a field number exists in both sets, the values in <paramref name="other"/> + will be appended to the values in this set. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.MergeField(System.Int32,Google.Protobuf.UnknownField)"> + <summary> + Adds a field to the unknown field set. If a field with the same + number already exists, the two are merged. + </summary> + </member> + <member name="M:Google.Protobuf.UnknownFieldSet.Clone(Google.Protobuf.UnknownFieldSet)"> + <summary> + Clone an unknown field set from <paramref name="other"/>. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.AnyReflection"> + <summary>Holder for reflection information generated from google/protobuf/any.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.AnyReflection.Descriptor"> + <summary>File descriptor for google/protobuf/any.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Any"> + <summary> + `Any` contains an arbitrary serialized protocol buffer message along with a + URL that describes the type of the serialized message. + + Protobuf library provides support to pack/unpack Any values in the form + of utility functions or additional generated methods of the Any type. + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := ptypes.MarshalAny(foo) + ... + foo := &pb.Foo{} + if err := ptypes.UnmarshalAny(any, foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + 'type.googleapis.com/full.type.name' as the type URL and the unpack + methods only use the fully qualified type name after the last '/' + in the type URL, for example "foo.bar.com/x/y.z" will yield type + name "y.z". + + JSON + ==== + The JSON representation of an `Any` value uses the regular + representation of the deserialized, embedded message, with an + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": <string>, + "lastName": <string> + } + + If the embedded message type is well-known and has a custom JSON + representation, that representation will be embedded adding a field + `value` which holds the custom JSON in addition to the `@type` + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Any.TypeUrlFieldNumber"> + <summary>Field number for the "type_url" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Any.TypeUrl"> + <summary> + A URL/resource name that uniquely identifies the type of the serialized + protocol buffer message. The last segment of the URL's path must represent + the fully qualified name of the type (as in + `path/google.protobuf.Duration`). The name should be in a canonical form + (e.g., leading "." is not accepted). + + In practice, teams usually precompile into the binary all types that they + expect it to use in the context of Any. However, for URLs which use the + scheme `http`, `https`, or no scheme, one can optionally set up a type + server that maps type URLs to message definitions as follows: + + * If no scheme is provided, `https` is assumed. + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the official + protobuf release, and it is not used for type URLs beginning with + type.googleapis.com. + + Schemes other than `http`, `https` (or the empty scheme) might be + used with implementation specific semantics. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Any.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Any.Value"> + <summary> + Must be a valid serialized protocol buffer of the above specified type. + </summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Any.GetTypeName(System.String)"> + <summary> + Retrieves the type name for a type URL, matching the <see cref="P:Google.Protobuf.Reflection.DescriptorBase.FullName"/> + of the packed message type. + </summary> + <remarks> + <para> + This is always just the last part of the URL, after the final slash. No validation of + anything before the trailing slash is performed. If the type URL does not include a slash, + an empty string is returned rather than an exception being thrown; this won't match any types, + and the calling code is probably in a better position to give a meaningful error. + </para> + <para> + There is no handling of fragments or queries at the moment. + </para> + </remarks> + <param name="typeUrl">The URL to extract the type name from</param> + <returns>The type name</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Any.Unpack``1"> + <summary> + Unpacks the content of this Any message into the target message type, + which must match the type URL within this Any message. + </summary> + <typeparam name="T">The type of message to unpack the content into.</typeparam> + <returns>The unpacked message.</returns> + <exception cref="T:Google.Protobuf.InvalidProtocolBufferException">The target message type doesn't match the type URL in this message</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Any.TryUnpack``1(``0@)"> + <summary> + Attempts to unpack the content of this Any message into the target message type, + if it matches the type URL within this Any message. + </summary> + <typeparam name="T">The type of message to attempt to unpack the content into.</typeparam> + <returns><c>true</c> if the message was successfully unpacked; <c>false</c> if the type name didn't match</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Any.Pack(Google.Protobuf.IMessage)"> + <summary> + Packs the specified message into an Any message using a type URL prefix of "type.googleapis.com". + </summary> + <param name="message">The message to pack.</param> + <returns>An Any message with the content and type URL of <paramref name="message"/>.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Any.Pack(Google.Protobuf.IMessage,System.String)"> + <summary> + Packs the specified message into an Any message using the specified type URL prefix. + </summary> + <param name="message">The message to pack.</param> + <param name="typeUrlPrefix">The prefix for the type URL.</param> + <returns>An Any message with the content and type URL of <paramref name="message"/>.</returns> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.ApiReflection"> + <summary>Holder for reflection information generated from google/protobuf/api.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.ApiReflection.Descriptor"> + <summary>File descriptor for google/protobuf/api.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Api"> + <summary> + Api is a light-weight descriptor for an API Interface. + + Interfaces are also described as "protocol buffer services" in some contexts, + such as by the "service" keyword in a .proto file, but they are different + from API Services, which represent a concrete implementation of an interface + as opposed to simply a description of methods and bindings. They are also + sometimes simply referred to as "APIs" in other contexts, such as the name of + this message itself. See https://cloud.google.com/apis/design/glossary for + detailed terminology. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.Name"> + <summary> + The fully qualified name of this interface, including package name + followed by the interface's simple name. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.MethodsFieldNumber"> + <summary>Field number for the "methods" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.Methods"> + <summary> + The methods of this interface, in unspecified order. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.Options"> + <summary> + Any metadata attached to the interface. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.VersionFieldNumber"> + <summary>Field number for the "version" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.Version"> + <summary> + A version string for this interface. If specified, must have the form + `major-version.minor-version`, as in `1.10`. If the minor version is + omitted, it defaults to zero. If the entire version field is empty, the + major version is derived from the package name, as outlined below. If the + field is not empty, the version in the package name will be verified to be + consistent with what is provided here. + + The versioning schema uses [semantic + versioning](http://semver.org) where the major version number + indicates a breaking change and the minor version an additive, + non-breaking change. Both version numbers are signals to users + what to expect from different versions, and should be carefully + chosen based on the product plan. + + The major version is also reflected in the package name of the + interface, which must end in `v<major-version>`, as in + `google.feature.v1`. For major versions 0 and 1, the suffix can + be omitted. Zero major versions must only be used for + experimental, non-GA interfaces. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.SourceContextFieldNumber"> + <summary>Field number for the "source_context" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.SourceContext"> + <summary> + Source context for the protocol buffer service represented by this + message. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.MixinsFieldNumber"> + <summary>Field number for the "mixins" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.Mixins"> + <summary> + Included interfaces. See [Mixin][]. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Api.SyntaxFieldNumber"> + <summary>Field number for the "syntax" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Api.Syntax"> + <summary> + The source syntax of the service. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Method"> + <summary> + Method represents a method of an API interface. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.Name"> + <summary> + The simple name of this method. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.RequestTypeUrlFieldNumber"> + <summary>Field number for the "request_type_url" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.RequestTypeUrl"> + <summary> + A URL of the input message type. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.RequestStreamingFieldNumber"> + <summary>Field number for the "request_streaming" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.RequestStreaming"> + <summary> + If true, the request is streamed. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.ResponseTypeUrlFieldNumber"> + <summary>Field number for the "response_type_url" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.ResponseTypeUrl"> + <summary> + The URL of the output message type. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.ResponseStreamingFieldNumber"> + <summary>Field number for the "response_streaming" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.ResponseStreaming"> + <summary> + If true, the response is streamed. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.Options"> + <summary> + Any metadata attached to the method. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Method.SyntaxFieldNumber"> + <summary>Field number for the "syntax" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Method.Syntax"> + <summary> + The source syntax of this method. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Mixin"> + <summary> + Declares an API Interface to be included in this interface. The including + interface must redeclare all the methods from the included interface, but + documentation and options are inherited as follows: + + - If after comment and whitespace stripping, the documentation + string of the redeclared method is empty, it will be inherited + from the original method. + + - Each annotation belonging to the service config (http, + visibility) which is not set in the redeclared method will be + inherited. + + - If an http annotation is inherited, the path pattern will be + modified as follows. Any version prefix will be replaced by the + version of the including interface plus the [root][] path if + specified. + + Example of a simple mixin: + + package google.acl.v1; + service AccessControl { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v1/{resource=**}:getAcl"; + } + } + + package google.storage.v2; + service Storage { + rpc GetAcl(GetAclRequest) returns (Acl); + + // Get a data record. + rpc GetData(GetDataRequest) returns (Data) { + option (google.api.http).get = "/v2/{resource=**}"; + } + } + + Example of a mixin configuration: + + apis: + - name: google.storage.v2.Storage + mixins: + - name: google.acl.v1.AccessControl + + The mixin construct implies that all methods in `AccessControl` are + also declared with same name and request/response types in + `Storage`. A documentation generator or annotation processor will + see the effective `Storage.GetAcl` method after inherting + documentation and annotations as follows: + + service Storage { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v2/{resource=**}:getAcl"; + } + ... + } + + Note how the version in the path pattern changed from `v1` to `v2`. + + If the `root` field in the mixin is specified, it should be a + relative path under which inherited HTTP paths are placed. Example: + + apis: + - name: google.storage.v2.Storage + mixins: + - name: google.acl.v1.AccessControl + root: acls + + This implies the following inherited HTTP annotation: + + service Storage { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; + } + ... + } + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Mixin.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Mixin.Name"> + <summary> + The fully qualified name of the interface which is included. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Mixin.RootFieldNumber"> + <summary>Field number for the "root" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Mixin.Root"> + <summary> + If non-empty specifies a path under which inherited HTTP paths + are rooted. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.DurationReflection"> + <summary>Holder for reflection information generated from google/protobuf/duration.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor"> + <summary>File descriptor for google/protobuf/duration.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Duration"> + <summary> + A Duration represents a signed, fixed-length span of time represented + as a count of seconds and fractions of seconds at nanosecond + resolution. It is independent of any calendar and concepts like "day" + or "month". It is related to Timestamp in that the difference between + two Timestamp values is a Duration and it can be added or subtracted + from a Timestamp. Range is approximately +-10,000 years. + + # Examples + + Example 1: Compute Duration from two Timestamps in pseudo code. + + Timestamp start = ...; + Timestamp end = ...; + Duration duration = ...; + + duration.seconds = end.seconds - start.seconds; + duration.nanos = end.nanos - start.nanos; + + if (duration.seconds < 0 && duration.nanos > 0) { + duration.seconds += 1; + duration.nanos -= 1000000000; + } else if (durations.seconds > 0 && duration.nanos < 0) { + duration.seconds -= 1; + duration.nanos += 1000000000; + } + + Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. + + Timestamp start = ...; + Duration duration = ...; + Timestamp end = ...; + + end.seconds = start.seconds + duration.seconds; + end.nanos = start.nanos + duration.nanos; + + if (end.nanos < 0) { + end.seconds -= 1; + end.nanos += 1000000000; + } else if (end.nanos >= 1000000000) { + end.seconds += 1; + end.nanos -= 1000000000; + } + + Example 3: Compute Duration from datetime.timedelta in Python. + + td = datetime.timedelta(days=3, minutes=10) + duration = Duration() + duration.FromTimedelta(td) + + # JSON Mapping + + In JSON format, the Duration type is encoded as a string rather than an + object, where the string ends in the suffix "s" (indicating seconds) and + is preceded by the number of seconds, with nanoseconds expressed as + fractional seconds. For example, 3 seconds with 0 nanoseconds should be + encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should + be expressed in JSON format as "3.000000001s", and 3 seconds and 1 + microsecond should be expressed in JSON format as "3.000001s". + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Duration.SecondsFieldNumber"> + <summary>Field number for the "seconds" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Duration.Seconds"> + <summary> + Signed seconds of the span of time. Must be from -315,576,000,000 + to +315,576,000,000 inclusive. Note: these bounds are computed from: + 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Duration.NanosFieldNumber"> + <summary>Field number for the "nanos" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Duration.Nanos"> + <summary> + Signed fractions of a second at nanosecond resolution of the span + of time. Durations less than one second are represented with a 0 + `seconds` field and a positive or negative `nanos` field. For durations + of one second or more, a non-zero value for the `nanos` field must be + of the same sign as the `seconds` field. Must be from -999,999,999 + to +999,999,999 inclusive. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Duration.NanosecondsPerSecond"> + <summary> + The number of nanoseconds in a second. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Duration.NanosecondsPerTick"> + <summary> + The number of nanoseconds in a BCL tick (as used by <see cref="T:System.TimeSpan"/> and <see cref="T:System.DateTime"/>). + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Duration.MaxSeconds"> + <summary> + The maximum permitted number of seconds. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Duration.MinSeconds"> + <summary> + The minimum permitted number of seconds. + </summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.ToTimeSpan"> + <summary> + Converts this <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/> to a <see cref="T:System.TimeSpan"/>. + </summary> + <remarks>If the duration is not a precise number of ticks, it is truncated towards 0.</remarks> + <returns>The value of this duration, as a <c>TimeSpan</c>.</returns> + <exception cref="T:System.InvalidOperationException">This value isn't a valid normalized duration, as + described in the documentation.</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.FromTimeSpan(System.TimeSpan)"> + <summary> + Converts the given <see cref="T:System.TimeSpan"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/>. + </summary> + <param name="timeSpan">The <c>TimeSpan</c> to convert.</param> + <returns>The value of the given <c>TimeSpan</c>, as a <c>Duration</c>.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.op_UnaryNegation(Google.Protobuf.WellKnownTypes.Duration)"> + <summary> + Returns the result of negating the duration. For example, the negation of 5 minutes is -5 minutes. + </summary> + <param name="value">The duration to negate. Must not be null.</param> + <returns>The negated value of this duration.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.op_Addition(Google.Protobuf.WellKnownTypes.Duration,Google.Protobuf.WellKnownTypes.Duration)"> + <summary> + Adds the two specified <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/> values together. + </summary> + <param name="lhs">The first value to add. Must not be null.</param> + <param name="rhs">The second value to add. Must not be null.</param> + <returns></returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.op_Subtraction(Google.Protobuf.WellKnownTypes.Duration,Google.Protobuf.WellKnownTypes.Duration)"> + <summary> + Subtracts one <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/> from another. + </summary> + <param name="lhs">The duration to subtract from. Must not be null.</param> + <param name="rhs">The duration to subtract. Must not be null.</param> + <returns>The difference between the two specified durations.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.Normalize(System.Int64,System.Int32)"> + <summary> + Creates a duration with the normalized values from the given number of seconds and + nanoseconds, conforming with the description in the proto file. + </summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.ToJson(System.Int64,System.Int32,System.Boolean)"> + <summary> + Converts a duration specified in seconds/nanoseconds to a string. + </summary> + <remarks> + If the value is a normalized duration in the range described in <c>duration.proto</c>, + <paramref name="diagnosticOnly"/> is ignored. Otherwise, if the parameter is <c>true</c>, + a JSON object with a warning is returned; if it is <c>false</c>, an <see cref="T:System.InvalidOperationException"/> is thrown. + </remarks> + <param name="seconds">Seconds portion of the duration.</param> + <param name="nanoseconds">Nanoseconds portion of the duration.</param> + <param name="diagnosticOnly">Determines the handling of non-normalized values</param> + <exception cref="T:System.InvalidOperationException">The represented duration is invalid, and <paramref name="diagnosticOnly"/> is <c>false</c>.</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.ToDiagnosticString"> + <summary> + Returns a string representation of this <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/> for diagnostic purposes. + </summary> + <remarks> + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + </remarks> + <returns>A string representation of this value.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Duration.AppendNanoseconds(System.Text.StringBuilder,System.Int32)"> + <summary> + Appends a number of nanoseconds to a StringBuilder. Either 0 digits are added (in which + case no "." is appended), or 3 6 or 9 digits. This is internal for use in Timestamp as well + as Duration. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.EmptyReflection"> + <summary>Holder for reflection information generated from google/protobuf/empty.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.EmptyReflection.Descriptor"> + <summary>File descriptor for google/protobuf/empty.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Empty"> + <summary> + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the request + or the response type of an API method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); + } + + The JSON representation for `Empty` is empty JSON object `{}`. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.FieldMaskReflection"> + <summary>Holder for reflection information generated from google/protobuf/field_mask.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor"> + <summary>File descriptor for google/protobuf/field_mask.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.FieldMask"> + <summary> + `FieldMask` represents a set of symbolic field paths, for example: + + paths: "f.a" + paths: "f.b.d" + + Here `f` represents a field in some root message, `a` and `b` + fields in the message found in `f`, and `d` a field found in the + message in `f.b`. + + Field masks are used to specify a subset of fields that should be + returned by a get operation or modified by an update operation. + Field masks also have a custom JSON encoding (see below). + + # Field Masks in Projections + + When used in the context of a projection, a response message or + sub-message is filtered by the API to only contain those fields as + specified in the mask. For example, if the mask in the previous + example is applied to a response message as follows: + + f { + a : 22 + b { + d : 1 + x : 2 + } + y : 13 + } + z: 8 + + The result will not contain specific values for fields x,y and z + (their value will be set to the default, and omitted in proto text + output): + + f { + a : 22 + b { + d : 1 + } + } + + A repeated field is not allowed except at the last position of a + paths string. + + If a FieldMask object is not present in a get operation, the + operation applies to all fields (as if a FieldMask of all fields + had been specified). + + Note that a field mask does not necessarily apply to the + top-level response message. In case of a REST get operation, the + field mask applies directly to the response, but in case of a REST + list operation, the mask instead applies to each individual message + in the returned resource list. In case of a REST custom method, + other definitions may be used. Where the mask applies will be + clearly documented together with its declaration in the API. In + any case, the effect on the returned resource/resources is required + behavior for APIs. + + # Field Masks in Update Operations + + A field mask in update operations specifies which fields of the + targeted resource are going to be updated. The API is required + to only change the values of the fields as specified in the mask + and leave the others untouched. If a resource is passed in to + describe the updated values, the API ignores the values of all + fields not covered by the mask. + + If a repeated field is specified for an update operation, the existing + repeated values in the target resource will be overwritten by the new values. + Note that a repeated field is only allowed in the last position of a `paths` + string. + + If a sub-message is specified in the last position of the field mask for an + update operation, then the existing sub-message in the target resource is + overwritten. Given the target message: + + f { + b { + d : 1 + x : 2 + } + c : 1 + } + + And an update message: + + f { + b { + d : 10 + } + } + + then if the field mask is: + + paths: "f.b" + + then the result will be: + + f { + b { + d : 10 + } + c : 1 + } + + However, if the update mask was: + + paths: "f.b.d" + + then the result would be: + + f { + b { + d : 10 + x : 2 + } + c : 1 + } + + In order to reset a field's value to the default, the field must + be in the mask and set to the default value in the provided resource. + Hence, in order to reset all fields of a resource, provide a default + instance of the resource and set all fields in the mask, or do + not provide a mask as described below. + + If a field mask is not present on update, the operation applies to + all fields (as if a field mask of all fields has been specified). + Note that in the presence of schema evolution, this may mean that + fields the client does not know and has therefore not filled into + the request will be reset to their default. If this is unwanted + behavior, a specific service may require a client to always specify + a field mask, producing an error if not. + + As with get operations, the location of the resource which + describes the updated values in the request message depends on the + operation kind. In any case, the effect of the field mask is + required to be honored by the API. + + ## Considerations for HTTP REST + + The HTTP kind of an update operation which uses a field mask must + be set to PATCH instead of PUT in order to satisfy HTTP semantics + (PUT must only be used for full updates). + + # JSON Encoding of Field Masks + + In JSON, a field mask is encoded as a single string where paths are + separated by a comma. Fields name in each path are converted + to/from lower-camel naming conventions. + + As an example, consider the following message declarations: + + message Profile { + User user = 1; + Photo photo = 2; + } + message User { + string display_name = 1; + string address = 2; + } + + In proto a field mask for `Profile` may look as such: + + mask { + paths: "user.display_name" + paths: "photo" + } + + In JSON, the same mask is represented as below: + + { + mask: "user.displayName,photo" + } + + # Field Masks and Oneof Fields + + Field masks treat fields in oneofs just as regular fields. Consider the + following message: + + message SampleMessage { + oneof test_oneof { + string name = 4; + SubMessage sub_message = 9; + } + } + + The field mask can be: + + mask { + paths: "name" + } + + Or: + + mask { + paths: "sub_message" + } + + Note that oneof type names ("test_oneof" in this case) cannot be used in + paths. + + ## Field Mask Verification + + The implementation of any API method which has a FieldMask type field in the + request should verify the included field paths, and return an + `INVALID_ARGUMENT` error if any path is duplicated or unmappable. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.FieldMask.PathsFieldNumber"> + <summary>Field number for the "paths" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.FieldMask.Paths"> + <summary> + The set of field mask paths. + </summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.FieldMask.ToJson(System.Collections.Generic.IList{System.String},System.Boolean)"> + <summary> + Converts a timestamp specified in seconds/nanoseconds to a string. + </summary> + <remarks> + If the value is a normalized duration in the range described in <c>field_mask.proto</c>, + <paramref name="diagnosticOnly"/> is ignored. Otherwise, if the parameter is <c>true</c>, + a JSON object with a warning is returned; if it is <c>false</c>, an <see cref="T:System.InvalidOperationException"/> is thrown. + </remarks> + <param name="paths">Paths in the field mask</param> + <param name="diagnosticOnly">Determines the handling of non-normalized values</param> + <exception cref="T:System.InvalidOperationException">The represented field mask is invalid, and <paramref name="diagnosticOnly"/> is <c>false</c>.</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.FieldMask.ValidatePath(System.String)"> + <summary> + Checks whether the given path is valid for a field mask. + </summary> + <returns>true if the path is valid; false otherwise</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.FieldMask.ToDiagnosticString"> + <summary> + Returns a string representation of this <see cref="T:Google.Protobuf.WellKnownTypes.FieldMask"/> for diagnostic purposes. + </summary> + <remarks> + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + </remarks> + <returns>A string representation of this value.</returns> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.SourceContextReflection"> + <summary>Holder for reflection information generated from google/protobuf/source_context.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.SourceContextReflection.Descriptor"> + <summary>File descriptor for google/protobuf/source_context.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.SourceContext"> + <summary> + `SourceContext` represents information about the source of a + protobuf element, like the file in which it is defined. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.SourceContext.FileNameFieldNumber"> + <summary>Field number for the "file_name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.SourceContext.FileName"> + <summary> + The path-qualified name of the .proto file that contained the associated + protobuf element. For example: `"google/protobuf/source_context.proto"`. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.StructReflection"> + <summary>Holder for reflection information generated from google/protobuf/struct.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.StructReflection.Descriptor"> + <summary>File descriptor for google/protobuf/struct.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.NullValue"> + <summary> + `NullValue` is a singleton enumeration to represent the null value for the + `Value` type union. + + The JSON representation for `NullValue` is JSON `null`. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.NullValue.NullValue"> + <summary> + Null value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Struct"> + <summary> + `Struct` represents a structured data value, consisting of fields + which map to dynamically typed values. In some languages, `Struct` + might be supported by a native representation. For example, in + scripting languages like JS a struct is represented as an + object. The details of that representation are described together + with the proto support for the language. + + The JSON representation for `Struct` is JSON object. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Struct.FieldsFieldNumber"> + <summary>Field number for the "fields" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Struct.Fields"> + <summary> + Unordered map of dynamically typed values. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Value"> + <summary> + `Value` represents a dynamically typed value which can be either + null, a number, a string, a boolean, a recursive struct value, or a + list of values. A producer of value is expected to set one of that + variants, absence of any variant indicates an error. + + The JSON representation for `Value` is JSON value. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Value.NullValueFieldNumber"> + <summary>Field number for the "null_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Value.NullValue"> + <summary> + Represents a null value. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Value.NumberValueFieldNumber"> + <summary>Field number for the "number_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Value.NumberValue"> + <summary> + Represents a double value. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Value.StringValueFieldNumber"> + <summary>Field number for the "string_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Value.StringValue"> + <summary> + Represents a string value. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Value.BoolValueFieldNumber"> + <summary>Field number for the "bool_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Value.BoolValue"> + <summary> + Represents a boolean value. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Value.StructValueFieldNumber"> + <summary>Field number for the "struct_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Value.StructValue"> + <summary> + Represents a structured value. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Value.ListValueFieldNumber"> + <summary>Field number for the "list_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Value.ListValue"> + <summary> + Represents a repeated `Value`. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Value.KindOneofCase"> + <summary>Enum of possible cases for the "kind" oneof.</summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Value.ForString(System.String)"> + <summary> + Convenience method to create a Value message with a string value. + </summary> + <param name="value">Value to set for the StringValue property.</param> + <returns>A newly-created Value message with the given value.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Value.ForNumber(System.Double)"> + <summary> + Convenience method to create a Value message with a number value. + </summary> + <param name="value">Value to set for the NumberValue property.</param> + <returns>A newly-created Value message with the given value.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Value.ForBool(System.Boolean)"> + <summary> + Convenience method to create a Value message with a Boolean value. + </summary> + <param name="value">Value to set for the BoolValue property.</param> + <returns>A newly-created Value message with the given value.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Value.ForNull"> + <summary> + Convenience method to create a Value message with a null initial value. + </summary> + <returns>A newly-created Value message a null initial value.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Value.ForList(Google.Protobuf.WellKnownTypes.Value[])"> + <summary> + Convenience method to create a Value message with an initial list of values. + </summary> + <remarks>The values provided are not cloned; the references are copied directly.</remarks> + <returns>A newly-created Value message an initial list value.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Value.ForStruct(Google.Protobuf.WellKnownTypes.Struct)"> + <summary> + Convenience method to create a Value message with an initial struct value + </summary> + <remarks>The value provided is not cloned; the reference is copied directly.</remarks> + <returns>A newly-created Value message an initial struct value.</returns> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.ListValue"> + <summary> + `ListValue` is a wrapper around a repeated field of values. + + The JSON representation for `ListValue` is JSON array. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.ListValue.ValuesFieldNumber"> + <summary>Field number for the "values" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.ListValue.Values"> + <summary> + Repeated field of dynamically typed values. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.TimeExtensions"> + <summary> + Extension methods on BCL time-related types, converting to protobuf types. + </summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.TimeExtensions.ToTimestamp(System.DateTime)"> + <summary> + Converts the given <see cref="T:System.DateTime"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/>. + </summary> + <param name="dateTime">The date and time to convert to a timestamp.</param> + <exception cref="T:System.ArgumentException">The <paramref name="dateTime"/> value has a <see cref="P:System.DateTime.Kind"/>other than <c>Utc</c>.</exception> + <returns>The converted timestamp.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.TimeExtensions.ToTimestamp(System.DateTimeOffset)"> + <summary> + Converts the given <see cref="T:System.DateTimeOffset"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/> + </summary> + <remarks>The offset is taken into consideration when converting the value (so the same instant in time + is represented) but is not a separate part of the resulting value. In other words, there is no + roundtrip operation to retrieve the original <c>DateTimeOffset</c>.</remarks> + <param name="dateTimeOffset">The date and time (with UTC offset) to convert to a timestamp.</param> + <returns>The converted timestamp.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.TimeExtensions.ToDuration(System.TimeSpan)"> + <summary> + Converts the given <see cref="T:System.TimeSpan"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/>. + </summary> + <param name="timeSpan">The time span to convert.</param> + <returns>The converted duration.</returns> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.TimestampReflection"> + <summary>Holder for reflection information generated from google/protobuf/timestamp.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor"> + <summary>File descriptor for google/protobuf/timestamp.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Timestamp"> + <summary> + A Timestamp represents a point in time independent of any time zone + or calendar, represented as seconds and fractions of seconds at + nanosecond resolution in UTC Epoch time. It is encoded using the + Proleptic Gregorian Calendar which extends the Gregorian calendar + backwards to year one. It is encoded assuming all minutes are 60 + seconds long, i.e. leap seconds are "smeared" so that no leap second + table is needed for interpretation. Range is from + 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. + By restricting to that range, we ensure that we can convert to + and from RFC 3339 date strings. + See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] + method. In Python, a standard `datetime.datetime` object can be converted + to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) + with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one + can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime-- + ) to obtain a formatter capable of generating timestamps in this format. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Timestamp.SecondsFieldNumber"> + <summary>Field number for the "seconds" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Timestamp.Seconds"> + <summary> + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Timestamp.NanosFieldNumber"> + <summary>Field number for the "nanos" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Timestamp.Nanos"> + <summary> + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. + </summary> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.op_Subtraction(Google.Protobuf.WellKnownTypes.Timestamp,Google.Protobuf.WellKnownTypes.Timestamp)"> + <summary> + Returns the difference between one <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/> and another, as a <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/>. + </summary> + <param name="lhs">The timestamp to subtract from. Must not be null.</param> + <param name="rhs">The timestamp to subtract. Must not be null.</param> + <returns>The difference between the two specified timestamps.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.op_Addition(Google.Protobuf.WellKnownTypes.Timestamp,Google.Protobuf.WellKnownTypes.Duration)"> + <summary> + Adds a <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/>, to obtain another <c>Timestamp</c>. + </summary> + <param name="lhs">The timestamp to add the duration to. Must not be null.</param> + <param name="rhs">The duration to add. Must not be null.</param> + <returns>The result of adding the duration to the timestamp.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.op_Subtraction(Google.Protobuf.WellKnownTypes.Timestamp,Google.Protobuf.WellKnownTypes.Duration)"> + <summary> + Subtracts a <see cref="T:Google.Protobuf.WellKnownTypes.Duration"/> from a <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/>, to obtain another <c>Timestamp</c>. + </summary> + <param name="lhs">The timestamp to subtract the duration from. Must not be null.</param> + <param name="rhs">The duration to subtract.</param> + <returns>The result of subtracting the duration from the timestamp.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.ToDateTime"> + <summary> + Converts this timestamp into a <see cref="T:System.DateTime"/>. + </summary> + <remarks> + The resulting <c>DateTime</c> will always have a <c>Kind</c> of <c>Utc</c>. + If the timestamp is not a precise number of ticks, it will be truncated towards the start + of time. For example, a timestamp with a <see cref="P:Google.Protobuf.WellKnownTypes.Timestamp.Nanos"/> value of 99 will result in a + <see cref="T:System.DateTime"/> value precisely on a second. + </remarks> + <returns>This timestamp as a <c>DateTime</c>.</returns> + <exception cref="T:System.InvalidOperationException">The timestamp contains invalid values; either it is + incorrectly normalized or is outside the valid range.</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.ToDateTimeOffset"> + <summary> + Converts this timestamp into a <see cref="T:System.DateTimeOffset"/>. + </summary> + <remarks> + The resulting <c>DateTimeOffset</c> will always have an <c>Offset</c> of zero. + If the timestamp is not a precise number of ticks, it will be truncated towards the start + of time. For example, a timestamp with a <see cref="P:Google.Protobuf.WellKnownTypes.Timestamp.Nanos"/> value of 99 will result in a + <see cref="T:System.DateTimeOffset"/> value precisely on a second. + </remarks> + <returns>This timestamp as a <c>DateTimeOffset</c>.</returns> + <exception cref="T:System.InvalidOperationException">The timestamp contains invalid values; either it is + incorrectly normalized or is outside the valid range.</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.FromDateTime(System.DateTime)"> + <summary> + Converts the specified <see cref="T:System.DateTime"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/>. + </summary> + <param name="dateTime"></param> + <exception cref="T:System.ArgumentException">The <c>Kind</c> of <paramref name="dateTime"/> is not <c>DateTimeKind.Utc</c>.</exception> + <returns>The converted timestamp.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.FromDateTimeOffset(System.DateTimeOffset)"> + <summary> + Converts the given <see cref="T:System.DateTimeOffset"/> to a <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/> + </summary> + <remarks>The offset is taken into consideration when converting the value (so the same instant in time + is represented) but is not a separate part of the resulting value. In other words, there is no + roundtrip operation to retrieve the original <c>DateTimeOffset</c>.</remarks> + <param name="dateTimeOffset">The date and time (with UTC offset) to convert to a timestamp.</param> + <returns>The converted timestamp.</returns> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.ToJson(System.Int64,System.Int32,System.Boolean)"> + <summary> + Converts a timestamp specified in seconds/nanoseconds to a string. + </summary> + <remarks> + If the value is a normalized duration in the range described in <c>timestamp.proto</c>, + <paramref name="diagnosticOnly"/> is ignored. Otherwise, if the parameter is <c>true</c>, + a JSON object with a warning is returned; if it is <c>false</c>, an <see cref="T:System.InvalidOperationException"/> is thrown. + </remarks> + <param name="seconds">Seconds portion of the duration.</param> + <param name="nanoseconds">Nanoseconds portion of the duration.</param> + <param name="diagnosticOnly">Determines the handling of non-normalized values</param> + <exception cref="T:System.InvalidOperationException">The represented duration is invalid, and <paramref name="diagnosticOnly"/> is <c>false</c>.</exception> + </member> + <member name="M:Google.Protobuf.WellKnownTypes.Timestamp.ToDiagnosticString"> + <summary> + Returns a string representation of this <see cref="T:Google.Protobuf.WellKnownTypes.Timestamp"/> for diagnostic purposes. + </summary> + <remarks> + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + </remarks> + <returns>A string representation of this value.</returns> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.TypeReflection"> + <summary>Holder for reflection information generated from google/protobuf/type.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.TypeReflection.Descriptor"> + <summary>File descriptor for google/protobuf/type.proto</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Syntax"> + <summary> + The syntax in which a protocol buffer element is defined. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Syntax.Proto2"> + <summary> + Syntax `proto2`. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Syntax.Proto3"> + <summary> + Syntax `proto3`. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Type"> + <summary> + A protocol buffer message type. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Type.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Type.Name"> + <summary> + The fully qualified message name. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Type.FieldsFieldNumber"> + <summary>Field number for the "fields" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Type.Fields"> + <summary> + The list of fields. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Type.OneofsFieldNumber"> + <summary>Field number for the "oneofs" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Type.Oneofs"> + <summary> + The list of types appearing in `oneof` definitions in this type. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Type.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Type.Options"> + <summary> + The protocol buffer options. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Type.SourceContextFieldNumber"> + <summary>Field number for the "source_context" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Type.SourceContext"> + <summary> + The source context. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Type.SyntaxFieldNumber"> + <summary>Field number for the "syntax" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Type.Syntax"> + <summary> + The source syntax. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Field"> + <summary> + A single field of a message type. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.KindFieldNumber"> + <summary>Field number for the "kind" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.Kind"> + <summary> + The field type. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.CardinalityFieldNumber"> + <summary>Field number for the "cardinality" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.Cardinality"> + <summary> + The field cardinality. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.NumberFieldNumber"> + <summary>Field number for the "number" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.Number"> + <summary> + The field number. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.Name"> + <summary> + The field name. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.TypeUrlFieldNumber"> + <summary>Field number for the "type_url" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.TypeUrl"> + <summary> + The field type URL, without the scheme, for message or enumeration + types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.OneofIndexFieldNumber"> + <summary>Field number for the "oneof_index" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.OneofIndex"> + <summary> + The index of the field type in `Type.oneofs`, for message or enumeration + types. The first type has index 1; zero means the type is not in the list. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.PackedFieldNumber"> + <summary>Field number for the "packed" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.Packed"> + <summary> + Whether to use alternative packed wire representation. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.Options"> + <summary> + The protocol buffer options. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.JsonNameFieldNumber"> + <summary>Field number for the "json_name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.JsonName"> + <summary> + The field JSON name. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.DefaultValueFieldNumber"> + <summary>Field number for the "default_value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Field.DefaultValue"> + <summary> + The string value of the default value of this field. Proto2 syntax only. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Field.Types"> + <summary>Container for nested types declared in the Field message type.</summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Field.Types.Kind"> + <summary> + Basic field types. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeUnknown"> + <summary> + Field type unknown. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeDouble"> + <summary> + Field type double. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeFloat"> + <summary> + Field type float. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeInt64"> + <summary> + Field type int64. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeUint64"> + <summary> + Field type uint64. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeInt32"> + <summary> + Field type int32. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeFixed64"> + <summary> + Field type fixed64. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeFixed32"> + <summary> + Field type fixed32. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeBool"> + <summary> + Field type bool. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeString"> + <summary> + Field type string. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeGroup"> + <summary> + Field type group. Proto2 syntax only, and deprecated. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeMessage"> + <summary> + Field type message. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeBytes"> + <summary> + Field type bytes. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeUint32"> + <summary> + Field type uint32. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeEnum"> + <summary> + Field type enum. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeSfixed32"> + <summary> + Field type sfixed32. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeSfixed64"> + <summary> + Field type sfixed64. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeSint32"> + <summary> + Field type sint32. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Kind.TypeSint64"> + <summary> + Field type sint64. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Field.Types.Cardinality"> + <summary> + Whether a field is optional, required, or repeated. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Cardinality.Unknown"> + <summary> + For fields with unknown cardinality. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Cardinality.Optional"> + <summary> + For optional fields. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Cardinality.Required"> + <summary> + For required fields. Proto2 syntax only. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Field.Types.Cardinality.Repeated"> + <summary> + For repeated fields. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Enum"> + <summary> + Enum type definition. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Enum.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Enum.Name"> + <summary> + Enum type name. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Enum.EnumvalueFieldNumber"> + <summary>Field number for the "enumvalue" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Enum.Enumvalue"> + <summary> + Enum value definitions. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Enum.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Enum.Options"> + <summary> + Protocol buffer options. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Enum.SourceContextFieldNumber"> + <summary>Field number for the "source_context" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Enum.SourceContext"> + <summary> + The source context. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Enum.SyntaxFieldNumber"> + <summary>Field number for the "syntax" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Enum.Syntax"> + <summary> + The source syntax. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.EnumValue"> + <summary> + Enum value definition. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.EnumValue.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.EnumValue.Name"> + <summary> + Enum value name. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.EnumValue.NumberFieldNumber"> + <summary>Field number for the "number" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.EnumValue.Number"> + <summary> + Enum value number. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.EnumValue.OptionsFieldNumber"> + <summary>Field number for the "options" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.EnumValue.Options"> + <summary> + Protocol buffer options. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Option"> + <summary> + A protocol buffer option, which can be attached to a message, field, + enumeration, etc. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Option.NameFieldNumber"> + <summary>Field number for the "name" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Option.Name"> + <summary> + The option's name. For protobuf built-in options (options defined in + descriptor.proto), this is the short name. For example, `"map_entry"`. + For custom options, it should be the fully-qualified name. For example, + `"google.api.http"`. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Option.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Option.Value"> + <summary> + The option's value packed in an Any message. If the value is a primitive, + the corresponding wrapper type defined in google/protobuf/wrappers.proto + should be used. If the value is an enum, it should be stored as an int32 + value using the google.protobuf.Int32Value type. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.WrappersReflection"> + <summary>Holder for reflection information generated from google/protobuf/wrappers.proto</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor"> + <summary>File descriptor for google/protobuf/wrappers.proto</summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.WrappersReflection.WrapperValueFieldNumber"> + <summary> + Field number for the single "value" field in all wrapper types. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.DoubleValue"> + <summary> + Wrapper message for `double`. + + The JSON representation for `DoubleValue` is JSON number. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.DoubleValue.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.DoubleValue.Value"> + <summary> + The double value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.FloatValue"> + <summary> + Wrapper message for `float`. + + The JSON representation for `FloatValue` is JSON number. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.FloatValue.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.FloatValue.Value"> + <summary> + The float value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Int64Value"> + <summary> + Wrapper message for `int64`. + + The JSON representation for `Int64Value` is JSON string. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Int64Value.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Int64Value.Value"> + <summary> + The int64 value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.UInt64Value"> + <summary> + Wrapper message for `uint64`. + + The JSON representation for `UInt64Value` is JSON string. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.UInt64Value.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.UInt64Value.Value"> + <summary> + The uint64 value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.Int32Value"> + <summary> + Wrapper message for `int32`. + + The JSON representation for `Int32Value` is JSON number. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.Int32Value.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.Int32Value.Value"> + <summary> + The int32 value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.UInt32Value"> + <summary> + Wrapper message for `uint32`. + + The JSON representation for `UInt32Value` is JSON number. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.UInt32Value.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.UInt32Value.Value"> + <summary> + The uint32 value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.BoolValue"> + <summary> + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.BoolValue.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.BoolValue.Value"> + <summary> + The bool value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.StringValue"> + <summary> + Wrapper message for `string`. + + The JSON representation for `StringValue` is JSON string. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.StringValue.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.StringValue.Value"> + <summary> + The string value. + </summary> + </member> + <member name="T:Google.Protobuf.WellKnownTypes.BytesValue"> + <summary> + Wrapper message for `bytes`. + + The JSON representation for `BytesValue` is JSON string. + </summary> + </member> + <member name="F:Google.Protobuf.WellKnownTypes.BytesValue.ValueFieldNumber"> + <summary>Field number for the "value" field.</summary> + </member> + <member name="P:Google.Protobuf.WellKnownTypes.BytesValue.Value"> + <summary> + The bytes value. + </summary> + </member> + <member name="T:Google.Protobuf.WireFormat"> + <summary> + This class is used internally by the Protocol Buffer Library and generated + message implementations. It is public only for the sake of those generated + messages. Others should not use this class directly. + <para> + This class contains constants and helper functions useful for dealing with + the Protocol Buffer wire format. + </para> + </summary> + </member> + <member name="T:Google.Protobuf.WireFormat.WireType"> + <summary> + Wire types within protobuf encoding. + </summary> + </member> + <member name="F:Google.Protobuf.WireFormat.WireType.Varint"> + <summary> + Variable-length integer. + </summary> + </member> + <member name="F:Google.Protobuf.WireFormat.WireType.Fixed64"> + <summary> + A fixed-length 64-bit value. + </summary> + </member> + <member name="F:Google.Protobuf.WireFormat.WireType.LengthDelimited"> + <summary> + A length-delimited value, i.e. a length followed by that many bytes of data. + </summary> + </member> + <member name="F:Google.Protobuf.WireFormat.WireType.StartGroup"> + <summary> + A "start group" value - not supported by this implementation. + </summary> + </member> + <member name="F:Google.Protobuf.WireFormat.WireType.EndGroup"> + <summary> + An "end group" value - not supported by this implementation. + </summary> + </member> + <member name="F:Google.Protobuf.WireFormat.WireType.Fixed32"> + <summary> + A fixed-length 32-bit value. + </summary> + </member> + <member name="M:Google.Protobuf.WireFormat.GetTagWireType(System.UInt32)"> + <summary> + Given a tag value, determines the wire type (lower 3 bits). + </summary> + </member> + <member name="M:Google.Protobuf.WireFormat.GetTagFieldNumber(System.UInt32)"> + <summary> + Given a tag value, determines the field number (the upper 29 bits). + </summary> + </member> + <member name="M:Google.Protobuf.WireFormat.MakeTag(System.Int32,Google.Protobuf.WireFormat.WireType)"> + <summary> + Makes a tag value given a field number and wire type. + </summary> + </member> + </members> +</doc>
diff --git a/dart/BUILD.bazel b/dart/BUILD.bazel index 66fcee0..7440dd0 100644 --- a/dart/BUILD.bazel +++ b/dart/BUILD.bazel
@@ -26,6 +26,7 @@ visibility = ["//visibility:public"], ) + load("@io_bazel_rules_dart//dart/build_rules:vm.bzl", "dart_vm_binary") dart_vm_binary(
diff --git a/dart/dart_pub_deps.bzl b/dart/dart_pub_deps.bzl new file mode 100644 index 0000000..9f08ff5 --- /dev/null +++ b/dart/dart_pub_deps.bzl
@@ -0,0 +1,183 @@ + +def _execute(rtx, cmds): + """Execute a command and fail if return code. + Args: + rtx: !repository_ctx + cmds: !list<string> + Returns: struct value from the rtx.execute method. + """ + #print("Execute <%s>" % " ".join(cmds)) + result = rtx.execute(cmds) + if result.return_code: + fail(" ".join(cmds) + "failed: %s" %(result.stderr)) + return result + + +def _pub_repository(name, entry, verbose): + out = [] + version = entry["version"] + if entry.get("override"): + override = entry.get("override") + print("%s %s override %s" % (name, version, override)) + version = override + + if version.startswith("^"): + version = version[1:] + + if version.startswith(">"): + version = version[1:] + + if version.startswith("<"): + version = version[1:] + + if version.startswith("="): + version = version[1:] + + if version.startswith(">="): + version = version[2:] + + if version.startswith("<="): + version = version[2:] + + if version.startswith("=="): + version = version[2:] + out += [ + ' if "vendor_%s" not in existing:' % name, + ' pub_repository(', + ' name = "vendor_%s",' % name, + ' output = ".",', + ' package = "%s",' % name, + ' version = "%s",' % version, + ] + + deps = entry.get("deps") + if deps: + out.append(' pub_deps = [') + for depname, depversion in deps.items(): + out.append(' "%s",' % depname) + out.append(' ]') + out.append(' )') + out.append(' elif verbose > 0:') + out.append(' print("Skipped vendor_%s (already exists)")' % name) + if verbose > 1: + print("%s: %s" % (name, version)) + return out + + +def _dart_pub_deps_impl(rtx): + """ + Repository rule implementation that (1) copies the pubspec.yaml into + the external workspace dir, (2) executes 'pub deps', (3) parses the output, + and (4) writes out a deps.bzl file that contains pub_repository rules. + """ + + # map[string]string name -> version overrides + override = rtx.attr.override + # int + verbose = rtx.attr.verbose + # string + pub = rtx.path(rtx.attr._pub) + # string + spec = rtx.path(rtx.attr.spec) + + # Copy the pubspec into place + _execute(rtx, ["cp", spec, "./pubspec.yaml"]) + + # Run pub get first + _execute(rtx, [pub, "get"]) + + # Run pub deps + result = _execute(rtx, [pub, "deps", "--style", "list"]) + + # name -> entry + direct_deps = {} + # name -> entry + + transitive_deps = {} + # The dict that is "active" (one of: deps | transitive_deps). A dict gets + # 'activated' when we hit that section in the output. + active = None + + # Name of last dependency we've seen, like "analyzer" in ' - analyzer 0.32.5 + current = None + + # Iterate all lines in output + lines = result.stdout.split("\n") + for line in lines: + #print("LINE: " + line) + if line.startswith(" - "): + toks = line[4:].split(" ") + name = toks[0] + version = toks[1] + # if len(toks) > 2: + # upper = toks[2] + # if upper: + # version = upper + active[name] = { + "name": name, + "version": version, + "override": override.get(name), + } + deps = current["deps"] + if not deps.get(name): + deps[name] = version + if verbose > 1: + print("transitive dep %s: %s" % (name, version)) + elif line.startswith("- "): + toks = line[2:].split(" ") + name = toks[0] + version = toks[1] + entry = { + "name": name, + "version": version, + "deps": {}, + "override": override.get(name), + } + active[name] = entry + current = entry + if verbose > 1: + print("direct dep %s: %s" % (name, version)) + elif line == "dependencies:": + active = direct_deps + elif line == "transitive dependencies:": + active = transitive_deps + else: + if verbose > 2: + print("SKIP: " + line) + + out = [ + '# Generated - do not modify', + 'load("@io_bazel_rules_dart//dart/build_rules/internal:pub.bzl", "pub_repository")', + 'def pub_deps(verbose = 0):', + ' existing = native.existing_rules()', + ] + + for name, entry in direct_deps.items(): + out += _pub_repository(name, entry, verbose) + for name, entry in transitive_deps.items(): + out += _pub_repository(name, entry, verbose) + + rtx.file("deps.bzl", "\n".join(out)) + rtx.file("BUILD.bazel", "") + + +dart_pub_deps = repository_rule( + implementation = _dart_pub_deps_impl, + attrs = { + "_pub": attr.label( + doc = "The pub binary tool", + default = "@dart_sdk//:bin/pub", + ), + "spec": attr.label( + doc = 'A pubspec.yaml file that details the dependencies', + mandatory = True, + ), + "override": attr.string_dict( + doc = 'A mapping from NAME -> VERSION such that the given VERSION will be chosen for any direct/transitive dependency with that name. Example: {"glob": "1.1.7"}', + ), + "verbose": attr.int( + doc = 'A number that changes the verbose level', + ), + }, +) +
diff --git a/dart/deps.bzl b/dart/deps.bzl index ff92218..fd5a3a6 100644 --- a/dart/deps.bzl +++ b/dart/deps.bzl
@@ -1,204 +1,24 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("//dart:sdk.bzl", "dart_sdk_repository") -def dart_proto_deps(): - existing = native.existing_rules() - - if "io_bazel_rules_dart" not in existing: - http_archive( - name = "io_bazel_rules_dart", - urls = ["https://github.com/dart-lang/rules_dart/archive/32ec7eb8585ba618e1236ccce43d158b6bda2f7b.tar.gz"], - strip_prefix = "rules_dart-32ec7eb8585ba618e1236ccce43d158b6bda2f7b", - sha256 = "b8107ad02bb3f3667900f18a585bb490192d6a193e975e82b2766470da1c7ebd", - ) - - if "dart_sdk" not in existing: - dart_sdk_repository( - name = "dart_sdk", - ) - - -def _execute(rtx, cmds): - """Execute a command and fail if return code. - Args: - rtx: !repository_ctx - cmds: !list<string> - Returns: struct value from the rtx.execute method. - """ - #print("Execute <%s>" % " ".join(cmds)) - result = rtx.execute(cmds) - if result.return_code: - fail(" ".join(cmds) + "failed: %s" %(result.stderr)) - return result - - -def _pub_repository(name, entry, verbose): - out = [] - version = entry["version"] - if entry.get("override"): - override = entry.get("override") - print("%s %s override %s" % (name, version, override)) - version = override - - # if entry.get("upper"): - # version = entry["upper"] - if version.startswith("^"): - version = version[1:] - - if version.startswith(">"): - version = version[1:] - - if version.startswith("<"): - version = version[1:] - - if version.startswith("="): - version = version[1:] - - if version.startswith(">="): - version = version[2:] - - if version.startswith("<="): - version = version[2:] - - if version.startswith("=="): - version = version[2:] - out += [ - ' if "vendor_%s" not in existing:' % name, - ' pub_repository(', - ' name = "vendor_%s",' % name, - ' output = ".",', - ' package = "%s",' % name, - ' version = "%s",' % version, - ] - - deps = entry.get("deps") - if deps: - out.append(' pub_deps = [') - for depname, depversion in deps.items(): - out.append(' "%s",' % depname) - out.append(' ]') - out.append(' )') - out.append(' elif verbose > 0:') - out.append(' print("Skipped vendor_%s (already exists)")' % name) - if verbose > 1: - print("%s: %s" % (name, version)) - return out - - -def _dart_pub_deps_impl(rtx): - """ - Repository rule implementation that (1) copies the pubspec.yaml into - the external workspace dir, (2) executes 'pub deps', (3) parses the output, - and (4) writes out a deps.bzl file that contains pub_repository rules. - """ - - # map[string]string name -> version overrides - override = rtx.attr.override - # int - verbose = rtx.attr.verbose - # string - pub = rtx.path(rtx.attr._pub) - # string - spec = rtx.path(rtx.attr.spec) - - # Copy the pubspec into place - _execute(rtx, ["cp", spec, "./pubspec.yaml"]) - - # Run pub get first - _execute(rtx, [pub, "get"]) - - # Run pub deps - result = _execute(rtx, [pub, "deps", "--style", "list"]) - - # name -> entry - direct_deps = {} - # name -> entry - - transitive_deps = {} - # The dict that is "active" (one of: deps | transitive_deps). A dict gets - # 'activated' when we hit that section in the output. - active = None - - # Name of last dependency we've seen, like "analyzer" in ' - analyzer 0.32.5 - current = None - - # Iterate all lines in output - lines = result.stdout.split("\n") - for line in lines: - #print("LINE: " + line) - if line.startswith(" - "): - toks = line[4:].split(" ") - name = toks[0] - version = toks[1] - # if len(toks) > 2: - # upper = toks[2] - # if upper: - # version = upper - active[name] = { - "name": name, - "version": version, - "override": override.get(name), - } - deps = current["deps"] - if not deps.get(name): - deps[name] = version - if verbose > 1: - print("transitive dep %s: %s" % (name, version)) - elif line.startswith("- "): - toks = line[2:].split(" ") - name = toks[0] - version = toks[1] - entry = { - "name": name, - "version": version, - "deps": {}, - "override": override.get(name), - } - active[name] = entry - current = entry - if verbose > 1: - print("direct dep %s: %s" % (name, version)) - elif line == "dependencies:": - active = direct_deps - elif line == "transitive dependencies:": - active = transitive_deps - else: - if verbose > 2: - print("SKIP: " + line) - - out = [ - '# Generated - do not modify', - 'load("@io_bazel_rules_dart//dart/build_rules/internal:pub.bzl", "pub_repository")', - 'def pub_deps(verbose = 0):', - ' existing = native.existing_rules()', - ] - - for name, entry in direct_deps.items(): - out += _pub_repository(name, entry, verbose) - for name, entry in transitive_deps.items(): - out += _pub_repository(name, entry, verbose) - - rtx.file("deps.bzl", "\n".join(out)) - rtx.file("BUILD.bazel", "") - - -dart_pub_deps = repository_rule( - implementation = _dart_pub_deps_impl, - attrs = { - "_pub": attr.label( - doc = "The pub binary tool", - default = "@dart_sdk//:bin/pub", - ), - "spec": attr.label( - doc = 'A pubspec.yaml file that details the dependencies', - mandatory = True, - ), - "override": attr.string_dict( - doc = 'A mapping from NAME -> VERSION such that the given VERSION will be chosen for any direct/transitive dependency with that name. Example: {"glob": "1.1.7"}', - ), - "verbose": attr.int( - doc = 'A number that changes the verbose level', - ), - }, +load("//:deps.bzl", + "com_google_protobuf", + "dart_pub_deps_protoc_plugin", + "dart_sdk", + "io_bazel_rules_dart", ) +def dart_proto_compile(**kwargs): + com_google_protobuf(**kwargs) + io_bazel_rules_dart(**kwargs) + dart_sdk(**kwargs) + dart_pub_deps_protoc_plugin(**kwargs) + +def dart_grpc_compile(**kwargs): + dart_proto_compile(**kwargs) + +def dart_proto_library(**kwargs): + dart_proto_compile(**kwargs) + +def dart_grpc_library(**kwargs): + dart_grpc_compile(**kwargs) + dart_proto_library(**kwargs) +
diff --git a/deps.bzl b/deps.bzl index e2236fb..7e7322d 100644 --- a/deps.bzl +++ b/deps.bzl
@@ -1,13 +1,313 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:maven_rules.bzl", "maven_jar") -def proto_deps(): - # todo: put protobuf here - pass +# Special thing to get around maven jar issues +load("//closure:buildozer_http_archive.bzl", "buildozer_http_archive") -def grpc_deps(): - http_archive( - name = "com_github_grpc_grpc", - strip_prefix = "grpc-1.15.0", - url = "https://github.com/grpc/grpc/archive/v1.15.0.tar.gz", - sha256 = "013cc34f3c51c0f87e059a12ea203087a7a15dca2e453295345e1d02e2b9634b", - ) +# Special dart_sdk_repository +load("//dart:sdk.bzl", "dart_sdk_repository") + +load("//dart:dart_pub_deps.bzl", "dart_pub_deps") + + +def github_archive(name, org, repo, ref, sha256): + """Declare an http_archive from github + """ + if name not in native.existing_rules(): + http_archive( + name = name, + strip_prefix = repo + "-" + ref, + urls = [ + "https://mirror.bazel.build/github.com/%s/%s/archive/%s.tar.gz" % (org, repo, ref), + "https://github.com/%s/%s/archive/%s.tar.gz" % (org, repo, ref), + ], + sha256 = sha256, + ) + +def jar(name, artifact, sha1): + """Declare a maven_jar + """ + if name not in native.existing_rules(): + maven_jar( + name = name, + artifact = artifact, + sha1 = sha1, + ) + +def get_ref(name, default, kwargs): + key = name + "_ref" + return kwargs.get(key, default) + + +def get_artifact(name, default, kwargs): + key = name + "_artifact" + return kwargs.get(key, default) + + +def get_sha256(name, default, kwargs): + key = name + "_sha256" + return kwargs.get(key, default) + + +def get_sha1(name, default, kwargs): + key = name + "_sha1" + return kwargs.get(key, default) + + +def com_google_protobuf(**kwargs): + name = "com_google_protobuf" + ref = get_ref(name, "48cb18e5c419ddd23d9badcfe4e9df7bde1979b2", kwargs) # ref referenced by com_github_grpc_grpc + sha256 = get_sha256(name, "013cc34f3c51c0f87e059a12ea203087a7a15dca2e453295345e1d02e2b9634c", kwargs) + github_archive(name, "google", "protobuf", ref, sha256) + + +def com_github_grpc_grpc(**kwargs): + name = "com_github_grpc_grpc" + ref = get_ref(name, "5f84445781ef29e50435c2eea661ca435a19b6bc", kwargs) # v1.15.0 + sha256 = get_sha256(name, "8c09d35806c857dcb3a383c81052cc7ba1c5855e827d0792a83bd57251821e29", kwargs) + github_archive(name, "grpc", "grpc", ref, sha256) + + +def io_bazel_rules_dotnet(**kwargs): + name = "io_bazel_rules_dotnet" + ref = get_ref(name, "281e4eeb389a30b4fd5dcd99915b35c925eff1ba", kwargs) + sha256 = get_sha256(name, "6913f43275eb098d28b46e96215e1d7425a6d7301d6a2805920e8796f2734d8f", kwargs) + github_archive(name, "bazelbuild", "rules_dotnet", ref, sha256) + + +def io_bazel_rules_rust(**kwargs): + name = "io_bazel_rules_rust" + ref = get_ref(name, "88022d175adb48aa5f8904f95dfc716c543b3f1e", kwargs) + sha256 = get_sha256(name, "d9832945f0fa7097ee548bd6fecfc814bd19759561dd7b06723e1c6a1879aa71", kwargs) + github_archive(name, "bazelbuild", "rules_rust", ref, sha256) + + +def com_github_yugui_rules_ruby(**kwargs): + name = "com_github_yugui_rules_ruby" + ref = get_ref(name, "5976385c9c4b94647bc95e8bf9d9989f1dee4ee3", kwargs) # PR#8, + sha256 = get_sha256(name, "7991ded3b902aba4c13fa7bdd67132edfcc279930b356737c1a3d3b2686d08c8", kwargs) + github_archive(name, "yugui", "rules_ruby", ref, sha256) + + +def org_pubref_rules_node(**kwargs): + name = "org_pubref_rules_node" + ref = get_ref(name, "1c60708c599e6ebd5213f0987207a1d854f13e23", kwargs) + sha256 = get_sha256(name, "248efb149bfa86d9d778b43949351015b23a8339405a9878467a1583ff6df348", kwargs) + github_archive(name, "pubref", "rules_node", ref, sha256) + + +def build_bazel_rules_android(**kwargs): + """Android Rules + """ + name = "build_bazel_rules_android" + ref = get_ref(name, "60f03a20cefbe1e110ae0ac7f25359822e9ea24a", kwargs) + sha256 = get_sha256(name, "4305b6cf6b098752a19fdb1abdc9ae2e069f5ff61359bfc3c752e4b4c862d18e", kwargs) + github_archive(name, "bazelbuild", "rules_android", ref, sha256) + + +def io_bazel_rules_go(**kwargs): + """Go Rules + """ + name = "io_bazel_rules_go" + ref = get_ref(name, "0f0d007c89dc67a5a34490acafc5195b191f5045", kwargs) # 0.15.3 + sha256 = get_sha256(name, "75a187b761dd3437c0722e3ab9a5c0835afc0acdd2cd1dc08f5d4810f409d57d", kwargs) + github_archive(name, "bazelbuild", "rules_go", ref, sha256) + + +def io_bazel_rules_python(**kwargs): + """python Rules + """ + name = "io_bazel_rules_python" + ref = get_ref(name, "8b5d0683a7d878b28fffe464779c8a53659fc645", kwargs) + sha256 = get_sha256(name, "8b32d2dbb0b0dca02e0410da81499eef8ff051dad167d6931a92579e3b2a1d48", kwargs) + github_archive(name, "bazelbuild", "rules_python", ref, sha256) + + +def six(**kwargs): + name = "six" + if name not in native.existing_rules(): + http_archive( + name = name, + build_file_content = """ +genrule( + name = "copy_six", + srcs = ["six-1.10.0/six.py"], + outs = ["six.py"], + cmd = "cp $< $(@)", +) + +py_library( + name = "six", + srcs = ["six.py"], + srcs_version = "PY2AND3", + visibility = ["//visibility:public"], +) + """, + sha256 = "105f8d68616f8248e24bf0e9372ef04d3cc10104f1980f54d57b2ce73a5ad56a", + urls = ["https://pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz#md5=34eed507548117b2ab523ab14b2f8b55"], + ) + + +def io_bazel_rules_dart(**kwargs): + """Dart Rules + """ + name = "io_bazel_rules_dart" + ref = get_ref(name, "32ec7eb8585ba618e1236ccce43d158b6bda2f7b", kwargs) + sha256 = get_sha256(name, "b8107ad02bb3f3667900f18a585bb490192d6a193e975e82b2766470da1c7ebd", kwargs) + github_archive(name, "bazelbuild", "rules_dart", ref, sha256) + + +def dart_sdk(**kwargs): + """The dart sdk + """ + name = "dart_sdk" + if name not in native.existing_rules(): + dart_sdk_repository( + name = name, + ) + + +def dart_pub_deps_protoc_plugin(**kwargs): + """Dart pub dependencies for the dart protoc plugin + """ + name = "dart_pub_deps_protoc_plugin" + if name not in native.existing_rules(): + dart_pub_deps( + name = name, + spec = "//dart:pubspec.yaml", + override = { + "path": "1.6.2", + "analyzer": "0.32.5", + "crypto": "2.0.6", + "async": "2.0.8", + "fixnum": "0.10.8", + "collection": "1.14.11", + "dart_style": "1.1.3", + "source_span": "1.4.1", + "args": "1.5.0", + }, + ) + + +def com_google_protobuf_lite(**kwargs): + """A different branch of google/protobuf that contains the protobuf_lite plugin + """ + name = "com_google_protobuf_lite" + ref = get_ref(name, "5e8916e881c573c5d83980197a6f783c132d4276", kwargs) + sha256 = get_sha256(name, "d35902fb3cbe9afa67aad4e615a8224d0a531b8c06d32e100bdb235244748a3d", kwargs) + github_archive(name, "protocolbuffers", "protobuf", ref, sha256) + + +def gmaven_rules(**kwargs): + """A catalog of maven & android jars on google maven server + """ + name = "gmaven_rules" + ref = get_ref(name, "20180927-1", kwargs) + sha256 = get_sha256(name, "ddaa0f5811253e82f67ee637dc8caf3989e4517bac0368355215b0dcfa9844d6", kwargs) + github_archive(name, "bazelbuild", "gmaven_rules", ref, sha256) + + +def io_grpc_grpc_java(**kwargs): + """grpc java plugin and jars + """ + name = "io_grpc_grpc_java" + ref = get_ref(name, "3134daf471f90b8f00c037518fc64988a1cdc8f7", kwargs) # v1.15.0 + sha256 = get_sha256(name, "a7d7def13fd019255ba6ef7499aa91dac38d0ec0f5d9c1262a75ae82f4d67174", kwargs) + github_archive(name, "grpc", "grpc-java", ref, sha256) + + +def com_google_guava_guava(**kwargs): + """grpc java plugin and jars + """ + name = "com_google_guava_guava" + artifact = get_artifact(name, "com.google.guava:guava:20.0", kwargs) + sha1 = get_sha1(name, "89507701249388e1ed5ddcf8c41f4ce1be7831ef", kwargs) + jar(name, artifact, sha1) + + +def io_bazel_rules_closure(**kwargs): + name = "io_bazel_rules_closure" + ref = get_ref(name, "1e12aa5612d758daf2df339991c8d187223a7ee6", kwargs) + sha256 = get_sha256(name, "663424d34fd067a8d066308eb2887fcaba36d73b354669ec1467498726a6b82c", kwargs) + + if "io_bazel_rules_closure" not in native.existing_rules(): + buildozer_http_archive( + name = "io_bazel_rules_closure", + urls = ["https://github.com/bazelbuild/rules_closure/archive/%s.tar.gz" % ref], + sha256 = sha256, + strip_prefix = "rules_closure-" + ref, + label_list = ["//...:%java_binary", "//...:%java_library"], + replace_deps = { + "@com_google_code_findbugs_jsr305": "@com_google_code_findbugs_jsr305_3_0_0", + "@com_google_errorprone_error_prone_annotations": "@com_google_errorprone_error_prone_annotations_2_1_3", + }, + sed_replacements = { + "closure/repositories.bzl": [ + "s|com_google_code_findbugs_jsr305|com_google_code_findbugs_jsr305_3_0_0|g", + "s|com_google_errorprone_error_prone_annotations|com_google_errorprone_error_prone_annotations_2_1_3|g", + ], + }, + ) + + +def com_github_stackb_grpc_js(**kwargs): + """Grpc-web implementation (closure) + """ + name = "com_github_stackb_grpc_js" + ref = get_ref(name, "c94ef115b4e8eea526d5b54b829cfc7542f39bc5", kwargs) + sha256 = get_sha256(name, "bf3b7fca7803a9187e6d6780089cad593997c46d76c5d78ba3202ce8b5e424b2", kwargs) + github_archive(name, "stackb", "grpc.js", ref, sha256) + + +def build_bazel_rules_nodejs(**kwargs): + """Rule node.js + """ + name = "build_bazel_rules_nodejs" + ref = get_ref(name, "d334fd8e2274fb939cf447106dced97472534e80", kwargs) + sha256 = get_sha256(name, "5c69bae6545c5c335c834d4a7d04b888607993027513282a5139dbbea7166571", kwargs) + github_archive(name, "bazelbuild", "rules_nodejs", ref, sha256) + + +def build_bazel_rules_typescript(**kwargs): + """Rule for typescript + """ + name = "build_bazel_rules_typescript" + ref = get_ref(name, "3488d4fb89c6a02d79875d217d1029182fbcd797", kwargs) + sha256 = get_sha256(name, "22ebe19999ce34de2f0329d29c7cac1cccd449cd61d0813aa0e633ac8dfaef80", kwargs) + github_archive(name, "bazelbuild", "rules_typescript", ref, sha256) + + +def io_bazel_rules_webtesting(**kwargs): + """Rule for browser testing + """ + name = "io_bazel_rules_webtesting" + ref = get_ref(name, "e417b122a3d1e8f8a4cc09b1b05e2a5f52c8ecbb", kwargs) + sha256 = get_sha256(name, "76af36aac2aed3ca6984e0c45d1204582243fa6b81165bf0e42eacfffed9c769", kwargs) + github_archive(name, "bazelbuild", "rules_webtesting", ref, sha256) + + +def ts_protoc_gen(**kwargs): + """ d.ts generator + """ + name = "ts_protoc_gen" + ref = get_ref(name, "67e0c93fa4e29539ec57c97d23116f366ffb94e7", kwargs) + sha256 = get_sha256(name, "03b87365116b3e829b648c57bf17b8d252b682c33264de5663e7f410c9ad0e55", kwargs) + github_archive(name, "improbable-eng", "ts-protoc-gen", ref, sha256) + + +def bazel_gazelle(**kwargs): + """ build file generator for go + """ + name = "bazel_gazelle" + ref = get_ref(name, "6a1b93cc9b1c7e55e7d05a6d324bcf9d87ea3ab1", kwargs) + sha256 = get_sha256(name, "bc493cce447c02b361393a79e562a5f48f456705417ee76009a761a159540dd7", kwargs) + github_archive(name, "bazelbuild", "bazel-gazelle", ref, sha256) + + +def com_github_grpc_grpc_web(**kwargs): + """Rule for grpc-web + """ + name = "com_github_grpc_grpc_web" + ref = get_ref(name, "92aa9f8fc8e7af4aadede52ea075dd5790a63b62", kwargs) + sha256 = get_sha256(name, "f4996205e6d1d72e2be46f1bda4d26f8586998ed42021161322d490537d8c9b9", kwargs) + github_archive(name, "grpc", "grpc-web", ref, sha256)
diff --git a/example/proto/routeguide/routeguide.proto b/example/proto/routeguide/routeguide.proto index 61043f2..2dd615d 100644 --- a/example/proto/routeguide/routeguide.proto +++ b/example/proto/routeguide/routeguide.proto
@@ -17,6 +17,7 @@ option java_package = "io.grpc.examples.routeguide"; option java_outer_classname = "RouteGuideProto"; option objc_class_prefix = "RTG"; +option csharp_namespace = "RouteGuide"; package routeguide;
diff --git a/github.com/grpc/grpc-web/BUILD.bazel b/github.com/grpc/grpc-web/BUILD.bazel index 424d067..96faab8 100644 --- a/github.com/grpc/grpc-web/BUILD.bazel +++ b/github.com/grpc/grpc-web/BUILD.bazel
@@ -2,9 +2,43 @@ load("//:plugin.bzl", "proto_plugin") proto_plugin( - name = "grpc-web", - outputs = ["_grpc_web_pb.js"], - options = ["import_style=closure", "mode=grpcwebtext"], + name = "closure", + outputs = [ + "_grpc_web_pb.js", + ], + options = ["import_style=closure", "mode=grpcweb"], tool = "@com_github_grpc_grpc_web//javascript/net/grpc/web:protoc-gen-grpc-web", visibility = ["//visibility:public"], ) + +proto_plugin( + name = "commonjs", + outputs = [ + "_grpc_web_pb.js", + ], + options = ["import_style=commonjs", "mode=grpcweb"], + tool = "@com_github_grpc_grpc_web//javascript/net/grpc/web:protoc-gen-grpc-web", + visibility = ["//visibility:public"], +) + +proto_plugin( + name = "commonjs_dts", + outputs = [ + "_grpc_web_pb.js", + "_pb.d.ts", + ], + options = ["import_style=commonjs+dts", "mode=grpcweb"], + tool = "@com_github_grpc_grpc_web//javascript/net/grpc/web:protoc-gen-grpc-web", + visibility = ["//visibility:public"], +) + +proto_plugin( + name = "ts", + outputs = [ + "_pb.d.ts", + ], + options = ["import_style=typescript", "mode=grpcweb"], + tool = "@com_github_grpc_grpc_web//javascript/net/grpc/web:protoc-gen-grpc-web", + visibility = ["//visibility:public"], +) +
diff --git a/github.com/grpc/grpc-web/closure.bzl b/github.com/grpc/grpc-web/closure.bzl new file mode 100644 index 0000000..1381577 --- /dev/null +++ b/github.com/grpc/grpc-web/closure.bzl
@@ -0,0 +1,40 @@ +load("//closure:compile.bzl", "closure_proto_compile") +load("//github.com/grpc/grpc-web:compile.bzl", "closure_grpc_compile") +load("@io_bazel_rules_closure//closure:defs.bzl", "closure_js_library") + +def closure_grpc_library(**kwargs): + name = kwargs.get("name") + deps = kwargs.get("deps") + verbose = kwargs.get("verbose") + visibility = kwargs.get("visibility") + + name_pb = name + "_pb" + name_pb_grpc = name + "_pb_grpc" + + closure_proto_compile( + name = name_pb, + deps = deps, + visibility = visibility, + ) + + closure_grpc_compile( + name = name_pb_grpc, + deps = deps, + visibility = visibility, + verbose = verbose, + ) + + closure_js_library( + name = name, + srcs = [name_pb, name_pb_grpc], + deps = [ + "@com_github_grpc_grpc_web//javascript/net/grpc/web:abstractclientbase", + "@com_github_grpc_grpc_web//javascript/net/grpc/web:clientreadablestream", + "@com_github_grpc_grpc_web//javascript/net/grpc/web:grpcwebclientbase", + "@com_github_grpc_grpc_web//javascript/net/grpc/web:error", + "@io_bazel_rules_closure//closure/library", + "@io_bazel_rules_closure//closure/protobuf:jspb", + ], + lenient = True, + visibility = visibility, + ) \ No newline at end of file
diff --git a/github.com/grpc/grpc-web/compile.bzl b/github.com/grpc/grpc-web/compile.bzl index 705248c..acd6822 100644 --- a/github.com/grpc/grpc-web/compile.bzl +++ b/github.com/grpc/grpc-web/compile.bzl
@@ -1,7 +1,25 @@ load("//:compile.bzl", "proto_compile") -def grpc_web_proto_compile(**kwargs): +def closure_grpc_compile(**kwargs): proto_compile( - plugins = [str(Label("//github.com/grpc/grpc-web:grpc-web"))], + plugins = [str(Label("//github.com/grpc/grpc-web:closure"))], + **kwargs + ) + +def commonjs_grpc_compile(**kwargs): + proto_compile( + plugins = [str(Label("//github.com/grpc/grpc-web:commonjs"))], + **kwargs + ) + +def commonjs_dts_grpc_compile(**kwargs): + proto_compile( + plugins = [str(Label("//github.com/grpc/grpc-web:commonjs_dts"))], + **kwargs + ) + +def ts_grpc_compile(**kwargs): + proto_compile( + plugins = [str(Label("//github.com/grpc/grpc-web:ts"))], **kwargs )
diff --git a/github.com/grpc/grpc-web/deps.bzl b/github.com/grpc/grpc-web/deps.bzl index 9df7d29..35a2a5f 100644 --- a/github.com/grpc/grpc-web/deps.bzl +++ b/github.com/grpc/grpc-web/deps.bzl
@@ -1,13 +1,19 @@ +load("//:deps.bzl", + "com_github_grpc_grpc_web", + "com_google_protobuf", + "io_bazel_rules_closure", +) -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("//closure:deps.bzl", + "closure_proto_compile", +) -def grpc_web_deps(): - existing = native.existing_rules() - - if "com_github_grpc_grpc_web" not in existing: - http_archive( - name = "com_github_grpc_grpc_web", - urls = ["https://github.com/grpc/grpc-web/archive/92aa9f8fc8e7af4aadede52ea075dd5790a63b62.tar.gz"], - strip_prefix = "grpc-web-92aa9f8fc8e7af4aadede52ea075dd5790a63b62", - sha256 = "f4996205e6d1d72e2be46f1bda4d26f8586998ed42021161322d490537d8c9b9", - ) +def web_grpc_compile(**kwargs): + com_google_protobuf(**kwargs) + com_github_grpc_grpc_web(**kwargs) + + +def web_grpc_library(**kwargs): + closure_proto_compile(**kwargs) + web_grpc_compile(**kwargs) + io_bazel_rules_closure(**kwargs)
diff --git a/github.com/grpc/grpc-web/example/proto/BUILD.bazel b/github.com/grpc/grpc-web/example/proto/BUILD.bazel index a610d01..aef7e37 100644 --- a/github.com/grpc/grpc-web/example/proto/BUILD.bazel +++ b/github.com/grpc/grpc-web/example/proto/BUILD.bazel
@@ -1,10 +1,37 @@ -load("//github.com/grpc/grpc-web:compile.bzl", "grpc_web_proto_compile") +load("//github.com/grpc/grpc-web:compile.bzl", + "closure_grpc_compile", + "commonjs_grpc_compile", + "commonjs_dts_grpc_compile", + "ts_grpc_compile", +) -grpc_web_proto_compile( - name = "routeguide", +closure_grpc_compile( + name = "routeguide_closure", deps = [ "//example/proto/routeguide:proto_library", ], +) + +commonjs_grpc_compile( + name = "routeguide_commonjs", + deps = [ + "//example/proto/routeguide:proto_library", + ], +) + +commonjs_dts_grpc_compile( + name = "routeguide_dts", + deps = [ + "//example/proto/routeguide:proto_library", + ], +) + +ts_grpc_compile( + name = "routeguide_ts", + deps = [ + "//example/proto/routeguide:proto_library", + ], + verbose = 2, ) \ No newline at end of file
diff --git a/github.com/grpc/grpc-web/example/routeguide/client/BUILD.bazel b/github.com/grpc/grpc-web/example/routeguide/closure/BUILD.bazel similarity index 92% rename from github.com/grpc/grpc-web/example/routeguide/client/BUILD.bazel rename to github.com/grpc/grpc-web/example/routeguide/closure/BUILD.bazel index 57e1c0d..46bf4bd 100644 --- a/github.com/grpc/grpc-web/example/routeguide/client/BUILD.bazel +++ b/github.com/grpc/grpc-web/example/routeguide/closure/BUILD.bazel
@@ -5,9 +5,9 @@ "closure_js_binary", ) -load("//github.com/grpc/grpc-web:library.bzl", "web_grpc_library") +load("//github.com/grpc/grpc-web:closure.bzl", "closure_grpc_library") -web_grpc_library( +closure_grpc_library( name = "routeguide", deps = [ "//example/proto/routeguide:proto_library",
diff --git a/github.com/grpc/grpc-web/example/routeguide/client/client.js b/github.com/grpc/grpc-web/example/routeguide/closure/client.js similarity index 100% rename from github.com/grpc/grpc-web/example/routeguide/client/client.js rename to github.com/grpc/grpc-web/example/routeguide/closure/client.js
diff --git a/github.com/grpc/grpc-web/example/routeguide/client/client_test.js b/github.com/grpc/grpc-web/example/routeguide/closure/client_test.js similarity index 100% rename from github.com/grpc/grpc-web/example/routeguide/client/client_test.js rename to github.com/grpc/grpc-web/example/routeguide/closure/client_test.js
diff --git a/github.com/grpc/grpc-web/example/routeguide/client/main.js b/github.com/grpc/grpc-web/example/routeguide/closure/main.js similarity index 100% rename from github.com/grpc/grpc-web/example/routeguide/client/main.js rename to github.com/grpc/grpc-web/example/routeguide/closure/main.js
diff --git a/github.com/grpc/grpc-web/library.bzl b/github.com/grpc/grpc-web/library.bzl index 2099857..1381577 100644 --- a/github.com/grpc/grpc-web/library.bzl +++ b/github.com/grpc/grpc-web/library.bzl
@@ -1,8 +1,8 @@ load("//closure:compile.bzl", "closure_proto_compile") -load("//github.com/grpc/grpc-web:compile.bzl", "grpc_web_proto_compile") +load("//github.com/grpc/grpc-web:compile.bzl", "closure_grpc_compile") load("@io_bazel_rules_closure//closure:defs.bzl", "closure_js_library") -def web_grpc_library(**kwargs): +def closure_grpc_library(**kwargs): name = kwargs.get("name") deps = kwargs.get("deps") verbose = kwargs.get("verbose") @@ -17,7 +17,7 @@ visibility = visibility, ) - grpc_web_proto_compile( + closure_grpc_compile( name = name_pb_grpc, deps = deps, visibility = visibility,
diff --git a/github.com/improbable-eng/grpc-web/BUILD.bazel b/github.com/improbable-eng/grpc-web/BUILD.bazel deleted file mode 100644 index e6041bc..0000000 --- a/github.com/improbable-eng/grpc-web/BUILD.bazel +++ /dev/null
@@ -1,62 +0,0 @@ -# ====================================================================== -load("//:plugin.bzl", "proto_plugin") - -proto_plugin( - name = "ts", - outputs = ["_pb.d.ts"], - tool = ":protoc-gen-ts", - visibility = ["//visibility:public"], -) - -proto_plugin( - name = "grpc_ts", - outputs = ["_pb.d.ts"], - options = ["service=true"], - tool = ":protoc-gen-ts", - visibility = ["//visibility:public"], -) - -# ====================================================================== -# This pkg_tar fixes a bug in the original that deals with files from external -# repositories -load("//github.com/improbable-eng/grpc-web:pkg_tar.bzl", "pkg_tar") - -pkg_tar( - name = "runfiles", - srcs = ["@ts_protoc_gen//bin:protoc-gen-ts"], - strip_prefix = ".", - include_runfiles = True, -) - -# ====================================================================== -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_embed_data") - -go_embed_data( - name = "assets", - srcs = [ - ":runfiles", - "@node//:node", - ], - package = "main", - var = "assets", -) - -go_library( - name = "go_default_library", - srcs = [ - "protoc-gen-ts.go", - ":assets", # keep - ], - importpath = "github.com/stackb/rules_proto/github.com/improbable-eng/grpc-web/protoc-gen-ts", - visibility = ["//visibility:public"], -) - -# Note: it was necessary to repackage the assets in a go program to normalize -# the madness that is the runfiles tree. Interestingly, writing a protoc plugin -# in typescript results in a 54M bundle. - -go_binary( - name = "protoc-gen-ts", - embed = [":go_default_library"], - visibility = ["//visibility:public"], -)
diff --git a/github.com/improbable-eng/grpc-web/compile.bzl b/github.com/improbable-eng/grpc-web/compile.bzl deleted file mode 100644 index 64487a9..0000000 --- a/github.com/improbable-eng/grpc-web/compile.bzl +++ /dev/null
@@ -1,13 +0,0 @@ -load("//:compile.bzl", "proto_compile") - -def ts_proto_compile(**kwargs): - proto_compile( - plugins = [str(Label("//ts:ts"))], - **kwargs - ) - -def ts_grpc_compile(**kwargs): - proto_compile( - plugins = [str(Label("//ts:grpc_ts"))], - **kwargs - )
diff --git a/github.com/improbable-eng/grpc-web/deps.bzl b/github.com/improbable-eng/grpc-web/deps.bzl deleted file mode 100644 index 8548012..0000000 --- a/github.com/improbable-eng/grpc-web/deps.bzl +++ /dev/null
@@ -1,13 +0,0 @@ - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -def grpc_web_library_deps(): - existing = native.existing_rules() - - if "com_github_improbable_eng_grpc_web" not in existing: - http_archive( - name = "com_github_improbable_eng_grpc_web", - urls = ["https://github.com/improbable-eng/grpc-web/archive/b89ec6300fb9ce3f604ff02c22e1c106fe29a3b9.tar.gz"], - strip_prefix = "grpc-web-b89ec6300fb9ce3f604ff02c22e1c106fe29a3b9", - sha256 = "5d69bae6545c5c335c834d4a7d04b888607993027513282a5139dbbea7166571", - )
diff --git a/github.com/improbable-eng/grpc-web/example/proto/BUILD.bazel b/github.com/improbable-eng/grpc-web/example/proto/BUILD.bazel deleted file mode 100644 index 40a96b3..0000000 --- a/github.com/improbable-eng/grpc-web/example/proto/BUILD.bazel +++ /dev/null
@@ -1,10 +0,0 @@ - - -load("//github.com/improbable-eng/grpc-web:compile.bzl", "grpc_web_proto_compile") - -grpc_web_proto_compile( - name = "routeguide", - deps = [ - "//example/proto/routeguide:proto_library", - ], -) \ No newline at end of file
diff --git a/github.com/improbable-eng/grpc-web/example/routeguide/client/BUILD.bazel b/github.com/improbable-eng/grpc-web/example/routeguide/client/BUILD.bazel deleted file mode 100644 index 57e1c0d..0000000 --- a/github.com/improbable-eng/grpc-web/example/routeguide/client/BUILD.bazel +++ /dev/null
@@ -1,63 +0,0 @@ -load( - "@io_bazel_rules_closure//closure:defs.bzl", - "closure_js_library", - "closure_js_test", - "closure_js_binary", -) - -load("//github.com/grpc/grpc-web:library.bzl", "web_grpc_library") - -web_grpc_library( - name = "routeguide", - deps = [ - "//example/proto/routeguide:proto_library", - ], -) - -closure_js_test( - name = "client_test", - srcs = [ - "client_test.js", - ], - entry_points = ["example.routeguide.grpc_web.ClientTest"], - deps = [ - ":client", - ":routeguide", - "@io_bazel_rules_closure//closure/library/testing:asserts", - "@io_bazel_rules_closure//closure/library/testing:jsunit", - "@io_bazel_rules_closure//closure/library/testing:testsuite", - ], - size = "small", -) - -closure_js_library( - name = "client", - srcs = [ - "client.js", - ], - deps = [ - ":routeguide", - "@com_github_grpc_grpc_web//javascript/net/grpc/web:clientreadablestream", - ], -) - -closure_js_library( - name = "main", - srcs = [ - "main.js", - ], - deps = [ - ":client", - ], -) - -closure_js_binary( - name = "bundle", - compilation_level = "ADVANCED", - debug = False, - entry_points = ["goog:example.routeguide.grpc_web.client.run"], - output_wrapper = "(function(){%output%}).call(this);", - deps = [ - ":main", - ], -)
diff --git a/github.com/improbable-eng/grpc-web/example/routeguide/client/client.js b/github.com/improbable-eng/grpc-web/example/routeguide/client/client.js deleted file mode 100644 index c24afc3..0000000 --- a/github.com/improbable-eng/grpc-web/example/routeguide/client/client.js +++ /dev/null
@@ -1,46 +0,0 @@ -goog.module('example.routeguide.grpc_web.Client'); - -const ClientReadableStream = goog.require('grpc.web.ClientReadableStream'); -const Feature = goog.require('proto.routeguide.Feature'); -const Rectangle = goog.require('proto.routeguide.Rectangle'); -const RouteGuideClient = goog.require('proto.routeguide.RouteGuideClient'); - -/** - * A skeleton client. The point of this exercise is not actually to create a - * routeguide client, but show how we can use protobufs in closure code. - */ -class Client { - - /** - * @param {string} hostname - * @param {?Object} credentials - * @param {?Object} options - */ - constructor(hostname, credentials, options) { - /** - * @const @private @type {!RouteGuideClient} - */ - this.client_ = new RouteGuideClient(hostname, credentials, options); - } - - /** - * List existing features. Promise resolves to a list of features. - * - * @param {!Rectangle} rect - * @param {!Object} metadata - * @return {!ClientReadableStream<!Feature>} - */ - listFeatures(rect, metadata) { - return this.client_.listFeatures(rect, metadata); - } - - /** - * Run the client. A real implementation might actually do something here. - */ - run() { - console.log("Running grpc-web routeguide client..."); - } - -} - -exports = Client; \ No newline at end of file
diff --git a/github.com/improbable-eng/grpc-web/example/routeguide/client/client_test.js b/github.com/improbable-eng/grpc-web/example/routeguide/client/client_test.js deleted file mode 100644 index a025d8a..0000000 --- a/github.com/improbable-eng/grpc-web/example/routeguide/client/client_test.js +++ /dev/null
@@ -1,26 +0,0 @@ -goog.module('example.routeguide.grpc_web.ClientTest'); - -goog.setTestOnly('example.routeguide.grpc_web.ClientTest'); - -const Client = goog.require('example.routeguide.grpc_web.Client'); -const Rectangle = goog.require('proto.routeguide.Rectangle'); - - -const asserts = goog.require('goog.testing.asserts'); -const testSuite = goog.require('goog.testing.testSuite'); - -goog.require('goog.testing.jsunit'); - -testSuite({ - - testListFeatures: () => { - const client = new Client("localhost", null, null); - const rect = new Rectangle(); - - // Currently this segfaults phantomjs! - const stream = client.listFeatures(rect, {}); - asserts.assertNotNull(stream); - }, - -}); -
diff --git a/github.com/improbable-eng/grpc-web/example/routeguide/client/main.js b/github.com/improbable-eng/grpc-web/example/routeguide/client/main.js deleted file mode 100644 index 7d30ca1..0000000 --- a/github.com/improbable-eng/grpc-web/example/routeguide/client/main.js +++ /dev/null
@@ -1,11 +0,0 @@ -goog.provide('example.routeguide.grpc_web.client.run'); - -/** - * Main entry point - * @export - */ -example.routeguide.grpc_web.client.run = function() { - const Client = goog.require('example.routeguide.grpc_web.Client'); - const client = new Client("localhost", null, null); - client.run(); -};
diff --git a/github.com/improbable-eng/grpc-web/library.bzl b/github.com/improbable-eng/grpc-web/library.bzl deleted file mode 100644 index e87cf94..0000000 --- a/github.com/improbable-eng/grpc-web/library.bzl +++ /dev/null
@@ -1,33 +0,0 @@ -load("//node:compile.bzl", "node_proto_compile") -load("//ts:compile.bzl", "ts_proto_compile", "ts_grpc_compile") -load("@build_bazel_rules_typescript//:defs.bzl", "ts_library") - -def web_grpc_library(**kwargs): - name = kwargs.get("name") - deps = kwargs.get("deps") - verbose = kwargs.get("verbose") - visibility = kwargs.get("visibility") - - name_pb = name + "_pb" - name_pb_grpc = name + "_pb_grpc" - - node_grpc_compile( - name = name_pb, - deps = deps, - visibility = visibility, - ) - - ts_grpc_compile( - name = name_pb_grpc, - deps = deps, - visibility = visibility, - verbose = verbose, - ) - - ts_library( - name = name, - srcs = [name_pb, name_pb_grpc], - deps = [ - ], - visibility = visibility, - ) \ No newline at end of file
diff --git a/github.com/improbable-eng/ts-protoc-gen/deps.bzl b/github.com/improbable-eng/ts-protoc-gen/deps.bzl index be6d912..e14df80 100644 --- a/github.com/improbable-eng/ts-protoc-gen/deps.bzl +++ b/github.com/improbable-eng/ts-protoc-gen/deps.bzl
@@ -1,44 +1,33 @@ +load("//:deps.bzl", + "bazel_gazelle", + "build_bazel_rules_nodejs", + "build_bazel_rules_typescript", + "com_google_protobuf", + "io_bazel_rules_closure", + "io_bazel_rules_go", + "io_bazel_rules_webtesting", + "ts_protoc_gen", +) -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -def ts_proto_deps(): - existing = native.existing_rules() - - if "build_bazel_rules_nodejs" not in existing: - http_archive( - name = "build_bazel_rules_nodejs", - urls = ["https://github.com/bazelbuild/rules_nodejs/archive/d334fd8e2274fb939cf447106dced97472534e80.tar.gz"], - strip_prefix = "rules_nodejs-d334fd8e2274fb939cf447106dced97472534e80", - sha256 = "5c69bae6545c5c335c834d4a7d04b888607993027513282a5139dbbea7166571", - ) +def ts_proto_compile(**kwargs): + bazel_gazelle(**kwargs) + build_bazel_rules_nodejs(**kwargs) + build_bazel_rules_typescript(**kwargs) + com_google_protobuf(**kwargs) + io_bazel_rules_closure(**kwargs) + io_bazel_rules_go(**kwargs) + io_bazel_rules_go(**kwargs) + io_bazel_rules_webtesting(**kwargs) + ts_protoc_gen(**kwargs) - if "build_bazel_rules_typescript" not in existing: - http_archive( - name = "build_bazel_rules_typescript", - urls = ["https://github.com/bazelbuild/rules_typescript/archive/3488d4fb89c6a02d79875d217d1029182fbcd797.tar.gz"], - strip_prefix = "rules_typescript-3488d4fb89c6a02d79875d217d1029182fbcd797", - sha256 = "22ebe19999ce34de2f0329d29c7cac1cccd449cd61d0813aa0e633ac8dfaef80", - ) +def ts_grpc_compile(**kwargs): + ts_proto_compile(**kwargs) - if "io_bazel_rules_webtesting" not in existing: - http_archive( - name = "io_bazel_rules_webtesting", - urls = ["https://github.com/bazelbuild/rules_webtesting/archive/e417b122a3d1e8f8a4cc09b1b05e2a5f52c8ecbb.tar.gz"], - strip_prefix = "rules_webtesting-e417b122a3d1e8f8a4cc09b1b05e2a5f52c8ecbb", - sha256 = "76af36aac2aed3ca6984e0c45d1204582243fa6b81165bf0e42eacfffed9c769", - ) +def ts_proto_library(**kwargs): + ts_proto_compile(**kwargs) - if "ts_protoc_gen" not in existing: - http_archive( - name = "ts_protoc_gen", - urls = ["https://github.com/improbable-eng/ts-protoc-gen/archive/67e0c93fa4e29539ec57c97d23116f366ffb94e7.tar.gz"], - strip_prefix = "ts-protoc-gen-67e0c93fa4e29539ec57c97d23116f366ffb94e7", - sha256 = "03b87365116b3e829b648c57bf17b8d252b682c33264de5663e7f410c9ad0e55", - ) +def ts_grpc_library(**kwargs): + ts_grpc_compile(**kwargs) + ts_proto_library(**kwargs) - if "bazel_gazelle" not in existing: - http_archive( - name = "bazel_gazelle", - urls = ["https://github.com/bazelbuild/bazel-gazelle/releases/download/0.14.0/bazel-gazelle-0.14.0.tar.gz"], - sha256 = "c0a5739d12c6d05b6c1ad56f2200cb0b57c5a70e03ebd2f7b87ce88cabf09c7b", - )
diff --git a/github.com/stackb/grpc.js/compile.bzl b/github.com/stackb/grpc.js/compile.bzl index 2435b20..9f8ccdc 100644 --- a/github.com/stackb/grpc.js/compile.bzl +++ b/github.com/stackb/grpc.js/compile.bzl
@@ -1,6 +1,6 @@ load("//:compile.bzl", "proto_compile") -def grpc_js_proto_compile(**kwargs): +def closure_grpc_compile(**kwargs): proto_compile( plugins = [str(Label("//github.com/stackb/grpc.js:grpc.js"))], **kwargs
diff --git a/github.com/stackb/grpc.js/deps.bzl b/github.com/stackb/grpc.js/deps.bzl index a25154f..d0a7ac7 100644 --- a/github.com/stackb/grpc.js/deps.bzl +++ b/github.com/stackb/grpc.js/deps.bzl
@@ -1,13 +1,24 @@ +load("//:deps.bzl", + "com_github_stackb_grpc_js", + "com_google_protobuf", + "io_bazel_rules_closure", + "io_bazel_rules_go", +) -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("//closure:deps.bzl", + "closure_proto_compile", +) -def grpc_js_deps(): - existing = native.existing_rules() - - if "com_github_stackb_grpc_js" not in existing: - http_archive( - name = "com_github_stackb_grpc_js", - urls = ["https://github.com/stackb/grpc.js/archive/c94ef115b4e8eea526d5b54b829cfc7542f39bc5.tar.gz"], - strip_prefix = "grpc.js-c94ef115b4e8eea526d5b54b829cfc7542f39bc5", - sha256 = "bf3b7fca7803a9187e6d6780089cad593997c46d76c5d78ba3202ce8b5e424b2", - ) +def closure_grpc_compile(**kwargs): + # protoc + com_google_protobuf(**kwargs) + # Need rules_go to build the plugin + io_bazel_rules_go(**kwargs) + # Need the plugin itself + com_github_stackb_grpc_js(**kwargs) + + +def closure_grpc_library(**kwargs): + closure_proto_compile(**kwargs) + closure_grpc_compile(**kwargs) + io_bazel_rules_closure(**kwargs)
diff --git a/github.com/stackb/grpc.js/example/proto/BUILD.bazel b/github.com/stackb/grpc.js/example/proto/BUILD.bazel index b9b2333..5313634 100644 --- a/github.com/stackb/grpc.js/example/proto/BUILD.bazel +++ b/github.com/stackb/grpc.js/example/proto/BUILD.bazel
@@ -1,8 +1,8 @@ -load("//github.com/stackb/grpc.js:compile.bzl", "grpc_js_proto_compile") +load("//github.com/stackb/grpc.js:compile.bzl", "closure_grpc_compile") -grpc_js_proto_compile( +closure_grpc_compile( name = "routeguide", deps = [ "//example/proto/routeguide:proto_library",
diff --git a/github.com/stackb/grpc.js/example/routeguide/client/BUILD.bazel b/github.com/stackb/grpc.js/example/routeguide/client/BUILD.bazel index c216388..64753a5 100644 --- a/github.com/stackb/grpc.js/example/routeguide/client/BUILD.bazel +++ b/github.com/stackb/grpc.js/example/routeguide/client/BUILD.bazel
@@ -5,9 +5,9 @@ "closure_js_binary", ) -load("//github.com/stackb/grpc.js:library.bzl", "grpc_js_proto_library") +load("//github.com/stackb/grpc.js:library.bzl", "closure_grpc_library") -grpc_js_proto_library( +closure_grpc_library( name = "routeguide", deps = [ "//example/proto/routeguide:proto_library",
diff --git a/github.com/stackb/grpc.js/library.bzl b/github.com/stackb/grpc.js/library.bzl index 0460ebf..b8e0075 100644 --- a/github.com/stackb/grpc.js/library.bzl +++ b/github.com/stackb/grpc.js/library.bzl
@@ -1,8 +1,8 @@ load("//closure:compile.bzl", "closure_proto_compile") -load("//github.com/stackb/grpc.js:compile.bzl", "grpc_js_proto_compile") +load("//github.com/stackb/grpc.js:compile.bzl", "closure_grpc_compile") load("@io_bazel_rules_closure//closure:defs.bzl", "closure_js_library") -def grpc_js_proto_library(**kwargs): +def closure_grpc_library(**kwargs): name = kwargs.get("name") deps = kwargs.get("deps") verbose = kwargs.get("verbose") @@ -17,7 +17,7 @@ visibility = visibility, ) - grpc_js_proto_compile( + closure_grpc_compile( name = name_pb_grpc, deps = deps, visibility = visibility,
diff --git a/go/deps.bzl b/go/deps.bzl index d812c05..55584b0 100644 --- a/go/deps.bzl +++ b/go/deps.bzl
@@ -1,19 +1,16 @@ +load("//:deps.bzl", + "io_bazel_rules_go", +) +def go_proto_compile(**kwargs): + io_bazel_rules_go(**kwargs) -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +def go_grpc_compile(**kwargs): + go_proto_compile(**kwargs) -def go_deps(): - existing = native.existing_rules() +def go_proto_library(**kwargs): + go_proto_compile(**kwargs) - if "io_bazel_rules_go" not in existing: - http_archive( - name = "io_bazel_rules_go", - urls = ["https://github.com/bazelbuild/rules_go/releases/download/0.15.3/rules_go-0.15.3.tar.gz"], - sha256 = "97cf62bdef33519412167fd1e4b0810a318a7c234f5f8dc4f53e2da86241c492", - ) - -def go_proto_compile_deps(): - go_deps() - -def go_proto_library_deps(): - go_proto_compile_deps() \ No newline at end of file +def go_grpc_library(**kwargs): + go_grpc_compile(**kwargs) + go_proto_library(**kwargs)
diff --git a/java/deps.bzl b/java/deps.bzl index 6656cc0..f685a68 100644 --- a/java/deps.bzl +++ b/java/deps.bzl
@@ -1,14 +1,20 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("//:deps.bzl", + "com_google_guava_guava", + "com_google_protobuf", + "io_grpc_grpc_java", +) -PLUGIN_VERSION = "1.9.0" +def java_proto_compile(**kwargs): + com_google_protobuf(**kwargs) -def java_grpc_library_deps(): - existing = native.existing_rules() +def java_grpc_compile(**kwargs): + java_proto_compile(**kwargs) + io_grpc_grpc_java(**kwargs) - if "io_grpc_grpc_java" not in existing: - http_archive( - name = "io_grpc_grpc_java", - urls = ["https://github.com/grpc/grpc-java/archive/v1.15.0.tar.gz"], - strip_prefix = "grpc-java-1.15.0", - sha256 = "8a131e773b1c9c0442e606b7fc85d7fc6739659281589d01bd917ceda218a1c7", - ) +def java_proto_library(**kwargs): + java_proto_compile(**kwargs) + com_google_guava_guava(**kwargs) + +def java_grpc_library(**kwargs): + java_grpc_compile(**kwargs) + java_proto_library(**kwargs)
diff --git a/node/deps.bzl b/node/deps.bzl index fe5c6d1..09dcb11 100644 --- a/node/deps.bzl +++ b/node/deps.bzl
@@ -1,20 +1,20 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file") +load("//:deps.bzl", + "com_github_grpc_grpc", + "com_google_protobuf", + "org_pubref_rules_node", +) -def node_proto_compile_deps(): - pass +def node_proto_compile(**kwargs): + com_google_protobuf(**kwargs) -def node_proto_library_deps( - rules_node_version = "1c60708c599e6ebd5213f0987207a1d854f13e23", - rules_node_sha256 = "248efb149bfa86d9d778b43949351015b23a8339405a9878467a1583ff6df348", -): - node_proto_compile_deps() +def node_grpc_compile(**kwargs): + node_proto_compile(**kwargs) + com_github_grpc_grpc(**kwargs) - existing = native.existing_rules() +def node_proto_library(**kwargs): + node_proto_compile(**kwargs) + org_pubref_rules_node(**kwargs) - if "org_pubref_rules_node" not in existing: - http_archive( - name = "org_pubref_rules_node", - urls = ["https://github.com/pubref/rules_node/archive/%s.tar.gz" % rules_node_version], - sha256 = rules_node_sha256, - strip_prefix = "rules_node-" + rules_node_version, - ) +def node_grpc_library(**kwargs): + node_grpc_compile(**kwargs) + node_proto_library(**kwargs)
diff --git a/node/example/routeguide/BUILD.bazel b/node/example/routeguide/BUILD.bazel index 9994aac..68c764a 100644 --- a/node/example/routeguide/BUILD.bazel +++ b/node/example/routeguide/BUILD.bazel
@@ -18,3 +18,16 @@ name = "client", entrypoint = ":client_module", ) + +node_module( + name = "server_module", + srcs = ["server.js"], + deps = [ + ":routeguide", + ], +) + +node_binary( + name = "server", + entrypoint = ":server_module", +)
diff --git a/node/example/routeguide/server.js b/node/example/routeguide/server.js new file mode 100644 index 0000000..7fae380 --- /dev/null +++ b/node/example/routeguide/server.js
@@ -0,0 +1,243 @@ +/* + * + * Copyright 2015 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. + * + */ + +var messages = require('routeguide').messages; +var services = require('routeguide').services; + +var fs = require('fs'); +var parseArgs = require('minimist'); +var path = require('path'); +var _ = require('lodash'); +var grpc = require('grpc'); + +var COORD_FACTOR = 1e7; + +/** + * For simplicity, a point is a record type that looks like + * {latitude: number, longitude: number}, and a feature is a record type that + * looks like {name: string, location: point}. feature objects with name==='' + * are points with no feature. + */ + +/** + * List of feature objects at points that have been requested so far. + */ +var feature_list = []; + +/** + * Get a feature object at the given point, or creates one if it does not exist. + * @param {point} point The point to check + * @return {feature} The feature object at the point. Note that an empty name + * indicates no feature + */ +function checkFeature(point) { + var feature; + // Check if there is already a feature object for the given point + for (var i = 0; i < feature_list.length; i++) { + feature = feature_list[i]; + if (feature.getLocation().getLatitude() === point.getLatitude() && + feature.getLocation().getLongitude() === point.getLongitude()) { + return feature; + } + } + var name = ''; + feature = new messages.Feature(); + feature.setName(name); + feature.setLocation(point); + return feature; +} + +/** + * getFeature request handler. Gets a request with a point, and responds with a + * feature object indicating whether there is a feature at that point. + * @param {EventEmitter} call Call object for the handler to process + * @param {function(Error, feature)} callback Response callback + */ +function getFeature(call, callback) { + callback(null, checkFeature(call.request)); +} + +/** + * listFeatures request handler. Gets a request with two points, and responds + * with a stream of all features in the bounding box defined by those points. + * @param {Writable} call Writable stream for responses with an additional + * request property for the request value. + */ +function listFeatures(call) { + var lo = call.request.getLo(); + var hi = call.request.getHi(); + var left = _.min([lo.getLongitude(), hi.getLongitude()]); + var right = _.max([lo.getLongitude(), hi.getLongitude()]); + var top = _.max([lo.getLatitude(), hi.getLatitude()]); + var bottom = _.min([lo.getLatitude(), hi.getLatitude()]); + // For each feature, check if it is in the given bounding box + _.each(feature_list, function(feature) { + if (feature.getName() === '') { + return; + } + if (feature.getLocation().getLongitude() >= left && + feature.getLocation().getLongitude() <= right && + feature.getLocation().getLatitude() >= bottom && + feature.getLocation().getLatitude() <= top) { + call.write(feature); + } + }); + call.end(); +} + +/** + * Calculate the distance between two points using the "haversine" formula. + * The formula is based on http://mathforum.org/library/drmath/view/51879.html. + * @param start The starting point + * @param end The end point + * @return The distance between the points in meters + */ +function getDistance(start, end) { + function toRadians(num) { + return num * Math.PI / 180; + } + var R = 6371000; // earth radius in metres + var lat1 = toRadians(start.getLatitude() / COORD_FACTOR); + var lat2 = toRadians(end.getLatitude() / COORD_FACTOR); + var lon1 = toRadians(start.getLongitude() / COORD_FACTOR); + var lon2 = toRadians(end.getLongitude() / COORD_FACTOR); + + var deltalat = lat2-lat1; + var deltalon = lon2-lon1; + var a = Math.sin(deltalat/2) * Math.sin(deltalat/2) + + Math.cos(lat1) * Math.cos(lat2) * + Math.sin(deltalon/2) * Math.sin(deltalon/2); + var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); + return R * c; +} + +/** + * recordRoute handler. Gets a stream of points, and responds with statistics + * about the "trip": number of points, number of known features visited, total + * distance traveled, and total time spent. + * @param {Readable} call The request point stream. + * @param {function(Error, routeSummary)} callback The callback to pass the + * response to + */ +function recordRoute(call, callback) { + var point_count = 0; + var feature_count = 0; + var distance = 0; + var previous = null; + // Start a timer + var start_time = process.hrtime(); + call.on('data', function(point) { + point_count += 1; + if (checkFeature(point).name !== '') { + feature_count += 1; + } + /* For each point after the first, add the incremental distance from the + * previous point to the total distance value */ + if (previous != null) { + distance += getDistance(previous, point); + } + previous = point; + }); + call.on('end', function() { + var summary = new messages.RouteSummary(); + summary.setPointCount(point_count); + summary.setFeatureCount(feature_count); + // Cast the distance to an integer + summary.setDistance(distance|0); + // End the timer + summary.setElapsedTime(process.hrtime(start_time)[0]); + callback(null, summary); + }); +} + +var route_notes = {}; + +/** + * Turn the point into a dictionary key. + * @param {point} point The point to use + * @return {string} The key for an object + */ +function pointKey(point) { + return point.getLatitude() + ' ' + point.getLongitude(); +} + +/** + * routeChat handler. Receives a stream of message/location pairs, and responds + * with a stream of all previous messages at each of those locations. + * @param {Duplex} call The stream for incoming and outgoing messages + */ +function routeChat(call) { + call.on('data', function(note) { + var key = pointKey(note.getLocation()); + /* For each note sent, respond with all previous notes that correspond to + * the same point */ + if (route_notes.hasOwnProperty(key)) { + _.each(route_notes[key], function(note) { + call.write(note); + }); + } else { + route_notes[key] = []; + } + // Then add the new note to the list + route_notes[key].push(note); + }); + call.on('end', function() { + call.end(); + }); +} + +/** + * Get a new server with the handler functions in this file bound to the methods + * it serves. + * @return {Server} The new server object + */ +function getServer() { + var server = new grpc.Server(); + server.addService(services.RouteGuideService, { + getFeature: getFeature, + listFeatures: listFeatures, + recordRoute: recordRoute, + routeChat: routeChat + }); + return server; +} + +if (require.main === module) { + // If this is run as a script, start a server on an unused port + var routeServer = getServer(); + routeServer.bind('0.0.0.0:50051', grpc.ServerCredentials.createInsecure()); + var argv = parseArgs(process.argv, { + string: 'db_path' + }); + fs.readFile(path.resolve(argv.db_path), function(err, data) { + if (err) throw err; + // Transform the loaded features to Feature objects + feature_list = _.map(JSON.parse(data), function(value) { + var feature = new messages.Feature(); + feature.setName(value.name); + var location = new messages.Point(); + location.setLatitude(value.location.latitude); + location.setLongitude(value.location.longitude); + feature.setLocation(location); + return feature; + }); + routeServer.start(); + }); +} + +exports.getServer = getServer; \ No newline at end of file
diff --git a/objc/deps.bzl b/objc/deps.bzl index e69de29..af7d697 100644 --- a/objc/deps.bzl +++ b/objc/deps.bzl
@@ -0,0 +1,11 @@ +load("//:deps.bzl", + "com_github_grpc_grpc", + "com_google_protobuf", +) + +def objc_proto_compile(**kwargs): + com_google_protobuf(**kwargs) + +def objc_grpc_compile(**kwargs): + objc_proto_compile(**kwargs) + com_github_grpc_grpc(**kwargs)
diff --git a/php/deps.bzl b/php/deps.bzl index e69de29..4d276e4 100644 --- a/php/deps.bzl +++ b/php/deps.bzl
@@ -0,0 +1,11 @@ +load("//:deps.bzl", + "com_github_grpc_grpc", + "com_google_protobuf", +) + +def php_proto_compile(**kwargs): + com_google_protobuf(**kwargs) + +def php_grpc_compile(**kwargs): + php_proto_compile(**kwargs) + com_github_grpc_grpc(**kwargs)
diff --git a/python/deps.bzl b/python/deps.bzl index 3e797cd..50d28ab 100644 --- a/python/deps.bzl +++ b/python/deps.bzl
@@ -1,36 +1,22 @@ - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -SIX_BUILD = """ -genrule( - name = "copy_six", - srcs = ["six-1.10.0/six.py"], - outs = ["six.py"], - cmd = "cp $< $(@)", +load("//:deps.bzl", + "com_github_grpc_grpc", + "com_google_protobuf", + "io_bazel_rules_python", + "six", ) -py_library( - name = "six", - srcs = ["six.py"], - srcs_version = "PY2AND3", - visibility = ["//visibility:public"], -) -""" +def python_proto_compile(**kwargs): + com_google_protobuf(**kwargs) -def py_proto_compile_deps(): - existing = native.existing_rules() - - if "six" not in existing: - native.new_http_archive( - name = "six", - build_file_content = SIX_BUILD, - sha256 = "105f8d68616f8248e24bf0e9372ef04d3cc10104f1980f54d57b2ce73a5ad56a", - urls = ["https://pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz#md5=34eed507548117b2ab523ab14b2f8b55"], - ) - if "io_bazel_rules_python" not in existing: - http_archive( - name = "io_bazel_rules_python", - urls = ["https://github.com/bazelbuild/rules_python/archive/8b5d0683a7d878b28fffe464779c8a53659fc645.tar.gz"], - strip_prefix = "rules_python-8b5d0683a7d878b28fffe464779c8a53659fc645", - sha256 = "8b32d2dbb0b0dca02e0410da81499eef8ff051dad167d6931a92579e3b2a1d48", - ) +def python_grpc_compile(**kwargs): + python_proto_compile(**kwargs) + com_github_grpc_grpc(**kwargs) + +def python_proto_library(**kwargs): + python_proto_compile(**kwargs) + io_bazel_rules_python(**kwargs) + six(**kwargs) + +def python_grpc_library(**kwargs): + python_grpc_compile(**kwargs) + python_proto_library(**kwargs) \ No newline at end of file
diff --git a/ruby/deps.bzl b/ruby/deps.bzl index 9cd3cc8..47a761d 100644 --- a/ruby/deps.bzl +++ b/ruby/deps.bzl
@@ -1,19 +1,21 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -def ruby_proto_library_deps( - rules_ruby_version = "5976385c9c4b94647bc95e8bf9d9989f1dee4ee3", # PR#8, - rules_ruby_sha256 = "7991ded3b902aba4c13fa7bdd67132edfcc279930b356737c1a3d3b2686d08c8", -): - existing = native.existing_rules() +load("//:deps.bzl", + "com_google_protobuf", + "com_github_grpc_grpc", + "com_github_yugui_rules_ruby", +) - if "com_github_yugui_rules_ruby" not in existing: - http_archive( - name = "com_github_yugui_rules_ruby", - urls = ["https://github.com/yugui/rules_ruby/archive/%s.tar.gz" % rules_ruby_version], - sha256 = rules_ruby_sha256, - strip_prefix = "rules_ruby-" + rules_ruby_version, - ) - # native.local_repository( - # name = "com_github_yugui_rules_ruby", - # path = "/home/pcj/github/yugui/rules_ruby", - # ) +def ruby_proto_compile(**kwargs): + com_google_protobuf(**kwargs) + +def ruby_grpc_compile(**kwargs): + ruby_proto_compile(**kwargs) + com_github_grpc_grpc(**kwargs) + +def ruby_proto_library(**kwargs): + ruby_proto_compile(**kwargs) + com_github_yugui_rules_ruby(**kwargs) + +def ruby_grpc_library(**kwargs): + ruby_grpc_compile(**kwargs) + ruby_proto_library(**kwargs)
diff --git a/rust/BUILD.bazel b/rust/BUILD.bazel index db1aee9..78ff3fd 100644 --- a/rust/BUILD.bazel +++ b/rust/BUILD.bazel
@@ -15,18 +15,6 @@ visibility = ["//visibility:public"], ) -# load("//rust:toolchain.bzl", "rust_proto_toolchain") - -# toolchain_type(name = "toolchain") - -# toolchain( -# name = "default-proto-toolchain", -# toolchain = ":default-proto-toolchain-impl", -# toolchain_type = "@io_bazel_rules_rust//proto:toolchain", -# ) - -# rust_proto_toolchain(name = "default-proto-toolchain-impl") - alias( name = "protoc_gen_rust", actual = "@raze__protobuf_codegen__1_6_0//:cargo_bin_protoc_gen_rust",
diff --git a/rust/cargo/crates.bzl b/rust/cargo/crates.bzl index 8758c96..a29a4e4 100644 --- a/rust/cargo/crates.bzl +++ b/rust/cargo/crates.bzl
@@ -11,7 +11,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/arrayvec/arrayvec-0.4.7.crate", type = "tar.gz", strip_prefix = "arrayvec-0.4.7", - build_file = "//rust/cargo/remote:arrayvec-0.4.7.BUILD" + build_file = str(Label("//rust/cargo/remote:arrayvec-0.4.7.BUILD")) ) native.new_http_archive( @@ -19,7 +19,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/base64/base64-0.9.3.crate", type = "tar.gz", strip_prefix = "base64-0.9.3", - build_file = "//rust/cargo/remote:base64-0.9.3.BUILD" + build_file = str(Label("//rust/cargo/remote:base64-0.9.3.BUILD")) ) native.new_http_archive( @@ -27,7 +27,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/bitflags/bitflags-1.0.4.crate", type = "tar.gz", strip_prefix = "bitflags-1.0.4", - build_file = "//rust/cargo/remote:bitflags-1.0.4.BUILD" + build_file = str(Label("//rust/cargo/remote:bitflags-1.0.4.BUILD")) ) native.new_http_archive( @@ -35,7 +35,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/byteorder/byteorder-1.2.6.crate", type = "tar.gz", strip_prefix = "byteorder-1.2.6", - build_file = "//rust/cargo/remote:byteorder-1.2.6.BUILD" + build_file = str(Label("//rust/cargo/remote:byteorder-1.2.6.BUILD")) ) native.new_http_archive( @@ -43,7 +43,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/bytes/bytes-0.4.10.crate", type = "tar.gz", strip_prefix = "bytes-0.4.10", - build_file = "//rust/cargo/remote:bytes-0.4.10.BUILD" + build_file = str(Label("//rust/cargo/remote:bytes-0.4.10.BUILD")) ) native.new_http_archive( @@ -51,7 +51,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/cfg-if/cfg-if-0.1.5.crate", type = "tar.gz", strip_prefix = "cfg-if-0.1.5", - build_file = "//rust/cargo/remote:cfg-if-0.1.5.BUILD" + build_file = str(Label("//rust/cargo/remote:cfg-if-0.1.5.BUILD")) ) native.new_http_archive( @@ -59,7 +59,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/cloudabi/cloudabi-0.0.3.crate", type = "tar.gz", strip_prefix = "cloudabi-0.0.3", - build_file = "//rust/cargo/remote:cloudabi-0.0.3.BUILD" + build_file = str(Label("//rust/cargo/remote:cloudabi-0.0.3.BUILD")) ) native.new_http_archive( @@ -67,7 +67,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/crossbeam-deque/crossbeam-deque-0.6.1.crate", type = "tar.gz", strip_prefix = "crossbeam-deque-0.6.1", - build_file = "//rust/cargo/remote:crossbeam-deque-0.6.1.BUILD" + build_file = str(Label("//rust/cargo/remote:crossbeam-deque-0.6.1.BUILD")) ) native.new_http_archive( @@ -75,7 +75,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/crossbeam-epoch/crossbeam-epoch-0.5.2.crate", type = "tar.gz", strip_prefix = "crossbeam-epoch-0.5.2", - build_file = "//rust/cargo/remote:crossbeam-epoch-0.5.2.BUILD" + build_file = str(Label("//rust/cargo/remote:crossbeam-epoch-0.5.2.BUILD")) ) native.new_http_archive( @@ -83,7 +83,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/crossbeam-utils/crossbeam-utils-0.5.0.crate", type = "tar.gz", strip_prefix = "crossbeam-utils-0.5.0", - build_file = "//rust/cargo/remote:crossbeam-utils-0.5.0.BUILD" + build_file = str(Label("//rust/cargo/remote:crossbeam-utils-0.5.0.BUILD")) ) native.new_http_archive( @@ -91,7 +91,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/fuchsia-zircon/fuchsia-zircon-0.3.3.crate", type = "tar.gz", strip_prefix = "fuchsia-zircon-0.3.3", - build_file = "//rust/cargo/remote:fuchsia-zircon-0.3.3.BUILD" + build_file = str(Label("//rust/cargo/remote:fuchsia-zircon-0.3.3.BUILD")) ) native.new_http_archive( @@ -99,7 +99,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/fuchsia-zircon-sys/fuchsia-zircon-sys-0.3.3.crate", type = "tar.gz", strip_prefix = "fuchsia-zircon-sys-0.3.3", - build_file = "//rust/cargo/remote:fuchsia-zircon-sys-0.3.3.BUILD" + build_file = str(Label("//rust/cargo/remote:fuchsia-zircon-sys-0.3.3.BUILD")) ) native.new_http_archive( @@ -107,7 +107,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/futures/futures-0.1.24.crate", type = "tar.gz", strip_prefix = "futures-0.1.24", - build_file = "//rust/cargo/remote:futures-0.1.24.BUILD" + build_file = str(Label("//rust/cargo/remote:futures-0.1.24.BUILD")) ) native.new_http_archive( @@ -115,7 +115,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/futures-cpupool/futures-cpupool-0.1.8.crate", type = "tar.gz", strip_prefix = "futures-cpupool-0.1.8", - build_file = "//rust/cargo/remote:futures-cpupool-0.1.8.BUILD" + build_file = str(Label("//rust/cargo/remote:futures-cpupool-0.1.8.BUILD")) ) native.new_http_archive( @@ -123,7 +123,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/grpc/grpc-0.4.0.crate", type = "tar.gz", strip_prefix = "grpc-0.4.0", - build_file = "//rust/cargo/remote:grpc-0.4.0.BUILD" + build_file = str(Label("//rust/cargo/remote:grpc-0.4.0.BUILD")) ) native.new_http_archive( @@ -131,7 +131,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/grpc-compiler/grpc-compiler-0.4.0.crate", type = "tar.gz", strip_prefix = "grpc-compiler-0.4.0", - build_file = "//rust/cargo/remote:grpc-compiler-0.4.0.BUILD" + build_file = str(Label("//rust/cargo/remote:grpc-compiler-0.4.0.BUILD")) ) native.new_http_archive( @@ -139,7 +139,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/httpbis/httpbis-0.6.1.crate", type = "tar.gz", strip_prefix = "httpbis-0.6.1", - build_file = "//rust/cargo/remote:httpbis-0.6.1.BUILD" + build_file = str(Label("//rust/cargo/remote:httpbis-0.6.1.BUILD")) ) native.new_http_archive( @@ -147,7 +147,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/iovec/iovec-0.1.2.crate", type = "tar.gz", strip_prefix = "iovec-0.1.2", - build_file = "//rust/cargo/remote:iovec-0.1.2.BUILD" + build_file = str(Label("//rust/cargo/remote:iovec-0.1.2.BUILD")) ) native.new_http_archive( @@ -155,7 +155,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/kernel32-sys/kernel32-sys-0.2.2.crate", type = "tar.gz", strip_prefix = "kernel32-sys-0.2.2", - build_file = "//rust/cargo/remote:kernel32-sys-0.2.2.BUILD" + build_file = str(Label("//rust/cargo/remote:kernel32-sys-0.2.2.BUILD")) ) native.new_http_archive( @@ -163,7 +163,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/lazy_static/lazy_static-1.1.0.crate", type = "tar.gz", strip_prefix = "lazy_static-1.1.0", - build_file = "//rust/cargo/remote:lazy_static-1.1.0.BUILD" + build_file = str(Label("//rust/cargo/remote:lazy_static-1.1.0.BUILD")) ) native.new_http_archive( @@ -171,7 +171,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/lazycell/lazycell-1.2.0.crate", type = "tar.gz", strip_prefix = "lazycell-1.2.0", - build_file = "//rust/cargo/remote:lazycell-1.2.0.BUILD" + build_file = str(Label("//rust/cargo/remote:lazycell-1.2.0.BUILD")) ) native.new_http_archive( @@ -179,7 +179,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/libc/libc-0.2.43.crate", type = "tar.gz", strip_prefix = "libc-0.2.43", - build_file = "//rust/cargo/remote:libc-0.2.43.BUILD" + build_file = str(Label("//rust/cargo/remote:libc-0.2.43.BUILD")) ) native.new_http_archive( @@ -187,7 +187,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/lock_api/lock_api-0.1.3.crate", type = "tar.gz", strip_prefix = "lock_api-0.1.3", - build_file = "//rust/cargo/remote:lock_api-0.1.3.BUILD" + build_file = str(Label("//rust/cargo/remote:lock_api-0.1.3.BUILD")) ) native.new_http_archive( @@ -195,7 +195,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/log/log-0.3.9.crate", type = "tar.gz", strip_prefix = "log-0.3.9", - build_file = "//rust/cargo/remote:log-0.3.9.BUILD" + build_file = str(Label("//rust/cargo/remote:log-0.3.9.BUILD")) ) native.new_http_archive( @@ -203,7 +203,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/log/log-0.4.5.crate", type = "tar.gz", strip_prefix = "log-0.4.5", - build_file = "//rust/cargo/remote:log-0.4.5.BUILD" + build_file = str(Label("//rust/cargo/remote:log-0.4.5.BUILD")) ) native.new_http_archive( @@ -211,7 +211,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/memoffset/memoffset-0.2.1.crate", type = "tar.gz", strip_prefix = "memoffset-0.2.1", - build_file = "//rust/cargo/remote:memoffset-0.2.1.BUILD" + build_file = str(Label("//rust/cargo/remote:memoffset-0.2.1.BUILD")) ) native.new_http_archive( @@ -219,7 +219,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/mio/mio-0.6.16.crate", type = "tar.gz", strip_prefix = "mio-0.6.16", - build_file = "//rust/cargo/remote:mio-0.6.16.BUILD" + build_file = str(Label("//rust/cargo/remote:mio-0.6.16.BUILD")) ) native.new_http_archive( @@ -227,7 +227,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/mio-uds/mio-uds-0.6.7.crate", type = "tar.gz", strip_prefix = "mio-uds-0.6.7", - build_file = "//rust/cargo/remote:mio-uds-0.6.7.BUILD" + build_file = str(Label("//rust/cargo/remote:mio-uds-0.6.7.BUILD")) ) native.new_http_archive( @@ -235,7 +235,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/miow/miow-0.2.1.crate", type = "tar.gz", strip_prefix = "miow-0.2.1", - build_file = "//rust/cargo/remote:miow-0.2.1.BUILD" + build_file = str(Label("//rust/cargo/remote:miow-0.2.1.BUILD")) ) native.new_http_archive( @@ -243,7 +243,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/net2/net2-0.2.33.crate", type = "tar.gz", strip_prefix = "net2-0.2.33", - build_file = "//rust/cargo/remote:net2-0.2.33.BUILD" + build_file = str(Label("//rust/cargo/remote:net2-0.2.33.BUILD")) ) native.new_http_archive( @@ -251,7 +251,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/nodrop/nodrop-0.1.12.crate", type = "tar.gz", strip_prefix = "nodrop-0.1.12", - build_file = "//rust/cargo/remote:nodrop-0.1.12.BUILD" + build_file = str(Label("//rust/cargo/remote:nodrop-0.1.12.BUILD")) ) native.new_http_archive( @@ -259,7 +259,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/num_cpus/num_cpus-1.8.0.crate", type = "tar.gz", strip_prefix = "num_cpus-1.8.0", - build_file = "//rust/cargo/remote:num_cpus-1.8.0.BUILD" + build_file = str(Label("//rust/cargo/remote:num_cpus-1.8.0.BUILD")) ) native.new_http_archive( @@ -267,7 +267,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/owning_ref/owning_ref-0.3.3.crate", type = "tar.gz", strip_prefix = "owning_ref-0.3.3", - build_file = "//rust/cargo/remote:owning_ref-0.3.3.BUILD" + build_file = str(Label("//rust/cargo/remote:owning_ref-0.3.3.BUILD")) ) native.new_http_archive( @@ -275,7 +275,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/parking_lot/parking_lot-0.6.4.crate", type = "tar.gz", strip_prefix = "parking_lot-0.6.4", - build_file = "//rust/cargo/remote:parking_lot-0.6.4.BUILD" + build_file = str(Label("//rust/cargo/remote:parking_lot-0.6.4.BUILD")) ) native.new_http_archive( @@ -283,7 +283,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/parking_lot_core/parking_lot_core-0.3.1.crate", type = "tar.gz", strip_prefix = "parking_lot_core-0.3.1", - build_file = "//rust/cargo/remote:parking_lot_core-0.3.1.BUILD" + build_file = str(Label("//rust/cargo/remote:parking_lot_core-0.3.1.BUILD")) ) native.new_http_archive( @@ -291,7 +291,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/protobuf/protobuf-1.6.0.crate", type = "tar.gz", strip_prefix = "protobuf-1.6.0", - build_file = "//rust/cargo/remote:protobuf-1.6.0.BUILD" + build_file = str(Label("//rust/cargo/remote:protobuf-1.6.0.BUILD")) ) native.new_http_archive( @@ -299,7 +299,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/protobuf-codegen/protobuf-codegen-1.6.0.crate", type = "tar.gz", strip_prefix = "protobuf-codegen-1.6.0", - build_file = "//rust/cargo/remote:protobuf-codegen-1.6.0.BUILD" + build_file = str(Label("//rust/cargo/remote:protobuf-codegen-1.6.0.BUILD")) ) native.new_http_archive( @@ -307,7 +307,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/rand/rand-0.5.5.crate", type = "tar.gz", strip_prefix = "rand-0.5.5", - build_file = "//rust/cargo/remote:rand-0.5.5.BUILD" + build_file = str(Label("//rust/cargo/remote:rand-0.5.5.BUILD")) ) native.new_http_archive( @@ -315,7 +315,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/rand_core/rand_core-0.2.1.crate", type = "tar.gz", strip_prefix = "rand_core-0.2.1", - build_file = "//rust/cargo/remote:rand_core-0.2.1.BUILD" + build_file = str(Label("//rust/cargo/remote:rand_core-0.2.1.BUILD")) ) native.new_http_archive( @@ -323,7 +323,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/rustc_version/rustc_version-0.2.3.crate", type = "tar.gz", strip_prefix = "rustc_version-0.2.3", - build_file = "//rust/cargo/remote:rustc_version-0.2.3.BUILD" + build_file = str(Label("//rust/cargo/remote:rustc_version-0.2.3.BUILD")) ) native.new_http_archive( @@ -331,7 +331,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/safemem/safemem-0.3.0.crate", type = "tar.gz", strip_prefix = "safemem-0.3.0", - build_file = "//rust/cargo/remote:safemem-0.3.0.BUILD" + build_file = str(Label("//rust/cargo/remote:safemem-0.3.0.BUILD")) ) native.new_http_archive( @@ -339,7 +339,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/scoped-tls/scoped-tls-0.1.2.crate", type = "tar.gz", strip_prefix = "scoped-tls-0.1.2", - build_file = "//rust/cargo/remote:scoped-tls-0.1.2.BUILD" + build_file = str(Label("//rust/cargo/remote:scoped-tls-0.1.2.BUILD")) ) native.new_http_archive( @@ -347,7 +347,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/scopeguard/scopeguard-0.3.3.crate", type = "tar.gz", strip_prefix = "scopeguard-0.3.3", - build_file = "//rust/cargo/remote:scopeguard-0.3.3.BUILD" + build_file = str(Label("//rust/cargo/remote:scopeguard-0.3.3.BUILD")) ) native.new_http_archive( @@ -355,7 +355,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/semver/semver-0.9.0.crate", type = "tar.gz", strip_prefix = "semver-0.9.0", - build_file = "//rust/cargo/remote:semver-0.9.0.BUILD" + build_file = str(Label("//rust/cargo/remote:semver-0.9.0.BUILD")) ) native.new_http_archive( @@ -363,7 +363,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/semver-parser/semver-parser-0.7.0.crate", type = "tar.gz", strip_prefix = "semver-parser-0.7.0", - build_file = "//rust/cargo/remote:semver-parser-0.7.0.BUILD" + build_file = str(Label("//rust/cargo/remote:semver-parser-0.7.0.BUILD")) ) native.new_http_archive( @@ -371,7 +371,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/slab/slab-0.3.0.crate", type = "tar.gz", strip_prefix = "slab-0.3.0", - build_file = "//rust/cargo/remote:slab-0.3.0.BUILD" + build_file = str(Label("//rust/cargo/remote:slab-0.3.0.BUILD")) ) native.new_http_archive( @@ -379,7 +379,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/slab/slab-0.4.1.crate", type = "tar.gz", strip_prefix = "slab-0.4.1", - build_file = "//rust/cargo/remote:slab-0.4.1.BUILD" + build_file = str(Label("//rust/cargo/remote:slab-0.4.1.BUILD")) ) native.new_http_archive( @@ -387,7 +387,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/smallvec/smallvec-0.6.5.crate", type = "tar.gz", strip_prefix = "smallvec-0.6.5", - build_file = "//rust/cargo/remote:smallvec-0.6.5.BUILD" + build_file = str(Label("//rust/cargo/remote:smallvec-0.6.5.BUILD")) ) native.new_http_archive( @@ -395,7 +395,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/stable_deref_trait/stable_deref_trait-1.1.1.crate", type = "tar.gz", strip_prefix = "stable_deref_trait-1.1.1", - build_file = "//rust/cargo/remote:stable_deref_trait-1.1.1.BUILD" + build_file = str(Label("//rust/cargo/remote:stable_deref_trait-1.1.1.BUILD")) ) native.new_http_archive( @@ -403,7 +403,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tls-api/tls-api-0.1.20.crate", type = "tar.gz", strip_prefix = "tls-api-0.1.20", - build_file = "//rust/cargo/remote:tls-api-0.1.20.BUILD" + build_file = str(Label("//rust/cargo/remote:tls-api-0.1.20.BUILD")) ) native.new_http_archive( @@ -411,7 +411,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tls-api-stub/tls-api-stub-0.1.20.crate", type = "tar.gz", strip_prefix = "tls-api-stub-0.1.20", - build_file = "//rust/cargo/remote:tls-api-stub-0.1.20.BUILD" + build_file = str(Label("//rust/cargo/remote:tls-api-stub-0.1.20.BUILD")) ) native.new_http_archive( @@ -419,7 +419,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio/tokio-0.1.8.crate", type = "tar.gz", strip_prefix = "tokio-0.1.8", - build_file = "//rust/cargo/remote:tokio-0.1.8.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-0.1.8.BUILD")) ) native.new_http_archive( @@ -427,7 +427,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-codec/tokio-codec-0.1.0.crate", type = "tar.gz", strip_prefix = "tokio-codec-0.1.0", - build_file = "//rust/cargo/remote:tokio-codec-0.1.0.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-codec-0.1.0.BUILD")) ) native.new_http_archive( @@ -435,7 +435,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-core/tokio-core-0.1.17.crate", type = "tar.gz", strip_prefix = "tokio-core-0.1.17", - build_file = "//rust/cargo/remote:tokio-core-0.1.17.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-core-0.1.17.BUILD")) ) native.new_http_archive( @@ -443,7 +443,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-current-thread/tokio-current-thread-0.1.1.crate", type = "tar.gz", strip_prefix = "tokio-current-thread-0.1.1", - build_file = "//rust/cargo/remote:tokio-current-thread-0.1.1.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-current-thread-0.1.1.BUILD")) ) native.new_http_archive( @@ -451,7 +451,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-executor/tokio-executor-0.1.4.crate", type = "tar.gz", strip_prefix = "tokio-executor-0.1.4", - build_file = "//rust/cargo/remote:tokio-executor-0.1.4.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-executor-0.1.4.BUILD")) ) native.new_http_archive( @@ -459,7 +459,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-fs/tokio-fs-0.1.3.crate", type = "tar.gz", strip_prefix = "tokio-fs-0.1.3", - build_file = "//rust/cargo/remote:tokio-fs-0.1.3.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-fs-0.1.3.BUILD")) ) native.new_http_archive( @@ -467,7 +467,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-io/tokio-io-0.1.8.crate", type = "tar.gz", strip_prefix = "tokio-io-0.1.8", - build_file = "//rust/cargo/remote:tokio-io-0.1.8.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-io-0.1.8.BUILD")) ) native.new_http_archive( @@ -475,7 +475,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-reactor/tokio-reactor-0.1.5.crate", type = "tar.gz", strip_prefix = "tokio-reactor-0.1.5", - build_file = "//rust/cargo/remote:tokio-reactor-0.1.5.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-reactor-0.1.5.BUILD")) ) native.new_http_archive( @@ -483,7 +483,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-tcp/tokio-tcp-0.1.1.crate", type = "tar.gz", strip_prefix = "tokio-tcp-0.1.1", - build_file = "//rust/cargo/remote:tokio-tcp-0.1.1.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-tcp-0.1.1.BUILD")) ) native.new_http_archive( @@ -491,7 +491,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-threadpool/tokio-threadpool-0.1.6.crate", type = "tar.gz", strip_prefix = "tokio-threadpool-0.1.6", - build_file = "//rust/cargo/remote:tokio-threadpool-0.1.6.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-threadpool-0.1.6.BUILD")) ) native.new_http_archive( @@ -499,7 +499,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-timer/tokio-timer-0.1.2.crate", type = "tar.gz", strip_prefix = "tokio-timer-0.1.2", - build_file = "//rust/cargo/remote:tokio-timer-0.1.2.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-timer-0.1.2.BUILD")) ) native.new_http_archive( @@ -507,7 +507,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-timer/tokio-timer-0.2.6.crate", type = "tar.gz", strip_prefix = "tokio-timer-0.2.6", - build_file = "//rust/cargo/remote:tokio-timer-0.2.6.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-timer-0.2.6.BUILD")) ) native.new_http_archive( @@ -515,7 +515,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-tls-api/tokio-tls-api-0.1.20.crate", type = "tar.gz", strip_prefix = "tokio-tls-api-0.1.20", - build_file = "//rust/cargo/remote:tokio-tls-api-0.1.20.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-tls-api-0.1.20.BUILD")) ) native.new_http_archive( @@ -523,7 +523,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-udp/tokio-udp-0.1.2.crate", type = "tar.gz", strip_prefix = "tokio-udp-0.1.2", - build_file = "//rust/cargo/remote:tokio-udp-0.1.2.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-udp-0.1.2.BUILD")) ) native.new_http_archive( @@ -531,7 +531,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-uds/tokio-uds-0.1.7.crate", type = "tar.gz", strip_prefix = "tokio-uds-0.1.7", - build_file = "//rust/cargo/remote:tokio-uds-0.1.7.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-uds-0.1.7.BUILD")) ) native.new_http_archive( @@ -539,7 +539,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/tokio-uds/tokio-uds-0.2.1.crate", type = "tar.gz", strip_prefix = "tokio-uds-0.2.1", - build_file = "//rust/cargo/remote:tokio-uds-0.2.1.BUILD" + build_file = str(Label("//rust/cargo/remote:tokio-uds-0.2.1.BUILD")) ) native.new_http_archive( @@ -547,7 +547,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/unix_socket/unix_socket-0.5.0.crate", type = "tar.gz", strip_prefix = "unix_socket-0.5.0", - build_file = "//rust/cargo/remote:unix_socket-0.5.0.BUILD" + build_file = str(Label("//rust/cargo/remote:unix_socket-0.5.0.BUILD")) ) native.new_http_archive( @@ -555,7 +555,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/unreachable/unreachable-1.0.0.crate", type = "tar.gz", strip_prefix = "unreachable-1.0.0", - build_file = "//rust/cargo/remote:unreachable-1.0.0.BUILD" + build_file = str(Label("//rust/cargo/remote:unreachable-1.0.0.BUILD")) ) native.new_http_archive( @@ -563,7 +563,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/version_check/version_check-0.1.5.crate", type = "tar.gz", strip_prefix = "version_check-0.1.5", - build_file = "//rust/cargo/remote:version_check-0.1.5.BUILD" + build_file = str(Label("//rust/cargo/remote:version_check-0.1.5.BUILD")) ) native.new_http_archive( @@ -571,7 +571,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/void/void-1.0.2.crate", type = "tar.gz", strip_prefix = "void-1.0.2", - build_file = "//rust/cargo/remote:void-1.0.2.BUILD" + build_file = str(Label("//rust/cargo/remote:void-1.0.2.BUILD")) ) native.new_http_archive( @@ -579,7 +579,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/winapi/winapi-0.2.8.crate", type = "tar.gz", strip_prefix = "winapi-0.2.8", - build_file = "//rust/cargo/remote:winapi-0.2.8.BUILD" + build_file = str(Label("//rust/cargo/remote:winapi-0.2.8.BUILD")) ) native.new_http_archive( @@ -587,7 +587,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/winapi/winapi-0.3.6.crate", type = "tar.gz", strip_prefix = "winapi-0.3.6", - build_file = "//rust/cargo/remote:winapi-0.3.6.BUILD" + build_file = str(Label("//rust/cargo/remote:winapi-0.3.6.BUILD")) ) native.new_http_archive( @@ -595,7 +595,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/winapi-build/winapi-build-0.1.1.crate", type = "tar.gz", strip_prefix = "winapi-build-0.1.1", - build_file = "//rust/cargo/remote:winapi-build-0.1.1.BUILD" + build_file = str(Label("//rust/cargo/remote:winapi-build-0.1.1.BUILD")) ) native.new_http_archive( @@ -603,7 +603,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate", type = "tar.gz", strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0", - build_file = "//rust/cargo/remote:winapi-i686-pc-windows-gnu-0.4.0.BUILD" + build_file = str(Label("//rust/cargo/remote:winapi-i686-pc-windows-gnu-0.4.0.BUILD")) ) native.new_http_archive( @@ -611,7 +611,7 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate", type = "tar.gz", strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0", - build_file = "//rust/cargo/remote:winapi-x86_64-pc-windows-gnu-0.4.0.BUILD" + build_file = str(Label("//rust/cargo/remote:winapi-x86_64-pc-windows-gnu-0.4.0.BUILD")) ) native.new_http_archive( @@ -619,6 +619,6 @@ url = "https://crates-io.s3-us-west-1.amazonaws.com/crates/ws2_32-sys/ws2_32-sys-0.2.1.crate", type = "tar.gz", strip_prefix = "ws2_32-sys-0.2.1", - build_file = "//rust/cargo/remote:ws2_32-sys-0.2.1.BUILD" + build_file = str(Label("//rust/cargo/remote:ws2_32-sys-0.2.1.BUILD")) )
diff --git a/rust/cargo/regenerate_crates.sh b/rust/cargo/regenerate_crates.sh index 9a7c658..f121497 100755 --- a/rust/cargo/regenerate_crates.sh +++ b/rust/cargo/regenerate_crates.sh
@@ -19,7 +19,7 @@ cargo generate-lockfile && cargo raze # We need to update the build file path. -#sed -i.bak 's|//rust|@org_pubref_rules_proto//rust|g' "crates.bzl" +perl -p -e 's|("//rust[^"]+")|str(Label(\1))|g' "crates.bzl" #rm crates.bzl.bak # Remove these outdated rust_bench_test references
diff --git a/rust/cargo/remote/version_check-0.1.5.BUILD b/rust/cargo/remote/version_check-0.1.5.BUILD new file mode 100644 index 0000000..18a7cbd --- /dev/null +++ b/rust/cargo/remote/version_check-0.1.5.BUILD
@@ -0,0 +1,34 @@ +""" +cargo-raze crate build file. + +DO NOT EDIT! Replaced on runs of cargo-raze +""" +package(default_visibility = ["//visibility:public"]) + +licenses([ + "notice", # "MIT,Apache-2.0" +]) + +load( + "@io_bazel_rules_rust//rust:rust.bzl", + "rust_library", + "rust_binary", + "rust_test", +) + + +rust_library( + name = "version_check", + crate_root = "src/lib.rs", + crate_type = "lib", + srcs = glob(["**/*.rs"]), + deps = [ + ], + rustc_flags = [ + "--cap-lints allow", + "--target=x86_64-unknown-linux-gnu", + ], + crate_features = [ + ], +) +
diff --git a/rust/deps.bzl b/rust/deps.bzl index 4939cf3..799c5be 100644 --- a/rust/deps.bzl +++ b/rust/deps.bzl
@@ -1,31 +1,18 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("//:deps.bzl", + "com_google_protobuf", + "io_bazel_rules_rust", +) -libc_BUILD = """ -""" +def rust_proto_compile(**kwargs): + com_google_protobuf(**kwargs) -def rust_proto_library_deps( - rules_rust_version = "88022d175adb48aa5f8904f95dfc716c543b3f1e", - rules_rust_sha256 = "d9832945f0fa7097ee548bd6fecfc814bd19759561dd7b06723e1c6a1879aa71", -): - existing = native.existing_rules() +def rust_grpc_compile(**kwargs): + rust_proto_compile(**kwargs) - if "io_bazel_rules_rust" not in existing: - http_archive( - name = "io_bazel_rules_rust", - urls = ["https://github.com/bazelbuild/rules_rust/archive/%s.tar.gz" % rules_rust_version], - sha256 = rules_rust_sha256, - strip_prefix = "rules_rust-" + rules_rust_version, - ) - # native.local_repository( - # name = "io_bazel_rules_rust", - # path = "/home/pcj/github/bazelbuild/rules_rust", - # ) +def rust_proto_library(**kwargs): + rust_proto_compile(**kwargs) + io_bazel_rules_rust(**kwargs) - # if "libc" not in existing: - # http_archive( - # name = "libc", - # urls = ["https://github.com/rust-lang/libc/archive/%s.tar.gz" % libc_version], - # sha256 = libc_sha256, - # #tag = "0.2.20", - # #build_file_content = libc_BUILD, - # ) +def rust_grpc_library(**kwargs): + rust_grpc_compile(**kwargs) + rust_proto_library(**kwargs)