Merge branch 'master' into posix-ee-client-flip

pull/35985/head
AJ Heller 4 months ago
commit 15bab7a3b3
  1. 30
      .clang-format
  2. 139
      BUILD
  3. 6
      BUILDING.md
  4. 783
      CMakeLists.txt
  5. 86
      Makefile
  6. 1
      PYTHON-MANIFEST.in
  7. 207
      Package.swift
  8. 2
      WORKSPACE
  9. 10
      bazel/BUILD
  10. 93
      bazel/_logging_threshold_test_main.py
  11. 54
      bazel/_single_module_tester.py
  12. 25
      bazel/experiments.bzl
  13. 2
      bazel/grpc_build_system.bzl
  14. 19
      bazel/grpc_deps.bzl
  15. 6
      bazel/grpc_python_deps.bzl
  16. 73
      bazel/logging_threshold_test.bzl
  17. 1
      black.toml
  18. 1581
      build_autogenerated.yaml
  19. 9
      build_handwritten.yaml
  20. 5
      cmake/protobuf.cmake
  21. 95
      config.m4
  22. 95
      config.w32
  23. 2
      doc/grpc_xds_features.md
  24. 24
      examples/android/binder/java/io/grpc/binder/cpp/README.md
  25. 25
      examples/android/binder/java/io/grpc/binder/cpp/exampleclient/AndroidManifest.xml
  26. 51
      examples/android/binder/java/io/grpc/binder/cpp/exampleclient/BUILD
  27. 15
      examples/android/binder/java/io/grpc/binder/cpp/exampleclient/ButtonPressHandler.java
  28. 26
      examples/android/binder/java/io/grpc/binder/cpp/exampleclient/MainActivity.java
  29. 73
      examples/android/binder/java/io/grpc/binder/cpp/exampleclient/native.cc
  30. 24
      examples/android/binder/java/io/grpc/binder/cpp/exampleclient/res/layout/activity_main.xml
  31. 5
      examples/android/binder/java/io/grpc/binder/cpp/exampleclient/res/values/strings.xml
  32. 21
      examples/android/binder/java/io/grpc/binder/cpp/exampleserver/AndroidManifest.xml
  33. 10
      examples/android/binder/java/io/grpc/binder/cpp/exampleserver/AndroidManifest_endpoint.xml
  34. 61
      examples/android/binder/java/io/grpc/binder/cpp/exampleserver/BUILD
  35. 13
      examples/android/binder/java/io/grpc/binder/cpp/exampleserver/ButtonPressHandler.java
  36. 26
      examples/android/binder/java/io/grpc/binder/cpp/exampleserver/ExportedEndpointService.java
  37. 27
      examples/android/binder/java/io/grpc/binder/cpp/exampleserver/MainActivity.java
  38. 83
      examples/android/binder/java/io/grpc/binder/cpp/exampleserver/native.cc
  39. 24
      examples/android/binder/java/io/grpc/binder/cpp/exampleserver/res/layout/activity_main.xml
  40. 5
      examples/android/binder/java/io/grpc/binder/cpp/exampleserver/res/values/strings.xml
  41. 2
      examples/android/helloworld/app/CMakeLists.txt
  42. 2
      examples/cpp/auth/CMakeLists.txt
  43. 4
      examples/cpp/auth/ssl_client.cc
  44. 4
      examples/cpp/auth/ssl_server.cc
  45. 2
      examples/cpp/cancellation/CMakeLists.txt
  46. 4
      examples/cpp/cancellation/client.cc
  47. 4
      examples/cpp/cancellation/server.cc
  48. 2
      examples/cpp/cmake/common.cmake
  49. 2
      examples/cpp/compression/CMakeLists.txt
  50. 4
      examples/cpp/compression/greeter_client.cc
  51. 4
      examples/cpp/compression/greeter_server.cc
  52. 7
      examples/cpp/csm/csm_greeter_client.cc
  53. 17
      examples/cpp/csm/csm_greeter_server.cc
  54. 2
      examples/cpp/csm/observability/BUILD
  55. 2
      examples/cpp/csm/observability/Dockerfile.server
  56. 7
      examples/cpp/csm/observability/csm_greeter_client.cc
  57. 19
      examples/cpp/csm/observability/csm_greeter_server.cc
  58. 2
      examples/cpp/deadline/CMakeLists.txt
  59. 4
      examples/cpp/deadline/client.cc
  60. 4
      examples/cpp/deadline/server.cc
  61. 4
      examples/cpp/debugging/crashing_greeter_client.cc
  62. 10
      examples/cpp/debugging/greeter_callback_server_admin.cc
  63. 2
      examples/cpp/error_details/CMakeLists.txt
  64. 5
      examples/cpp/error_details/greeter_client.cc
  65. 9
      examples/cpp/error_details/greeter_server.cc
  66. 2
      examples/cpp/error_handling/CMakeLists.txt
  67. 4
      examples/cpp/error_handling/greeter_client.cc
  68. 8
      examples/cpp/error_handling/greeter_server.cc
  69. 27
      examples/cpp/flow_control/BUILD
  70. 3
      examples/cpp/flow_control/CMakeLists.txt
  71. 126
      examples/cpp/flow_control/client_flow_control_client.cc
  72. 111
      examples/cpp/flow_control/client_flow_control_server.cc
  73. 8
      examples/cpp/flow_control/server_flow_control_client.cc
  74. 10
      examples/cpp/flow_control/server_flow_control_server.cc
  75. 6
      examples/cpp/gcp_observability/helloworld/greeter_client.cc
  76. 10
      examples/cpp/gcp_observability/helloworld/greeter_server.cc
  77. 2
      examples/cpp/generic_api/CMakeLists.txt
  78. 6
      examples/cpp/generic_api/greeter_client.cc
  79. 6
      examples/cpp/generic_api/greeter_server.cc
  80. 2
      examples/cpp/health/CMakeLists.txt
  81. 5
      examples/cpp/health/health_client.cc
  82. 8
      examples/cpp/health/health_server.cc
  83. 2
      examples/cpp/helloworld/CMakeLists.txt
  84. 15
      examples/cpp/helloworld/cmake_externalproject/CMakeLists.txt
  85. 4
      examples/cpp/helloworld/greeter_async_client.cc
  86. 4
      examples/cpp/helloworld/greeter_async_client2.cc
  87. 4
      examples/cpp/helloworld/greeter_async_server.cc
  88. 4
      examples/cpp/helloworld/greeter_callback_client.cc
  89. 8
      examples/cpp/helloworld/greeter_callback_server.cc
  90. 4
      examples/cpp/helloworld/greeter_client.cc
  91. 8
      examples/cpp/helloworld/greeter_server.cc
  92. 4
      examples/cpp/helloworld/xds_greeter_client.cc
  93. 12
      examples/cpp/helloworld/xds_greeter_server.cc
  94. 2
      examples/cpp/interceptors/CMakeLists.txt
  95. 4
      examples/cpp/interceptors/caching_interceptor.h
  96. 4
      examples/cpp/interceptors/client.cc
  97. 6
      examples/cpp/interceptors/server.cc
  98. 2
      examples/cpp/keepalive/CMakeLists.txt
  99. 4
      examples/cpp/keepalive/greeter_callback_client.cc
  100. 8
      examples/cpp/keepalive/greeter_callback_server.cc
  101. Some files were not shown because too many files have changed in this diff Show More

@ -8,36 +8,6 @@ IncludeCategories:
# ruby.h is even more first if it's included
- Regex: '^<ruby/ruby.h>'
Priority: -200
# Some platforms (namely msys) need wchar to be included BEFORE
# anything else, especially strsafe.h.
- Regex: '^<wchar.h>'
Priority: 5
# use priority 100+ for grpc headers so they sort last
# 'system' headers - include things that have " in the names to make them
# stand out and get fixed
- Regex: '^(<|")grpc'
Priority: 100
# similary using include/ to get system headers should stand out and get
# fixed
- Regex: '^"include/'
Priority: 100
# source headers go last
- Regex: '^"(src|test)/'
Priority: 101
# not-grpc headers follow
# first, non system headers that are included like <> - these are all
# local carveouts, and get sorted below c++ but before non grpc "" files
- Regex: '^<(openssl/|uv\.h|ares\.h|address_sorting/|gmock/|gtest/|zlib|zconf|benchmark/|google/)'
Priority: 30
# first C system headers - they have a . in the filename
- Regex: '^<.*\.'
Priority: 10
# then C++ system headers - no ., the only thing that will match now
- Regex: '^<'
Priority: 20
# finally other "" includes go between system headers and our headers
- Regex: '^"'
Priority: 40
---
Language: ObjC
BasedOnStyle: Google

139
BUILD

@ -571,6 +571,7 @@ grpc_cc_library(
external_deps = [
"absl/base:core_headers",
"absl/log:log",
"absl/time:time",
],
language = "c++",
public_hdrs = GRPC_PUBLIC_HDRS,
@ -642,6 +643,7 @@ grpc_cc_library(
external_deps = [
"absl/base:core_headers",
"absl/log:log",
"absl/time:time",
],
language = "c++",
public_hdrs = GRPC_PUBLIC_HDRS,
@ -681,7 +683,7 @@ grpc_cc_library(
"server",
"sockaddr_utils",
"tsi_base",
"uri_parser",
"uri",
"//src/core:channel_args",
"//src/core:channel_init",
"//src/core:channel_stack_type",
@ -719,50 +721,50 @@ grpc_cc_library(
grpc_cc_library(
name = "gpr",
srcs = [
"//src/core:lib/gprpp/crash.cc",
"//src/core:lib/gprpp/fork.cc",
"//src/core:lib/gprpp/host_port.cc",
"//src/core:lib/gprpp/mpscq.cc",
"//src/core:lib/gprpp/posix/stat.cc",
"//src/core:lib/gprpp/posix/thd.cc",
"//src/core:lib/gprpp/time_util.cc",
"//src/core:lib/gprpp/windows/stat.cc",
"//src/core:lib/gprpp/windows/thd.cc",
"//src/core:util/alloc.cc",
"//src/core:util/crash.cc",
"//src/core:util/fork.cc",
"//src/core:util/gpr_time.cc",
"//src/core:util/host_port.cc",
"//src/core:util/iphone/cpu.cc",
"//src/core:util/linux/cpu.cc",
"//src/core:util/log.cc",
"//src/core:util/mpscq.cc",
"//src/core:util/msys/tmpfile.cc",
"//src/core:util/posix/cpu.cc",
"//src/core:util/posix/stat.cc",
"//src/core:util/posix/string.cc",
"//src/core:util/posix/sync.cc",
"//src/core:util/posix/thd.cc",
"//src/core:util/posix/time.cc",
"//src/core:util/posix/tmpfile.cc",
"//src/core:util/string.cc",
"//src/core:util/sync.cc",
"//src/core:util/sync_abseil.cc",
"//src/core:util/time.cc",
"//src/core:util/time_precise.cc",
"//src/core:util/time_util.cc",
"//src/core:util/windows/cpu.cc",
"//src/core:util/windows/stat.cc",
"//src/core:util/windows/string.cc",
"//src/core:util/windows/string_util.cc",
"//src/core:util/windows/sync.cc",
"//src/core:util/windows/thd.cc",
"//src/core:util/windows/time.cc",
"//src/core:util/windows/tmpfile.cc",
],
hdrs = [
"//src/core:lib/gprpp/crash.h",
"//src/core:lib/gprpp/fork.h",
"//src/core:lib/gprpp/host_port.h",
"//src/core:lib/gprpp/memory.h",
"//src/core:lib/gprpp/mpscq.h",
"//src/core:lib/gprpp/stat.h",
"//src/core:lib/gprpp/sync.h",
"//src/core:lib/gprpp/thd.h",
"//src/core:lib/gprpp/time_util.h",
"//src/core:util/alloc.h",
"//src/core:util/crash.h",
"//src/core:util/fork.h",
"//src/core:util/host_port.h",
"//src/core:util/memory.h",
"//src/core:util/mpscq.h",
"//src/core:util/stat.h",
"//src/core:util/string.h",
"//src/core:util/sync.h",
"//src/core:util/thd.h",
"//src/core:util/time_precise.h",
"//src/core:util/time_util.h",
"//src/core:util/tmpfile.h",
],
external_deps = [
@ -820,7 +822,7 @@ grpc_cc_library(
grpc_cc_library(
name = "cpp_impl_of",
hdrs = ["//src/core:lib/gprpp/cpp_impl_of.h"],
hdrs = ["//src/core:util/cpp_impl_of.h"],
language = "c++",
)
@ -892,6 +894,7 @@ grpc_cc_library(
"absl/log:log",
"absl/log:absl_check",
"absl/log:absl_log",
"absl/status:statusor",
"absl/strings:cord",
"absl/synchronization",
"protobuf_headers",
@ -1245,6 +1248,7 @@ grpc_cc_library(
"absl/log:log",
"absl/log:absl_check",
"absl/log:absl_log",
"absl/status:statusor",
"absl/strings",
"absl/synchronization",
],
@ -1392,7 +1396,7 @@ grpc_cc_library(
"parse_address",
"ref_counted_ptr",
"sockaddr_utils",
"uri_parser",
"uri",
"//src/core:channel_args",
"//src/core:connectivity_state",
"//src/core:json",
@ -1507,9 +1511,6 @@ grpc_cc_library(
"//src/core:lib/iomgr/ev_posix.cc",
"//src/core:lib/iomgr/fork_posix.cc",
"//src/core:lib/iomgr/fork_windows.cc",
"//src/core:lib/iomgr/gethostname_fallback.cc",
"//src/core:lib/iomgr/gethostname_host_name_max.cc",
"//src/core:lib/iomgr/gethostname_sysconf.cc",
"//src/core:lib/iomgr/iocp_windows.cc",
"//src/core:lib/iomgr/iomgr.cc",
"//src/core:lib/iomgr/iomgr_posix.cc",
@ -1548,6 +1549,9 @@ grpc_cc_library(
"//src/core:lib/iomgr/wakeup_fd_nospecial.cc",
"//src/core:lib/iomgr/wakeup_fd_pipe.cc",
"//src/core:lib/iomgr/wakeup_fd_posix.cc",
"//src/core:util/gethostname_fallback.cc",
"//src/core:util/gethostname_host_name_max.cc",
"//src/core:util/gethostname_sysconf.cc",
] +
# TODO(vigneshbabu): remove these
# These headers used to be vended by this target, but they have to be
@ -1568,7 +1572,6 @@ grpc_cc_library(
"//src/core:lib/iomgr/ev_epoll1_linux.h",
"//src/core:lib/iomgr/ev_poll_posix.h",
"//src/core:lib/iomgr/ev_posix.h",
"//src/core:lib/iomgr/gethostname.h",
"//src/core:lib/iomgr/iocp_windows.h",
"//src/core:lib/iomgr/iomgr.h",
"//src/core:lib/iomgr/lockfree_event.h",
@ -1599,6 +1602,7 @@ grpc_cc_library(
"//src/core:lib/iomgr/vsock.h",
"//src/core:lib/iomgr/wakeup_fd_pipe.h",
"//src/core:lib/iomgr/wakeup_fd_posix.h",
"//src/core:util/gethostname.h",
] +
# TODO(vigneshbabu): remove these
# These headers used to be vended by this target, but they have to be
@ -2039,6 +2043,7 @@ grpc_cc_library(
"//src/core:arena_promise",
"//src/core:atomic_utils",
"//src/core:bitset",
"//src/core:blackboard",
"//src/core:call_destination",
"//src/core:call_filters",
"//src/core:call_final_info",
@ -2489,6 +2494,7 @@ grpc_cc_library(
"//src/core:grpc_backend_metric_provider",
"//src/core:grpc_crl_provider",
"//src/core:grpc_service_config",
"//src/core:grpc_tls_credentials",
"//src/core:grpc_transport_chttp2_server",
"//src/core:grpc_transport_inproc",
"//src/core:json",
@ -2955,6 +2961,18 @@ grpc_cc_library(
],
)
grpc_cc_library(
name = "generic_stub",
hdrs = [
"include/grpcpp/generic/generic_stub.h",
],
language = "c++",
visibility = ["@grpc:public"],
deps = [
"generic_stub_internal",
],
)
grpc_cc_library(
name = "generic_stub_callback",
hdrs = [
@ -2967,6 +2985,18 @@ grpc_cc_library(
],
)
grpc_cc_library(
name = "async_generic_service",
hdrs = [
"include/grpcpp/generic/async_generic_service.h",
],
language = "c++",
visibility = ["@grpc:public"],
deps = [
"grpc++_public_hdrs",
],
)
grpc_cc_library(
name = "callback_generic_service",
hdrs = [
@ -2982,10 +3012,10 @@ grpc_cc_library(
grpc_cc_library(
name = "work_serializer",
srcs = [
"//src/core:lib/gprpp/work_serializer.cc",
"//src/core:util/work_serializer.cc",
],
hdrs = [
"//src/core:lib/gprpp/work_serializer.h",
"//src/core:util/work_serializer.h",
],
external_deps = [
"absl/base:core_headers",
@ -3114,7 +3144,7 @@ grpc_cc_library(
name = "debug_location",
external_deps = ["absl/strings"],
language = "c++",
public_hdrs = ["//src/core:lib/gprpp/debug_location.h"],
public_hdrs = ["//src/core:util/debug_location.h"],
visibility = ["@grpc:debug_location"],
deps = ["gpr_platform"],
)
@ -3122,7 +3152,7 @@ grpc_cc_library(
grpc_cc_library(
name = "orphanable",
language = "c++",
public_hdrs = ["//src/core:lib/gprpp/orphanable.h"],
public_hdrs = ["//src/core:util/orphanable.h"],
visibility = [
"@grpc:client_channel",
"@grpc:xds_client_core",
@ -3159,7 +3189,7 @@ grpc_cc_library(
name = "ref_counted_ptr",
external_deps = ["absl/hash"],
language = "c++",
public_hdrs = ["//src/core:lib/gprpp/ref_counted_ptr.h"],
public_hdrs = ["//src/core:util/ref_counted_ptr.h"],
visibility = ["@grpc:ref_counted_ptr"],
deps = [
"debug_location",
@ -3306,7 +3336,7 @@ grpc_cc_library(
visibility = ["@grpc:alt_grpc_base_legacy"],
deps = [
"gpr",
"uri_parser",
"uri",
"//src/core:grpc_sockaddr",
"//src/core:iomgr_port",
"//src/core:resolved_address",
@ -3398,12 +3428,12 @@ grpc_cc_library(
)
grpc_cc_library(
name = "uri_parser",
name = "uri",
srcs = [
"//src/core:lib/uri/uri_parser.cc",
"//src/core:util/uri.cc",
],
hdrs = [
"//src/core:lib/uri/uri_parser.h",
"//src/core:util/uri.h",
],
external_deps = [
"absl/log:check",
@ -3420,12 +3450,12 @@ grpc_cc_library(
name = "parse_address",
srcs = [
"//src/core:lib/address_utils/parse_address.cc",
"//src/core:lib/iomgr/grpc_if_nametoindex_posix.cc",
"//src/core:lib/iomgr/grpc_if_nametoindex_unsupported.cc",
"//src/core:util/grpc_if_nametoindex_posix.cc",
"//src/core:util/grpc_if_nametoindex_unsupported.cc",
],
hdrs = [
"//src/core:lib/address_utils/parse_address.h",
"//src/core:lib/iomgr/grpc_if_nametoindex.h",
"//src/core:util/grpc_if_nametoindex.h",
],
external_deps = [
"absl/log:check",
@ -3437,7 +3467,7 @@ grpc_cc_library(
visibility = ["@grpc:alt_grpc_base_legacy"],
deps = [
"gpr",
"uri_parser",
"uri",
"//src/core:error",
"//src/core:grpc_sockaddr",
"//src/core:iomgr_port",
@ -3449,10 +3479,10 @@ grpc_cc_library(
grpc_cc_library(
name = "backoff",
srcs = [
"//src/core:lib/backoff/backoff.cc",
"//src/core:util/backoff.cc",
],
hdrs = [
"//src/core:lib/backoff/backoff.h",
"//src/core:util/backoff.h",
],
external_deps = ["absl/random"],
language = "c++",
@ -3612,7 +3642,7 @@ grpc_cc_library(
"orphanable",
"ref_counted_ptr",
"server_address",
"uri_parser",
"uri",
"//src/core:channel_args",
"//src/core:grpc_service_config",
"//src/core:iomgr_fwd",
@ -3770,11 +3800,12 @@ grpc_cc_library(
"ref_counted_ptr",
"sockaddr_utils",
"stats",
"uri_parser",
"uri",
"work_serializer",
"//src/core:arena",
"//src/core:arena_promise",
"//src/core:backend_metric_parser",
"//src/core:blackboard",
"//src/core:call_destination",
"//src/core:call_filters",
"//src/core:call_spine",
@ -3893,7 +3924,7 @@ grpc_cc_library(
"parse_address",
"ref_counted_ptr",
"sockaddr_utils",
"uri_parser",
"uri",
"//src/core:channel_args",
"//src/core:closure",
"//src/core:error",
@ -3952,7 +3983,7 @@ grpc_cc_library(
"ref_counted_ptr",
"resource_quota_api",
"sockaddr_utils",
"uri_parser",
"uri",
"//src/core:channel_args",
"//src/core:channel_args_preconditioning",
"//src/core:closure",
@ -4082,7 +4113,7 @@ grpc_cc_library(
"orphanable",
"promise",
"ref_counted_ptr",
"uri_parser",
"uri",
"//src/core:arena_promise",
"//src/core:closure",
"//src/core:error",
@ -4355,6 +4386,7 @@ grpc_cc_library(
"//src/core:experiments",
"//src/core:grpc_message_size_filter",
"//src/core:latch",
"//src/core:latent_see",
"//src/core:map",
"//src/core:metadata_batch",
"//src/core:percent_encoding",
@ -4390,17 +4422,18 @@ grpc_cc_library(
grpc_cc_library(
name = "xds_client",
srcs = [
"//src/core:xds/xds_client/lrs_client.cc",
"//src/core:xds/xds_client/xds_api.cc",
"//src/core:xds/xds_client/xds_bootstrap.cc",
"//src/core:xds/xds_client/xds_client.cc",
"//src/core:xds/xds_client/xds_client_stats.cc",
],
hdrs = [
"//src/core:xds/xds_client/lrs_client.h",
"//src/core:xds/xds_client/xds_api.h",
"//src/core:xds/xds_client/xds_bootstrap.h",
"//src/core:xds/xds_client/xds_channel_args.h",
"//src/core:xds/xds_client/xds_client.h",
"//src/core:xds/xds_client/xds_client_stats.h",
"//src/core:xds/xds_client/xds_locality.h",
"//src/core:xds/xds_client/xds_metrics.h",
"//src/core:xds/xds_client/xds_resource_type.h",
"//src/core:xds/xds_client/xds_resource_type_impl.h",
@ -4451,17 +4484,20 @@ grpc_cc_library(
"protobuf_struct_upb",
"protobuf_timestamp_upb",
"ref_counted_ptr",
"uri_parser",
"uri",
"work_serializer",
"//src/core:default_event_engine",
"//src/core:dual_ref_counted",
"//src/core:env",
"//src/core:grpc_backend_metric_data",
"//src/core:json",
"//src/core:per_cpu",
"//src/core:ref_counted",
"//src/core:ref_counted_string",
"//src/core:time",
"//src/core:upb_utils",
"//src/core:useful",
"//src/core:xds_backend_metric_propagation",
],
)
@ -4512,7 +4548,7 @@ grpc_cc_library(
"grpc_resolver",
"orphanable",
"ref_counted_ptr",
"uri_parser",
"uri",
"work_serializer",
"//src/core:channel_args",
"//src/core:notification",
@ -4751,6 +4787,7 @@ grpc_cc_library(
name = "grpc_transport_chttp2",
srcs = [
"//src/core:ext/transport/chttp2/transport/bin_decoder.cc",
"//src/core:ext/transport/chttp2/transport/call_tracer_wrapper.cc",
"//src/core:ext/transport/chttp2/transport/chttp2_transport.cc",
"//src/core:ext/transport/chttp2/transport/frame_data.cc",
"//src/core:ext/transport/chttp2/transport/frame_goaway.cc",
@ -4764,6 +4801,7 @@ grpc_cc_library(
],
hdrs = [
"//src/core:ext/transport/chttp2/transport/bin_decoder.h",
"//src/core:ext/transport/chttp2/transport/call_tracer_wrapper.h",
"//src/core:ext/transport/chttp2/transport/chttp2_transport.h",
"//src/core:ext/transport/chttp2/transport/frame_data.h",
"//src/core:ext/transport/chttp2/transport/frame_goaway.h",
@ -4772,6 +4810,7 @@ grpc_cc_library(
"//src/core:ext/transport/chttp2/transport/frame_settings.h",
"//src/core:ext/transport/chttp2/transport/frame_window_update.h",
"//src/core:ext/transport/chttp2/transport/internal.h",
"//src/core:ext/transport/chttp2/transport/stream_lists.h",
],
external_deps = [
"absl/base:core_headers",

@ -55,7 +55,7 @@ installed by `brew` is being used:
## Windows
To prepare for cmake + Microsoft Visual C++ compiler build
- Install Visual Studio 2019 or later (Visual C++ compiler will be used).
- Install Visual Studio 2022 or later (Visual C++ compiler will be used).
- Install [Git](https://git-scm.com/).
- Install [CMake](https://cmake.org/download/).
- Install [nasm](https://www.nasm.us/) and add it to `PATH` (`choco install nasm`) - *required by boringssl*
@ -132,7 +132,7 @@ $ make
If you want to build shared libraries (`.so` files), run `cmake` with `-DBUILD_SHARED_LIBS=ON`.
### Windows, Using Visual Studio 2019 or later
### Windows, Using Visual Studio 2022 or later
When using the "Visual Studio" generator,
cmake will generate a solution (`grpc.sln`) that contains a VS project for
@ -143,7 +143,7 @@ you will be able to browse and build the code.
> @rem Run from grpc directory after cloning the repo with --recursive or updating submodules.
> md .build
> cd .build
> cmake .. -G "Visual Studio 16 2019"
> cmake .. -G "Visual Studio 17 2022"
> cmake --build . --config Release
```

783
CMakeLists.txt generated

File diff suppressed because it is too large Load Diff

86
Makefile generated

@ -711,6 +711,7 @@ LIBGRPC_SRC = \
src/core/ext/transport/chttp2/server/chttp2_server.cc \
src/core/ext/transport/chttp2/transport/bin_decoder.cc \
src/core/ext/transport/chttp2/transport/bin_encoder.cc \
src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc \
src/core/ext/transport/chttp2/transport/chttp2_transport.cc \
src/core/ext/transport/chttp2/transport/decode_huff.cc \
src/core/ext/transport/chttp2/transport/flow_control.cc \
@ -1057,6 +1058,7 @@ LIBGRPC_SRC = \
src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c \
src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c \
src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c \
src/core/filter/blackboard.cc \
src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc \
src/core/handshaker/handshaker.cc \
src/core/handshaker/handshaker_registry.cc \
@ -1068,8 +1070,6 @@ LIBGRPC_SRC = \
src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc \
src/core/lib/address_utils/parse_address.cc \
src/core/lib/address_utils/sockaddr_utils.cc \
src/core/lib/backoff/backoff.cc \
src/core/lib/backoff/random_early_detection.cc \
src/core/lib/channel/channel_args.cc \
src/core/lib/channel/channel_args_preconditioning.cc \
src/core/lib/channel/channel_stack.cc \
@ -1085,7 +1085,6 @@ LIBGRPC_SRC = \
src/core/lib/config/config_vars_non_generated.cc \
src/core/lib/config/core_configuration.cc \
src/core/lib/config/load_config.cc \
src/core/lib/debug/event_log.cc \
src/core/lib/debug/trace.cc \
src/core/lib/debug/trace_flags.cc \
src/core/lib/event_engine/ares_resolver.cc \
@ -1137,34 +1136,6 @@ LIBGRPC_SRC = \
src/core/lib/event_engine/work_queue/basic_work_queue.cc \
src/core/lib/experiments/config.cc \
src/core/lib/experiments/experiments.cc \
src/core/lib/gprpp/crash.cc \
src/core/lib/gprpp/dump_args.cc \
src/core/lib/gprpp/examine_stack.cc \
src/core/lib/gprpp/fork.cc \
src/core/lib/gprpp/glob.cc \
src/core/lib/gprpp/host_port.cc \
src/core/lib/gprpp/linux/env.cc \
src/core/lib/gprpp/load_file.cc \
src/core/lib/gprpp/mpscq.cc \
src/core/lib/gprpp/per_cpu.cc \
src/core/lib/gprpp/posix/directory_reader.cc \
src/core/lib/gprpp/posix/env.cc \
src/core/lib/gprpp/posix/stat.cc \
src/core/lib/gprpp/posix/thd.cc \
src/core/lib/gprpp/ref_counted_string.cc \
src/core/lib/gprpp/status_helper.cc \
src/core/lib/gprpp/strerror.cc \
src/core/lib/gprpp/tchar.cc \
src/core/lib/gprpp/time.cc \
src/core/lib/gprpp/time_averaged_stats.cc \
src/core/lib/gprpp/time_util.cc \
src/core/lib/gprpp/uuid_v4.cc \
src/core/lib/gprpp/validation_errors.cc \
src/core/lib/gprpp/windows/directory_reader.cc \
src/core/lib/gprpp/windows/env.cc \
src/core/lib/gprpp/windows/stat.cc \
src/core/lib/gprpp/windows/thd.cc \
src/core/lib/gprpp/work_serializer.cc \
src/core/lib/iomgr/buffer_list.cc \
src/core/lib/iomgr/call_combiner.cc \
src/core/lib/iomgr/cfstream_handle.cc \
@ -1188,11 +1159,6 @@ LIBGRPC_SRC = \
src/core/lib/iomgr/executor.cc \
src/core/lib/iomgr/fork_posix.cc \
src/core/lib/iomgr/fork_windows.cc \
src/core/lib/iomgr/gethostname_fallback.cc \
src/core/lib/iomgr/gethostname_host_name_max.cc \
src/core/lib/iomgr/gethostname_sysconf.cc \
src/core/lib/iomgr/grpc_if_nametoindex_posix.cc \
src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc \
src/core/lib/iomgr/internal_errqueue.cc \
src/core/lib/iomgr/iocp_windows.cc \
src/core/lib/iomgr/iomgr.cc \
@ -1241,7 +1207,6 @@ LIBGRPC_SRC = \
src/core/lib/iomgr/wakeup_fd_nospecial.cc \
src/core/lib/iomgr/wakeup_fd_pipe.cc \
src/core/lib/iomgr/wakeup_fd_posix.cc \
src/core/lib/matchers/matchers.cc \
src/core/lib/promise/activity.cc \
src/core/lib/promise/party.cc \
src/core/lib/promise/sleep.cc \
@ -1361,7 +1326,6 @@ LIBGRPC_SRC = \
src/core/lib/transport/timeout_encoding.cc \
src/core/lib/transport/transport.cc \
src/core/lib/transport/transport_op_string.cc \
src/core/lib/uri/uri_parser.cc \
src/core/load_balancing/address_filtering.cc \
src/core/load_balancing/backend_metric_parser.cc \
src/core/load_balancing/child_policy_handler.cc \
@ -1456,7 +1420,21 @@ LIBGRPC_SRC = \
src/core/tsi/transport_security_grpc.cc \
src/core/util/alloc.cc \
src/core/util/atm.cc \
src/core/util/backoff.cc \
src/core/util/crash.cc \
src/core/util/dump_args.cc \
src/core/util/event_log.cc \
src/core/util/examine_stack.cc \
src/core/util/fork.cc \
src/core/util/gcp_metadata_query.cc \
src/core/util/gethostname_fallback.cc \
src/core/util/gethostname_host_name_max.cc \
src/core/util/gethostname_sysconf.cc \
src/core/util/glob.cc \
src/core/util/gpr_time.cc \
src/core/util/grpc_if_nametoindex_posix.cc \
src/core/util/grpc_if_nametoindex_unsupported.cc \
src/core/util/host_port.cc \
src/core/util/http_client/format_request.cc \
src/core/util/http_client/httpcli.cc \
src/core/util/http_client/httpcli_security_connector.cc \
@ -1468,24 +1446,48 @@ LIBGRPC_SRC = \
src/core/util/json/json_writer.cc \
src/core/util/latent_see.cc \
src/core/util/linux/cpu.cc \
src/core/util/linux/env.cc \
src/core/util/load_file.cc \
src/core/util/log.cc \
src/core/util/matchers.cc \
src/core/util/mpscq.cc \
src/core/util/msys/tmpfile.cc \
src/core/util/per_cpu.cc \
src/core/util/posix/cpu.cc \
src/core/util/posix/directory_reader.cc \
src/core/util/posix/env.cc \
src/core/util/posix/stat.cc \
src/core/util/posix/string.cc \
src/core/util/posix/sync.cc \
src/core/util/posix/thd.cc \
src/core/util/posix/time.cc \
src/core/util/posix/tmpfile.cc \
src/core/util/random_early_detection.cc \
src/core/util/ref_counted_string.cc \
src/core/util/status_helper.cc \
src/core/util/strerror.cc \
src/core/util/string.cc \
src/core/util/sync.cc \
src/core/util/sync_abseil.cc \
src/core/util/tchar.cc \
src/core/util/time.cc \
src/core/util/time_averaged_stats.cc \
src/core/util/time_precise.cc \
src/core/util/time_util.cc \
src/core/util/uri.cc \
src/core/util/uuid_v4.cc \
src/core/util/validation_errors.cc \
src/core/util/windows/cpu.cc \
src/core/util/windows/directory_reader.cc \
src/core/util/windows/env.cc \
src/core/util/windows/stat.cc \
src/core/util/windows/string.cc \
src/core/util/windows/string_util.cc \
src/core/util/windows/sync.cc \
src/core/util/windows/thd.cc \
src/core/util/windows/time.cc \
src/core/util/windows/tmpfile.cc \
src/core/util/work_serializer.cc \
src/core/xds/grpc/certificate_provider_store.cc \
src/core/xds/grpc/file_watcher_certificate_provider_factory.cc \
src/core/xds/grpc/xds_audit_logger_registry.cc \
@ -1515,10 +1517,11 @@ LIBGRPC_SRC = \
src/core/xds/grpc/xds_routing.cc \
src/core/xds/grpc/xds_server_grpc.cc \
src/core/xds/grpc/xds_transport_grpc.cc \
src/core/xds/xds_client/lrs_client.cc \
src/core/xds/xds_client/xds_api.cc \
src/core/xds/xds_client/xds_backend_metric_propagation.cc \
src/core/xds/xds_client/xds_bootstrap.cc \
src/core/xds/xds_client/xds_client.cc \
src/core/xds/xds_client/xds_client_stats.cc \
third_party/abseil-cpp/absl/base/internal/cycleclock.cc \
third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc \
third_party/abseil-cpp/absl/base/internal/raw_logging.cc \
@ -1542,9 +1545,12 @@ LIBGRPC_SRC = \
third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc \
third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc \
third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc \
third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc \
third_party/abseil-cpp/absl/debugging/internal/demangle.cc \
third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc \
third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc \
third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc \
third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc \
third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc \
third_party/abseil-cpp/absl/debugging/stacktrace.cc \
third_party/abseil-cpp/absl/debugging/symbolize.cc \
@ -1700,6 +1706,7 @@ LIBGRPC_SRC = \
third_party/upb/upb/message/internal/message.c \
third_party/upb/upb/message/map.c \
third_party/upb/upb/message/map_sorter.c \
third_party/upb/upb/message/merge.c \
third_party/upb/upb/message/message.c \
third_party/upb/upb/mini_descriptor/build_enum.c \
third_party/upb/upb/mini_descriptor/decode.c \
@ -1727,6 +1734,7 @@ LIBGRPC_SRC = \
third_party/upb/upb/reflection/oneof_def.c \
third_party/upb/upb/reflection/service_def.c \
third_party/upb/upb/text/encode.c \
third_party/upb/upb/text/internal/encode.c \
third_party/upb/upb/wire/decode.c \
third_party/upb/upb/wire/encode.c \
third_party/upb/upb/wire/eps_copy_input_stream.c \

@ -17,6 +17,7 @@ include src/python/grpcio/_parallel_compile_patch.py
include src/python/grpcio/_spawn_patch.py
include src/python/grpcio/commands.py
include src/python/grpcio/grpc_version.py
include src/python/grpcio/python_version.py
include src/python/grpcio/grpc_core_dependencies.py
include src/python/grpcio/precompiled.py
include src/python/grpcio/support.py

207
Package.swift generated

@ -210,6 +210,8 @@ let package = Package(
"src/core/ext/transport/chttp2/transport/bin_decoder.h",
"src/core/ext/transport/chttp2/transport/bin_encoder.cc",
"src/core/ext/transport/chttp2/transport/bin_encoder.h",
"src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc",
"src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h",
"src/core/ext/transport/chttp2/transport/chttp2_transport.cc",
"src/core/ext/transport/chttp2/transport/chttp2_transport.h",
"src/core/ext/transport/chttp2/transport/context_list_entry.h",
@ -256,6 +258,7 @@ let package = Package(
"src/core/ext/transport/chttp2/transport/ping_rate_policy.cc",
"src/core/ext/transport/chttp2/transport/ping_rate_policy.h",
"src/core/ext/transport/chttp2/transport/stream_lists.cc",
"src/core/ext/transport/chttp2/transport/stream_lists.h",
"src/core/ext/transport/chttp2/transport/varint.cc",
"src/core/ext/transport/chttp2/transport/varint.h",
"src/core/ext/transport/chttp2/transport/write_size_policy.cc",
@ -1069,6 +1072,8 @@ let package = Package(
"src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.h",
"src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c",
"src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.h",
"src/core/filter/blackboard.cc",
"src/core/filter/blackboard.h",
"src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc",
"src/core/handshaker/endpoint_info/endpoint_info_handshaker.h",
"src/core/handshaker/handshaker.cc",
@ -1093,11 +1098,6 @@ let package = Package(
"src/core/lib/address_utils/parse_address.h",
"src/core/lib/address_utils/sockaddr_utils.cc",
"src/core/lib/address_utils/sockaddr_utils.h",
"src/core/lib/avl/avl.h",
"src/core/lib/backoff/backoff.cc",
"src/core/lib/backoff/backoff.h",
"src/core/lib/backoff/random_early_detection.cc",
"src/core/lib/backoff/random_early_detection.h",
"src/core/lib/channel/call_finalization.h",
"src/core/lib/channel/channel_args.cc",
"src/core/lib/channel/channel_args.h",
@ -1128,8 +1128,6 @@ let package = Package(
"src/core/lib/config/core_configuration.h",
"src/core/lib/config/load_config.cc",
"src/core/lib/config/load_config.h",
"src/core/lib/debug/event_log.cc",
"src/core/lib/debug/event_log.h",
"src/core/lib/debug/trace.cc",
"src/core/lib/debug/trace.h",
"src/core/lib/debug/trace_flags.cc",
@ -1250,83 +1248,6 @@ let package = Package(
"src/core/lib/experiments/config.h",
"src/core/lib/experiments/experiments.cc",
"src/core/lib/experiments/experiments.h",
"src/core/lib/gprpp/atomic_utils.h",
"src/core/lib/gprpp/bitset.h",
"src/core/lib/gprpp/chunked_vector.h",
"src/core/lib/gprpp/construct_destruct.h",
"src/core/lib/gprpp/cpp_impl_of.h",
"src/core/lib/gprpp/crash.cc",
"src/core/lib/gprpp/crash.h",
"src/core/lib/gprpp/debug_location.h",
"src/core/lib/gprpp/directory_reader.h",
"src/core/lib/gprpp/down_cast.h",
"src/core/lib/gprpp/dual_ref_counted.h",
"src/core/lib/gprpp/dump_args.cc",
"src/core/lib/gprpp/dump_args.h",
"src/core/lib/gprpp/env.h",
"src/core/lib/gprpp/examine_stack.cc",
"src/core/lib/gprpp/examine_stack.h",
"src/core/lib/gprpp/fork.cc",
"src/core/lib/gprpp/fork.h",
"src/core/lib/gprpp/glob.cc",
"src/core/lib/gprpp/glob.h",
"src/core/lib/gprpp/host_port.cc",
"src/core/lib/gprpp/host_port.h",
"src/core/lib/gprpp/if_list.h",
"src/core/lib/gprpp/linux/env.cc",
"src/core/lib/gprpp/load_file.cc",
"src/core/lib/gprpp/load_file.h",
"src/core/lib/gprpp/manual_constructor.h",
"src/core/lib/gprpp/match.h",
"src/core/lib/gprpp/memory.h",
"src/core/lib/gprpp/mpscq.cc",
"src/core/lib/gprpp/mpscq.h",
"src/core/lib/gprpp/no_destruct.h",
"src/core/lib/gprpp/notification.h",
"src/core/lib/gprpp/orphanable.h",
"src/core/lib/gprpp/overload.h",
"src/core/lib/gprpp/packed_table.h",
"src/core/lib/gprpp/per_cpu.cc",
"src/core/lib/gprpp/per_cpu.h",
"src/core/lib/gprpp/posix/directory_reader.cc",
"src/core/lib/gprpp/posix/env.cc",
"src/core/lib/gprpp/posix/stat.cc",
"src/core/lib/gprpp/posix/thd.cc",
"src/core/lib/gprpp/ref_counted.h",
"src/core/lib/gprpp/ref_counted_ptr.h",
"src/core/lib/gprpp/ref_counted_string.cc",
"src/core/lib/gprpp/ref_counted_string.h",
"src/core/lib/gprpp/single_set_ptr.h",
"src/core/lib/gprpp/sorted_pack.h",
"src/core/lib/gprpp/stat.h",
"src/core/lib/gprpp/status_helper.cc",
"src/core/lib/gprpp/status_helper.h",
"src/core/lib/gprpp/strerror.cc",
"src/core/lib/gprpp/strerror.h",
"src/core/lib/gprpp/sync.h",
"src/core/lib/gprpp/table.h",
"src/core/lib/gprpp/tchar.cc",
"src/core/lib/gprpp/tchar.h",
"src/core/lib/gprpp/thd.h",
"src/core/lib/gprpp/time.cc",
"src/core/lib/gprpp/time.h",
"src/core/lib/gprpp/time_averaged_stats.cc",
"src/core/lib/gprpp/time_averaged_stats.h",
"src/core/lib/gprpp/time_util.cc",
"src/core/lib/gprpp/time_util.h",
"src/core/lib/gprpp/type_list.h",
"src/core/lib/gprpp/unique_type_name.h",
"src/core/lib/gprpp/uuid_v4.cc",
"src/core/lib/gprpp/uuid_v4.h",
"src/core/lib/gprpp/validation_errors.cc",
"src/core/lib/gprpp/validation_errors.h",
"src/core/lib/gprpp/windows/directory_reader.cc",
"src/core/lib/gprpp/windows/env.cc",
"src/core/lib/gprpp/windows/stat.cc",
"src/core/lib/gprpp/windows/thd.cc",
"src/core/lib/gprpp/work_serializer.cc",
"src/core/lib/gprpp/work_serializer.h",
"src/core/lib/gprpp/xxhash_inline.h",
"src/core/lib/iomgr/block_annotate.h",
"src/core/lib/iomgr/buffer_list.cc",
"src/core/lib/iomgr/buffer_list.h",
@ -1371,13 +1292,6 @@ let package = Package(
"src/core/lib/iomgr/executor.h",
"src/core/lib/iomgr/fork_posix.cc",
"src/core/lib/iomgr/fork_windows.cc",
"src/core/lib/iomgr/gethostname.h",
"src/core/lib/iomgr/gethostname_fallback.cc",
"src/core/lib/iomgr/gethostname_host_name_max.cc",
"src/core/lib/iomgr/gethostname_sysconf.cc",
"src/core/lib/iomgr/grpc_if_nametoindex.h",
"src/core/lib/iomgr/grpc_if_nametoindex_posix.cc",
"src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc",
"src/core/lib/iomgr/internal_errqueue.cc",
"src/core/lib/iomgr/internal_errqueue.h",
"src/core/lib/iomgr/iocp_windows.cc",
@ -1468,8 +1382,6 @@ let package = Package(
"src/core/lib/iomgr/wakeup_fd_pipe.h",
"src/core/lib/iomgr/wakeup_fd_posix.cc",
"src/core/lib/iomgr/wakeup_fd_posix.h",
"src/core/lib/matchers/matchers.cc",
"src/core/lib/matchers/matchers.h",
"src/core/lib/promise/activity.cc",
"src/core/lib/promise/activity.h",
"src/core/lib/promise/all_ok.h",
@ -1734,8 +1646,6 @@ let package = Package(
"src/core/lib/transport/transport.h",
"src/core/lib/transport/transport_fwd.h",
"src/core/lib/transport/transport_op_string.cc",
"src/core/lib/uri/uri_parser.cc",
"src/core/lib/uri/uri_parser.h",
"src/core/load_balancing/address_filtering.cc",
"src/core/load_balancing/address_filtering.h",
"src/core/load_balancing/backend_metric_data.h",
@ -1920,8 +1830,43 @@ let package = Package(
"src/core/util/alloc.cc",
"src/core/util/alloc.h",
"src/core/util/atm.cc",
"src/core/util/atomic_utils.h",
"src/core/util/avl.h",
"src/core/util/backoff.cc",
"src/core/util/backoff.h",
"src/core/util/bitset.h",
"src/core/util/chunked_vector.h",
"src/core/util/construct_destruct.h",
"src/core/util/cpp_impl_of.h",
"src/core/util/crash.cc",
"src/core/util/crash.h",
"src/core/util/debug_location.h",
"src/core/util/directory_reader.h",
"src/core/util/down_cast.h",
"src/core/util/dual_ref_counted.h",
"src/core/util/dump_args.cc",
"src/core/util/dump_args.h",
"src/core/util/env.h",
"src/core/util/event_log.cc",
"src/core/util/event_log.h",
"src/core/util/examine_stack.cc",
"src/core/util/examine_stack.h",
"src/core/util/fork.cc",
"src/core/util/fork.h",
"src/core/util/gcp_metadata_query.cc",
"src/core/util/gcp_metadata_query.h",
"src/core/util/gethostname.h",
"src/core/util/gethostname_fallback.cc",
"src/core/util/gethostname_host_name_max.cc",
"src/core/util/gethostname_sysconf.cc",
"src/core/util/glob.cc",
"src/core/util/glob.h",
"src/core/util/gpr_time.cc",
"src/core/util/grpc_if_nametoindex.h",
"src/core/util/grpc_if_nametoindex_posix.cc",
"src/core/util/grpc_if_nametoindex_unsupported.cc",
"src/core/util/host_port.cc",
"src/core/util/host_port.h",
"src/core/util/http_client/format_request.cc",
"src/core/util/http_client/format_request.h",
"src/core/util/http_client/httpcli.cc",
@ -1930,6 +1875,7 @@ let package = Package(
"src/core/util/http_client/httpcli_ssl_credentials.h",
"src/core/util/http_client/parser.cc",
"src/core/util/http_client/parser.h",
"src/core/util/if_list.h",
"src/core/util/iphone/cpu.cc",
"src/core/util/json/json.h",
"src/core/util/json/json_args.h",
@ -1945,33 +1891,92 @@ let package = Package(
"src/core/util/latent_see.cc",
"src/core/util/latent_see.h",
"src/core/util/linux/cpu.cc",
"src/core/util/linux/env.cc",
"src/core/util/load_file.cc",
"src/core/util/load_file.h",
"src/core/util/log.cc",
"src/core/util/lru_cache.h",
"src/core/util/manual_constructor.h",
"src/core/util/match.h",
"src/core/util/matchers.cc",
"src/core/util/matchers.h",
"src/core/util/memory.h",
"src/core/util/mpscq.cc",
"src/core/util/mpscq.h",
"src/core/util/msys/tmpfile.cc",
"src/core/util/no_destruct.h",
"src/core/util/notification.h",
"src/core/util/orphanable.h",
"src/core/util/overload.h",
"src/core/util/packed_table.h",
"src/core/util/per_cpu.cc",
"src/core/util/per_cpu.h",
"src/core/util/posix/cpu.cc",
"src/core/util/posix/directory_reader.cc",
"src/core/util/posix/env.cc",
"src/core/util/posix/stat.cc",
"src/core/util/posix/string.cc",
"src/core/util/posix/sync.cc",
"src/core/util/posix/thd.cc",
"src/core/util/posix/time.cc",
"src/core/util/posix/tmpfile.cc",
"src/core/util/random_early_detection.cc",
"src/core/util/random_early_detection.h",
"src/core/util/ref_counted.h",
"src/core/util/ref_counted_ptr.h",
"src/core/util/ref_counted_string.cc",
"src/core/util/ref_counted_string.h",
"src/core/util/ring_buffer.h",
"src/core/util/single_set_ptr.h",
"src/core/util/sorted_pack.h",
"src/core/util/spinlock.h",
"src/core/util/stat.h",
"src/core/util/status_helper.cc",
"src/core/util/status_helper.h",
"src/core/util/strerror.cc",
"src/core/util/strerror.h",
"src/core/util/string.cc",
"src/core/util/string.h",
"src/core/util/sync.cc",
"src/core/util/sync.h",
"src/core/util/sync_abseil.cc",
"src/core/util/table.h",
"src/core/util/tchar.cc",
"src/core/util/tchar.h",
"src/core/util/thd.h",
"src/core/util/time.cc",
"src/core/util/time.h",
"src/core/util/time_averaged_stats.cc",
"src/core/util/time_averaged_stats.h",
"src/core/util/time_precise.cc",
"src/core/util/time_precise.h",
"src/core/util/time_util.cc",
"src/core/util/time_util.h",
"src/core/util/tmpfile.h",
"src/core/util/type_list.h",
"src/core/util/unique_ptr_with_bitset.h",
"src/core/util/unique_type_name.h",
"src/core/util/upb_utils.h",
"src/core/util/uri.cc",
"src/core/util/uri.h",
"src/core/util/useful.h",
"src/core/util/uuid_v4.cc",
"src/core/util/uuid_v4.h",
"src/core/util/validation_errors.cc",
"src/core/util/validation_errors.h",
"src/core/util/windows/cpu.cc",
"src/core/util/windows/directory_reader.cc",
"src/core/util/windows/env.cc",
"src/core/util/windows/stat.cc",
"src/core/util/windows/string.cc",
"src/core/util/windows/string_util.cc",
"src/core/util/windows/sync.cc",
"src/core/util/windows/thd.cc",
"src/core/util/windows/time.cc",
"src/core/util/windows/tmpfile.cc",
"src/core/util/work_serializer.cc",
"src/core/util/work_serializer.h",
"src/core/util/xxhash_inline.h",
"src/core/xds/grpc/certificate_provider_store.cc",
"src/core/xds/grpc/certificate_provider_store.h",
"src/core/xds/grpc/file_watcher_certificate_provider_factory.cc",
@ -2031,15 +2036,18 @@ let package = Package(
"src/core/xds/grpc/xds_server_grpc.h",
"src/core/xds/grpc/xds_transport_grpc.cc",
"src/core/xds/grpc/xds_transport_grpc.h",
"src/core/xds/xds_client/lrs_client.cc",
"src/core/xds/xds_client/lrs_client.h",
"src/core/xds/xds_client/xds_api.cc",
"src/core/xds/xds_client/xds_api.h",
"src/core/xds/xds_client/xds_backend_metric_propagation.cc",
"src/core/xds/xds_client/xds_backend_metric_propagation.h",
"src/core/xds/xds_client/xds_bootstrap.cc",
"src/core/xds/xds_client/xds_bootstrap.h",
"src/core/xds/xds_client/xds_channel_args.h",
"src/core/xds/xds_client/xds_client.cc",
"src/core/xds/xds_client/xds_client.h",
"src/core/xds/xds_client/xds_client_stats.cc",
"src/core/xds/xds_client/xds_client_stats.h",
"src/core/xds/xds_client/xds_locality.h",
"src/core/xds/xds_client/xds_metrics.h",
"src/core/xds/xds_client/xds_resource_type.h",
"src/core/xds/xds_client/xds_resource_type_impl.h",
@ -2143,6 +2151,8 @@ let package = Package(
"third_party/upb/upb/message/map.h",
"third_party/upb/upb/message/map_gencode_util.h",
"third_party/upb/upb/message/map_sorter.c",
"third_party/upb/upb/message/merge.c",
"third_party/upb/upb/message/merge.h",
"third_party/upb/upb/message/message.c",
"third_party/upb/upb/message/message.h",
"third_party/upb/upb/message/tagged_ptr.h",
@ -2221,6 +2231,9 @@ let package = Package(
"third_party/upb/upb/reflection/service_def.h",
"third_party/upb/upb/text/encode.c",
"third_party/upb/upb/text/encode.h",
"third_party/upb/upb/text/internal/encode.c",
"third_party/upb/upb/text/internal/encode.h",
"third_party/upb/upb/text/options.h",
"third_party/upb/upb/wire/eps_copy_input_stream.c",
"third_party/upb/upb/wire/eps_copy_input_stream.h",
"third_party/upb/upb/wire/internal/reader.h",

@ -89,7 +89,7 @@ load("@com_google_protobuf//bazel:system_python.bzl", "system_python")
system_python(
name = "system_python",
minimum_python_version = "3.7",
minimum_python_version = "3.8",
)
load("@system_python//:pip.bzl", system_pip_parse = "pip_parse")

@ -20,7 +20,17 @@ licenses(["notice"])
package(default_visibility = ["//:__subpackages__"])
filegroup(
name = "_single_module_tester",
srcs = ["_single_module_tester.py"],
)
filegroup(
name = "_gevent_test_main",
srcs = ["_gevent_test_main.py"],
)
filegroup(
name = "_logging_threshold_test_main",
srcs = ["_logging_threshold_test_main.py"],
)

@ -0,0 +1,93 @@
# Copyright 2024 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.
import os
import re
import subprocess
import sys
import tempfile
_OK_TEST_REGEX = r"^-+.*Ran ([\d]+) tests* in ([\d.]+)s.*OK(?: \(skipped=(\d+)\))?\n$"
# Tests with known exception logs.
# TODO(sourabhsinghs): Investigate and enable _rpc_part_1_test and _rpc_part_2_test tests.
_SKIP_TESTS = [
"_rpc_part_1_test",
"_server_shutdown_test",
"_xds_credentials_test",
"_server_test",
"_invalid_metadata_test",
"_reconnect_test",
"_channel_close_test",
"_rpc_part_2_test",
"_invocation_defects_test",
"_dynamic_stubs_test",
"_channel_connectivity_test",
]
if __name__ == "__main__":
if len(sys.argv) != 3:
print(f"USAGE: {sys.argv[0]} TARGET_MODULE", file=sys.stderr)
sys.exit(1)
test_script = sys.argv[1]
target_module = sys.argv[2]
if target_module in _SKIP_TESTS:
print(f"Skipping {target_module}")
sys.exit(0)
command = [
sys.executable,
os.path.realpath(test_script),
target_module,
os.path.dirname(os.path.relpath(__file__)),
]
with tempfile.TemporaryFile(mode="w+") as stdout_file:
with tempfile.TemporaryFile(mode="w+") as stderr_file:
result = subprocess.run(
command,
stdout=stdout_file,
stderr=stderr_file,
text=True,
check=True,
)
stdout_file.seek(0)
stderr_file.seek(0)
stdout_count = len(stdout_file.readlines())
stderr_count = len(stderr_file.readlines())
if result.returncode != 0:
sys.exit("Test failure")
stderr_file.seek(0)
if not re.fullmatch(_OK_TEST_REGEX, stderr_file.read(), re.DOTALL):
print(
f"Warning: Excessive error output detected ({stderr_count} lines):"
)
stderr_file.seek(0)
for line in stderr_file:
print(line)
if stdout_count > 0:
print(
f"Warning: Unexpected output detected ({stdout_count} lines):"
)
stdout_file.seek(0)
for line in stdout_file:
print(line)

@ -0,0 +1,54 @@
# Copyright 2024 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.
from typing import Sequence, Optional
import unittest
import sys
import pkgutil
class SingleLoader(object):
def __init__(self, pattern: str, unittest_path: str):
loader = unittest.TestLoader()
self.suite = unittest.TestSuite()
tests = []
for importer, module_name, is_package in pkgutil.walk_packages([unittest_path]):
if pattern in module_name:
module = importer.find_module(module_name).load_module(module_name)
tests.append(loader.loadTestsFromModule(module))
if len(tests) != 1:
raise AssertionError("Expected only 1 test module. Found {}".format(tests))
self.suite.addTest(tests[0])
def loadTestsFromNames(self, names: Sequence[str], module: Optional[str] = None) -> unittest.TestSuite:
return self.suite
if __name__ == "__main__":
if len(sys.argv) != 3:
print(f"USAGE: {sys.argv[0]} TARGET_MODULE", file=sys.stderr)
sys.exit(1)
target_module = sys.argv[1]
unittest_path = sys.argv[2]
loader = SingleLoader(target_module, unittest_path)
runner = unittest.TextTestRunner(verbosity=0)
result = runner.run(loader.suite)
if not result.wasSuccessful():
sys.exit("Test failure.")

@ -25,6 +25,7 @@ EXPERIMENT_ENABLES = {
"event_engine_dns": "event_engine_dns",
"event_engine_listener": "event_engine_listener",
"free_large_allocator": "free_large_allocator",
"local_connector_secure": "local_connector_secure",
"max_pings_wo_data_throttle": "max_pings_wo_data_throttle",
"monitoring_experiment": "monitoring_experiment",
"multiping": "multiping",
@ -37,7 +38,6 @@ EXPERIMENT_ENABLES = {
"time_caching_in_party": "time_caching_in_party",
"trace_record_callops": "trace_record_callops",
"unconstrained_max_quota_buffer_size": "unconstrained_max_quota_buffer_size",
"work_serializer_clears_time_cache": "work_serializer_clears_time_cache",
"work_serializer_dispatch": "work_serializer_dispatch",
}
@ -52,6 +52,9 @@ EXPERIMENTS = {
"dbg": {
},
"off": {
"core_end2end_test": [
"local_connector_secure",
],
"endpoint_test": [
"tcp_frame_size_tuning",
"tcp_rcv_lowat",
@ -98,6 +101,9 @@ EXPERIMENTS = {
"dbg": {
},
"off": {
"core_end2end_test": [
"local_connector_secure",
],
"endpoint_test": [
"tcp_frame_size_tuning",
"tcp_rcv_lowat",
@ -129,10 +135,7 @@ EXPERIMENTS = {
},
"off": {
"core_end2end_test": [
"work_serializer_dispatch",
],
"cpp_end2end_test": [
"work_serializer_dispatch",
"local_connector_secure",
],
"endpoint_test": [
"tcp_frame_size_tuning",
@ -143,16 +146,10 @@ EXPERIMENTS = {
"tcp_frame_size_tuning",
"tcp_rcv_lowat",
],
"lb_unit_test": [
"work_serializer_dispatch",
],
"resource_quota_test": [
"free_large_allocator",
"unconstrained_max_quota_buffer_size",
],
"xds_end2end_test": [
"work_serializer_dispatch",
],
},
"on": {
"cancel_ares_query_test": [
@ -161,6 +158,10 @@ EXPERIMENTS = {
"core_end2end_test": [
"event_engine_client",
"event_engine_listener",
"work_serializer_dispatch",
],
"cpp_end2end_test": [
"work_serializer_dispatch",
],
"cpp_lb_end2end_test": [
"pick_first_new",
@ -173,12 +174,14 @@ EXPERIMENTS = {
],
"lb_unit_test": [
"pick_first_new",
"work_serializer_dispatch",
],
"resolver_component_tests_runner_invoker": [
"event_engine_dns",
],
"xds_end2end_test": [
"pick_first_new",
"work_serializer_dispatch",
],
},
},

@ -725,7 +725,7 @@ def grpc_package(name, visibility = "private", features = []):
features: The features to enable.
"""
if visibility == "tests":
visibility = ["//test:__subpackages__"]
visibility = ["//test:__subpackages__", "//src/proto/grpc/testing:__subpackages__"]
elif visibility == "public":
visibility = ["//visibility:public"]
elif visibility == "private":

@ -58,16 +58,15 @@ def grpc_deps():
if "com_google_protobuf" not in native.existing_rules():
http_archive(
name = "com_google_protobuf",
sha256 = "3ed7131962a357b35b1d55238fcc6c6a177eae766ef3e25aa916157bc6e45819",
strip_prefix = "protobuf-63def39e881afa496502d9c410f4ea948e59490d",
sha256 = "8766fce06ef41d79cb6037d04be37df3d5c493d9da92517a7243640d6389f03c",
strip_prefix = "protobuf-10ef3f77683f77fb3c059bf47725c27b3ff41e63",
urls = [
# https://github.com/protocolbuffers/protobuf/commits/v27.2
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/protobuf/archive/63def39e881afa496502d9c410f4ea948e59490d.tar.gz",
"https://github.com/protocolbuffers/protobuf/archive/63def39e881afa496502d9c410f4ea948e59490d.tar.gz",
# https://github.com/protocolbuffers/protobuf/commits/v28.1
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/protobuf/archive/10ef3f77683f77fb3c059bf47725c27b3ff41e63.tar.gz",
"https://github.com/protocolbuffers/protobuf/archive/10ef3f77683f77fb3c059bf47725c27b3ff41e63.tar.gz",
],
patches = [
"@com_github_grpc_grpc//third_party:protobuf.patch",
"@com_github_grpc_grpc//third_party:protobuf.10007.patch",
],
patch_args = ["-p1"],
)
@ -144,11 +143,11 @@ def grpc_deps():
if "com_google_absl" not in native.existing_rules():
http_archive(
name = "com_google_absl",
sha256 = "338420448b140f0dfd1a1ea3c3ce71b3bc172071f24f4d9a57d59b45037da440",
strip_prefix = "abseil-cpp-20240116.0",
sha256 = "f50e5ac311a81382da7fa75b97310e4b9006474f9560ac46f54a9967f07d4ae3",
strip_prefix = "abseil-cpp-20240722.0",
urls = [
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/abseil/abseil-cpp/archive/20240116.0.tar.gz",
"https://github.com/abseil/abseil-cpp/archive/20240116.0.tar.gz",
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/abseil/abseil-cpp/archive/20240722.0.tar.gz",
"https://github.com/abseil/abseil-cpp/archive/20240722.0.tar.gz",
],
)

@ -38,9 +38,9 @@ def grpc_python_deps():
http_archive(
name = "cython",
build_file = "@com_github_grpc_grpc//third_party:cython.BUILD",
sha256 = "a2da56cc22be823acf49741b9aa3aa116d4f07fa8e8b35a3cb08b8447b37c607",
strip_prefix = "cython-0.29.35",
sha256 = "2ec7d66d23d6da2328fb24f5c1bec6c63a59ec2e91027766ab904f417e1078aa",
strip_prefix = "cython-3.0.11",
urls = [
"https://github.com/cython/cython/archive/0.29.35.tar.gz",
"https://github.com/cython/cython/archive/3.0.11.tar.gz",
],
)

@ -0,0 +1,73 @@
# Copyright 2024 The 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.
"""
Houses py_grpc_logging_threshold_test.
"""
_COPIED_MAIN_SUFFIX = ".logging_threshold.main"
def py_grpc_logging_threshold_test(
name,
srcs,
main = None,
deps = None,
data = None,
**kwargs):
"""Runs a Python unit test and checks amount of logging against a threshold.
Args:
name: The name of the test.
srcs: The source files.
main: The main file of the test.
deps: The dependencies of the test.
data: The data dependencies of the test.
**kwargs: Any other test arguments.
"""
if main == None:
if len(srcs) != 1:
fail("When main is not provided, srcs must be of size 1.")
main = srcs[0]
deps = [] if deps == None else deps
data = [] if data == None else data
lib_name = name + ".logging_threshold.lib"
native.py_library(
name = lib_name,
srcs = srcs,
)
augmented_deps = deps + [
":{}".format(lib_name),
]
# The main file needs to be in the same package as the test file.
copied_main_name = name + _COPIED_MAIN_SUFFIX
copied_main_filename = copied_main_name + ".py"
native.genrule(
name = copied_main_name,
srcs = ["//bazel:_logging_threshold_test_main.py"],
outs = [copied_main_filename],
cmd = "cp $< $@",
)
native.py_test(
name = name + ".logging_threshold",
args = ["$(location //bazel:_single_module_tester)", name],
data = data + ["//bazel:_single_module_tester"],
deps = augmented_deps,
srcs = [copied_main_filename],
main = copied_main_filename,
python_version = "PY3",
flaky = False,
**kwargs
)

@ -15,6 +15,7 @@ extend-exclude = '''
| test/cpp/naming/resolver_component_tests_runner.py # AUTO-GENERATED
# AUTO-GENERATED from a template:
| grpc_version.py
| python_version.py
| src/python/grpcio/grpc_core_dependencies.py
| src/python/grpcio/grpc/_grpcio_metadata.py
# AUTO-GENERATED BY make_grpcio_tools.py

File diff suppressed because it is too large Load Diff

@ -15,7 +15,14 @@ settings:
core_version: 44.0.0
csharp_major_version: 2
g_stands_for: groovy
protobuf_version: 3.27.2
protobuf_version: 3.28.1
supported_python_versions:
- '3.8'
- '3.9'
- '3.10'
- '3.11'
- '3.12'
- '3.13'
version: 1.68.0-dev
configs:
asan:

@ -65,12 +65,11 @@ elseif(gRPC_PROTOBUF_PROVIDER STREQUAL "package")
endif()
if(TARGET protobuf::libprotoc)
set(_gRPC_PROTOBUF_PROTOC_LIBRARIES protobuf::libprotoc)
# extract the include dir from target's properties
get_target_property(_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR protobuf::libprotoc INTERFACE_INCLUDE_DIRECTORIES)
else()
set(_gRPC_PROTOBUF_PROTOC_LIBRARIES ${PROTOBUF_PROTOC_LIBRARIES})
set(_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR ${PROTOBUF_INCLUDE_DIRS})
endif()
# Well-known proto files are expected to be in the Protobuf include directory.
get_target_property(_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR ${_gRPC_PROTOBUF_LIBRARIES} INTERFACE_INCLUDE_DIRECTORIES)
if(TARGET protobuf::protoc)
set(_gRPC_PROTOBUF_PROTOC protobuf::protoc)
if(CMAKE_CROSSCOMPILING)

95
config.m4 generated

@ -86,6 +86,7 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/transport/chttp2/server/chttp2_server.cc \
src/core/ext/transport/chttp2/transport/bin_decoder.cc \
src/core/ext/transport/chttp2/transport/bin_encoder.cc \
src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc \
src/core/ext/transport/chttp2/transport/chttp2_transport.cc \
src/core/ext/transport/chttp2/transport/decode_huff.cc \
src/core/ext/transport/chttp2/transport/flow_control.cc \
@ -432,6 +433,7 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c \
src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c \
src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c \
src/core/filter/blackboard.cc \
src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc \
src/core/handshaker/handshaker.cc \
src/core/handshaker/handshaker_registry.cc \
@ -443,8 +445,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc \
src/core/lib/address_utils/parse_address.cc \
src/core/lib/address_utils/sockaddr_utils.cc \
src/core/lib/backoff/backoff.cc \
src/core/lib/backoff/random_early_detection.cc \
src/core/lib/channel/channel_args.cc \
src/core/lib/channel/channel_args_preconditioning.cc \
src/core/lib/channel/channel_stack.cc \
@ -460,7 +460,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/config/config_vars_non_generated.cc \
src/core/lib/config/core_configuration.cc \
src/core/lib/config/load_config.cc \
src/core/lib/debug/event_log.cc \
src/core/lib/debug/trace.cc \
src/core/lib/debug/trace_flags.cc \
src/core/lib/event_engine/ares_resolver.cc \
@ -512,34 +511,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/event_engine/work_queue/basic_work_queue.cc \
src/core/lib/experiments/config.cc \
src/core/lib/experiments/experiments.cc \
src/core/lib/gprpp/crash.cc \
src/core/lib/gprpp/dump_args.cc \
src/core/lib/gprpp/examine_stack.cc \
src/core/lib/gprpp/fork.cc \
src/core/lib/gprpp/glob.cc \
src/core/lib/gprpp/host_port.cc \
src/core/lib/gprpp/linux/env.cc \
src/core/lib/gprpp/load_file.cc \
src/core/lib/gprpp/mpscq.cc \
src/core/lib/gprpp/per_cpu.cc \
src/core/lib/gprpp/posix/directory_reader.cc \
src/core/lib/gprpp/posix/env.cc \
src/core/lib/gprpp/posix/stat.cc \
src/core/lib/gprpp/posix/thd.cc \
src/core/lib/gprpp/ref_counted_string.cc \
src/core/lib/gprpp/status_helper.cc \
src/core/lib/gprpp/strerror.cc \
src/core/lib/gprpp/tchar.cc \
src/core/lib/gprpp/time.cc \
src/core/lib/gprpp/time_averaged_stats.cc \
src/core/lib/gprpp/time_util.cc \
src/core/lib/gprpp/uuid_v4.cc \
src/core/lib/gprpp/validation_errors.cc \
src/core/lib/gprpp/windows/directory_reader.cc \
src/core/lib/gprpp/windows/env.cc \
src/core/lib/gprpp/windows/stat.cc \
src/core/lib/gprpp/windows/thd.cc \
src/core/lib/gprpp/work_serializer.cc \
src/core/lib/iomgr/buffer_list.cc \
src/core/lib/iomgr/call_combiner.cc \
src/core/lib/iomgr/cfstream_handle.cc \
@ -563,11 +534,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/iomgr/executor.cc \
src/core/lib/iomgr/fork_posix.cc \
src/core/lib/iomgr/fork_windows.cc \
src/core/lib/iomgr/gethostname_fallback.cc \
src/core/lib/iomgr/gethostname_host_name_max.cc \
src/core/lib/iomgr/gethostname_sysconf.cc \
src/core/lib/iomgr/grpc_if_nametoindex_posix.cc \
src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc \
src/core/lib/iomgr/internal_errqueue.cc \
src/core/lib/iomgr/iocp_windows.cc \
src/core/lib/iomgr/iomgr.cc \
@ -616,7 +582,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/iomgr/wakeup_fd_nospecial.cc \
src/core/lib/iomgr/wakeup_fd_pipe.cc \
src/core/lib/iomgr/wakeup_fd_posix.cc \
src/core/lib/matchers/matchers.cc \
src/core/lib/promise/activity.cc \
src/core/lib/promise/party.cc \
src/core/lib/promise/sleep.cc \
@ -736,7 +701,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/transport/timeout_encoding.cc \
src/core/lib/transport/transport.cc \
src/core/lib/transport/transport_op_string.cc \
src/core/lib/uri/uri_parser.cc \
src/core/load_balancing/address_filtering.cc \
src/core/load_balancing/backend_metric_parser.cc \
src/core/load_balancing/child_policy_handler.cc \
@ -831,7 +795,21 @@ if test "$PHP_GRPC" != "no"; then
src/core/tsi/transport_security_grpc.cc \
src/core/util/alloc.cc \
src/core/util/atm.cc \
src/core/util/backoff.cc \
src/core/util/crash.cc \
src/core/util/dump_args.cc \
src/core/util/event_log.cc \
src/core/util/examine_stack.cc \
src/core/util/fork.cc \
src/core/util/gcp_metadata_query.cc \
src/core/util/gethostname_fallback.cc \
src/core/util/gethostname_host_name_max.cc \
src/core/util/gethostname_sysconf.cc \
src/core/util/glob.cc \
src/core/util/gpr_time.cc \
src/core/util/grpc_if_nametoindex_posix.cc \
src/core/util/grpc_if_nametoindex_unsupported.cc \
src/core/util/host_port.cc \
src/core/util/http_client/format_request.cc \
src/core/util/http_client/httpcli.cc \
src/core/util/http_client/httpcli_security_connector.cc \
@ -843,24 +821,48 @@ if test "$PHP_GRPC" != "no"; then
src/core/util/json/json_writer.cc \
src/core/util/latent_see.cc \
src/core/util/linux/cpu.cc \
src/core/util/linux/env.cc \
src/core/util/load_file.cc \
src/core/util/log.cc \
src/core/util/matchers.cc \
src/core/util/mpscq.cc \
src/core/util/msys/tmpfile.cc \
src/core/util/per_cpu.cc \
src/core/util/posix/cpu.cc \
src/core/util/posix/directory_reader.cc \
src/core/util/posix/env.cc \
src/core/util/posix/stat.cc \
src/core/util/posix/string.cc \
src/core/util/posix/sync.cc \
src/core/util/posix/thd.cc \
src/core/util/posix/time.cc \
src/core/util/posix/tmpfile.cc \
src/core/util/random_early_detection.cc \
src/core/util/ref_counted_string.cc \
src/core/util/status_helper.cc \
src/core/util/strerror.cc \
src/core/util/string.cc \
src/core/util/sync.cc \
src/core/util/sync_abseil.cc \
src/core/util/tchar.cc \
src/core/util/time.cc \
src/core/util/time_averaged_stats.cc \
src/core/util/time_precise.cc \
src/core/util/time_util.cc \
src/core/util/uri.cc \
src/core/util/uuid_v4.cc \
src/core/util/validation_errors.cc \
src/core/util/windows/cpu.cc \
src/core/util/windows/directory_reader.cc \
src/core/util/windows/env.cc \
src/core/util/windows/stat.cc \
src/core/util/windows/string.cc \
src/core/util/windows/string_util.cc \
src/core/util/windows/sync.cc \
src/core/util/windows/thd.cc \
src/core/util/windows/time.cc \
src/core/util/windows/tmpfile.cc \
src/core/util/work_serializer.cc \
src/core/xds/grpc/certificate_provider_store.cc \
src/core/xds/grpc/file_watcher_certificate_provider_factory.cc \
src/core/xds/grpc/xds_audit_logger_registry.cc \
@ -890,10 +892,11 @@ if test "$PHP_GRPC" != "no"; then
src/core/xds/grpc/xds_routing.cc \
src/core/xds/grpc/xds_server_grpc.cc \
src/core/xds/grpc/xds_transport_grpc.cc \
src/core/xds/xds_client/lrs_client.cc \
src/core/xds/xds_client/xds_api.cc \
src/core/xds/xds_client/xds_backend_metric_propagation.cc \
src/core/xds/xds_client/xds_bootstrap.cc \
src/core/xds/xds_client/xds_client.cc \
src/core/xds/xds_client/xds_client_stats.cc \
src/php/ext/grpc/byte_buffer.c \
src/php/ext/grpc/call.c \
src/php/ext/grpc/call_credentials.c \
@ -927,9 +930,12 @@ if test "$PHP_GRPC" != "no"; then
third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc \
third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc \
third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc \
third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc \
third_party/abseil-cpp/absl/debugging/internal/demangle.cc \
third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc \
third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc \
third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc \
third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc \
third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc \
third_party/abseil-cpp/absl/debugging/stacktrace.cc \
third_party/abseil-cpp/absl/debugging/symbolize.cc \
@ -1362,6 +1368,7 @@ if test "$PHP_GRPC" != "no"; then
third_party/upb/upb/message/internal/message.c \
third_party/upb/upb/message/map.c \
third_party/upb/upb/message/map_sorter.c \
third_party/upb/upb/message/merge.c \
third_party/upb/upb/message/message.c \
third_party/upb/upb/mini_descriptor/build_enum.c \
third_party/upb/upb/mini_descriptor/decode.c \
@ -1389,6 +1396,7 @@ if test "$PHP_GRPC" != "no"; then
third_party/upb/upb/reflection/oneof_def.c \
third_party/upb/upb/reflection/service_def.c \
third_party/upb/upb/text/encode.c \
third_party/upb/upb/text/internal/encode.c \
third_party/upb/upb/wire/decode.c \
third_party/upb/upb/wire/encode.c \
third_party/upb/upb/wire/eps_copy_input_stream.c \
@ -1525,13 +1533,13 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/xds/core/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/xds/type/matcher/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/xds/type/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/filter)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/handshaker)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/handshaker/endpoint_info)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/handshaker/http_connect)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/handshaker/security)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/handshaker/tcp_connect)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/address_utils)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/backoff)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/channel)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/compression)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/config)
@ -1544,13 +1552,8 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/event_engine/windows)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/event_engine/work_queue)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/experiments)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gprpp)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gprpp/linux)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gprpp/posix)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gprpp/windows)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/iomgr)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/iomgr/event_engine_shims)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/matchers)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/promise)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/resource_quota)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/security/authorization)
@ -1585,7 +1588,6 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/slice)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/surface)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/transport)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/uri)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/grpclb)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/outlier_detection)
@ -1719,6 +1721,7 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/reflection)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/reflection/internal)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/text)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/text/internal)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/wire)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/wire/internal)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/utf8_range)

95
config.w32 generated

@ -51,6 +51,7 @@ if (PHP_GRPC != "no") {
"src\\core\\ext\\transport\\chttp2\\server\\chttp2_server.cc " +
"src\\core\\ext\\transport\\chttp2\\transport\\bin_decoder.cc " +
"src\\core\\ext\\transport\\chttp2\\transport\\bin_encoder.cc " +
"src\\core\\ext\\transport\\chttp2\\transport\\call_tracer_wrapper.cc " +
"src\\core\\ext\\transport\\chttp2\\transport\\chttp2_transport.cc " +
"src\\core\\ext\\transport\\chttp2\\transport\\decode_huff.cc " +
"src\\core\\ext\\transport\\chttp2\\transport\\flow_control.cc " +
@ -397,6 +398,7 @@ if (PHP_GRPC != "no") {
"src\\core\\ext\\upbdefs-gen\\xds\\type\\v3\\cel.upbdefs.c " +
"src\\core\\ext\\upbdefs-gen\\xds\\type\\v3\\range.upbdefs.c " +
"src\\core\\ext\\upbdefs-gen\\xds\\type\\v3\\typed_struct.upbdefs.c " +
"src\\core\\filter\\blackboard.cc " +
"src\\core\\handshaker\\endpoint_info\\endpoint_info_handshaker.cc " +
"src\\core\\handshaker\\handshaker.cc " +
"src\\core\\handshaker\\handshaker_registry.cc " +
@ -408,8 +410,6 @@ if (PHP_GRPC != "no") {
"src\\core\\handshaker\\tcp_connect\\tcp_connect_handshaker.cc " +
"src\\core\\lib\\address_utils\\parse_address.cc " +
"src\\core\\lib\\address_utils\\sockaddr_utils.cc " +
"src\\core\\lib\\backoff\\backoff.cc " +
"src\\core\\lib\\backoff\\random_early_detection.cc " +
"src\\core\\lib\\channel\\channel_args.cc " +
"src\\core\\lib\\channel\\channel_args_preconditioning.cc " +
"src\\core\\lib\\channel\\channel_stack.cc " +
@ -425,7 +425,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\config\\config_vars_non_generated.cc " +
"src\\core\\lib\\config\\core_configuration.cc " +
"src\\core\\lib\\config\\load_config.cc " +
"src\\core\\lib\\debug\\event_log.cc " +
"src\\core\\lib\\debug\\trace.cc " +
"src\\core\\lib\\debug\\trace_flags.cc " +
"src\\core\\lib\\event_engine\\ares_resolver.cc " +
@ -477,34 +476,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\event_engine\\work_queue\\basic_work_queue.cc " +
"src\\core\\lib\\experiments\\config.cc " +
"src\\core\\lib\\experiments\\experiments.cc " +
"src\\core\\lib\\gprpp\\crash.cc " +
"src\\core\\lib\\gprpp\\dump_args.cc " +
"src\\core\\lib\\gprpp\\examine_stack.cc " +
"src\\core\\lib\\gprpp\\fork.cc " +
"src\\core\\lib\\gprpp\\glob.cc " +
"src\\core\\lib\\gprpp\\host_port.cc " +
"src\\core\\lib\\gprpp\\linux\\env.cc " +
"src\\core\\lib\\gprpp\\load_file.cc " +
"src\\core\\lib\\gprpp\\mpscq.cc " +
"src\\core\\lib\\gprpp\\per_cpu.cc " +
"src\\core\\lib\\gprpp\\posix\\directory_reader.cc " +
"src\\core\\lib\\gprpp\\posix\\env.cc " +
"src\\core\\lib\\gprpp\\posix\\stat.cc " +
"src\\core\\lib\\gprpp\\posix\\thd.cc " +
"src\\core\\lib\\gprpp\\ref_counted_string.cc " +
"src\\core\\lib\\gprpp\\status_helper.cc " +
"src\\core\\lib\\gprpp\\strerror.cc " +
"src\\core\\lib\\gprpp\\tchar.cc " +
"src\\core\\lib\\gprpp\\time.cc " +
"src\\core\\lib\\gprpp\\time_averaged_stats.cc " +
"src\\core\\lib\\gprpp\\time_util.cc " +
"src\\core\\lib\\gprpp\\uuid_v4.cc " +
"src\\core\\lib\\gprpp\\validation_errors.cc " +
"src\\core\\lib\\gprpp\\windows\\directory_reader.cc " +
"src\\core\\lib\\gprpp\\windows\\env.cc " +
"src\\core\\lib\\gprpp\\windows\\stat.cc " +
"src\\core\\lib\\gprpp\\windows\\thd.cc " +
"src\\core\\lib\\gprpp\\work_serializer.cc " +
"src\\core\\lib\\iomgr\\buffer_list.cc " +
"src\\core\\lib\\iomgr\\call_combiner.cc " +
"src\\core\\lib\\iomgr\\cfstream_handle.cc " +
@ -528,11 +499,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\iomgr\\executor.cc " +
"src\\core\\lib\\iomgr\\fork_posix.cc " +
"src\\core\\lib\\iomgr\\fork_windows.cc " +
"src\\core\\lib\\iomgr\\gethostname_fallback.cc " +
"src\\core\\lib\\iomgr\\gethostname_host_name_max.cc " +
"src\\core\\lib\\iomgr\\gethostname_sysconf.cc " +
"src\\core\\lib\\iomgr\\grpc_if_nametoindex_posix.cc " +
"src\\core\\lib\\iomgr\\grpc_if_nametoindex_unsupported.cc " +
"src\\core\\lib\\iomgr\\internal_errqueue.cc " +
"src\\core\\lib\\iomgr\\iocp_windows.cc " +
"src\\core\\lib\\iomgr\\iomgr.cc " +
@ -581,7 +547,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\iomgr\\wakeup_fd_nospecial.cc " +
"src\\core\\lib\\iomgr\\wakeup_fd_pipe.cc " +
"src\\core\\lib\\iomgr\\wakeup_fd_posix.cc " +
"src\\core\\lib\\matchers\\matchers.cc " +
"src\\core\\lib\\promise\\activity.cc " +
"src\\core\\lib\\promise\\party.cc " +
"src\\core\\lib\\promise\\sleep.cc " +
@ -701,7 +666,6 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\transport\\timeout_encoding.cc " +
"src\\core\\lib\\transport\\transport.cc " +
"src\\core\\lib\\transport\\transport_op_string.cc " +
"src\\core\\lib\\uri\\uri_parser.cc " +
"src\\core\\load_balancing\\address_filtering.cc " +
"src\\core\\load_balancing\\backend_metric_parser.cc " +
"src\\core\\load_balancing\\child_policy_handler.cc " +
@ -796,7 +760,21 @@ if (PHP_GRPC != "no") {
"src\\core\\tsi\\transport_security_grpc.cc " +
"src\\core\\util\\alloc.cc " +
"src\\core\\util\\atm.cc " +
"src\\core\\util\\backoff.cc " +
"src\\core\\util\\crash.cc " +
"src\\core\\util\\dump_args.cc " +
"src\\core\\util\\event_log.cc " +
"src\\core\\util\\examine_stack.cc " +
"src\\core\\util\\fork.cc " +
"src\\core\\util\\gcp_metadata_query.cc " +
"src\\core\\util\\gethostname_fallback.cc " +
"src\\core\\util\\gethostname_host_name_max.cc " +
"src\\core\\util\\gethostname_sysconf.cc " +
"src\\core\\util\\glob.cc " +
"src\\core\\util\\gpr_time.cc " +
"src\\core\\util\\grpc_if_nametoindex_posix.cc " +
"src\\core\\util\\grpc_if_nametoindex_unsupported.cc " +
"src\\core\\util\\host_port.cc " +
"src\\core\\util\\http_client\\format_request.cc " +
"src\\core\\util\\http_client\\httpcli.cc " +
"src\\core\\util\\http_client\\httpcli_security_connector.cc " +
@ -808,24 +786,48 @@ if (PHP_GRPC != "no") {
"src\\core\\util\\json\\json_writer.cc " +
"src\\core\\util\\latent_see.cc " +
"src\\core\\util\\linux\\cpu.cc " +
"src\\core\\util\\linux\\env.cc " +
"src\\core\\util\\load_file.cc " +
"src\\core\\util\\log.cc " +
"src\\core\\util\\matchers.cc " +
"src\\core\\util\\mpscq.cc " +
"src\\core\\util\\msys\\tmpfile.cc " +
"src\\core\\util\\per_cpu.cc " +
"src\\core\\util\\posix\\cpu.cc " +
"src\\core\\util\\posix\\directory_reader.cc " +
"src\\core\\util\\posix\\env.cc " +
"src\\core\\util\\posix\\stat.cc " +
"src\\core\\util\\posix\\string.cc " +
"src\\core\\util\\posix\\sync.cc " +
"src\\core\\util\\posix\\thd.cc " +
"src\\core\\util\\posix\\time.cc " +
"src\\core\\util\\posix\\tmpfile.cc " +
"src\\core\\util\\random_early_detection.cc " +
"src\\core\\util\\ref_counted_string.cc " +
"src\\core\\util\\status_helper.cc " +
"src\\core\\util\\strerror.cc " +
"src\\core\\util\\string.cc " +
"src\\core\\util\\sync.cc " +
"src\\core\\util\\sync_abseil.cc " +
"src\\core\\util\\tchar.cc " +
"src\\core\\util\\time.cc " +
"src\\core\\util\\time_averaged_stats.cc " +
"src\\core\\util\\time_precise.cc " +
"src\\core\\util\\time_util.cc " +
"src\\core\\util\\uri.cc " +
"src\\core\\util\\uuid_v4.cc " +
"src\\core\\util\\validation_errors.cc " +
"src\\core\\util\\windows\\cpu.cc " +
"src\\core\\util\\windows\\directory_reader.cc " +
"src\\core\\util\\windows\\env.cc " +
"src\\core\\util\\windows\\stat.cc " +
"src\\core\\util\\windows\\string.cc " +
"src\\core\\util\\windows\\string_util.cc " +
"src\\core\\util\\windows\\sync.cc " +
"src\\core\\util\\windows\\thd.cc " +
"src\\core\\util\\windows\\time.cc " +
"src\\core\\util\\windows\\tmpfile.cc " +
"src\\core\\util\\work_serializer.cc " +
"src\\core\\xds\\grpc\\certificate_provider_store.cc " +
"src\\core\\xds\\grpc\\file_watcher_certificate_provider_factory.cc " +
"src\\core\\xds\\grpc\\xds_audit_logger_registry.cc " +
@ -855,10 +857,11 @@ if (PHP_GRPC != "no") {
"src\\core\\xds\\grpc\\xds_routing.cc " +
"src\\core\\xds\\grpc\\xds_server_grpc.cc " +
"src\\core\\xds\\grpc\\xds_transport_grpc.cc " +
"src\\core\\xds\\xds_client\\lrs_client.cc " +
"src\\core\\xds\\xds_client\\xds_api.cc " +
"src\\core\\xds\\xds_client\\xds_backend_metric_propagation.cc " +
"src\\core\\xds\\xds_client\\xds_bootstrap.cc " +
"src\\core\\xds\\xds_client\\xds_client.cc " +
"src\\core\\xds\\xds_client\\xds_client_stats.cc " +
"src\\php\\ext\\grpc\\byte_buffer.c " +
"src\\php\\ext\\grpc\\call.c " +
"src\\php\\ext\\grpc\\call_credentials.c " +
@ -892,9 +895,12 @@ if (PHP_GRPC != "no") {
"third_party\\abseil-cpp\\absl\\crc\\internal\\crc_non_temporal_memcpy.cc " +
"third_party\\abseil-cpp\\absl\\crc\\internal\\crc_x86_arm_combined.cc " +
"third_party\\abseil-cpp\\absl\\debugging\\internal\\address_is_readable.cc " +
"third_party\\abseil-cpp\\absl\\debugging\\internal\\decode_rust_punycode.cc " +
"third_party\\abseil-cpp\\absl\\debugging\\internal\\demangle.cc " +
"third_party\\abseil-cpp\\absl\\debugging\\internal\\demangle_rust.cc " +
"third_party\\abseil-cpp\\absl\\debugging\\internal\\elf_mem_image.cc " +
"third_party\\abseil-cpp\\absl\\debugging\\internal\\examine_stack.cc " +
"third_party\\abseil-cpp\\absl\\debugging\\internal\\utf8_for_code_point.cc " +
"third_party\\abseil-cpp\\absl\\debugging\\internal\\vdso_support.cc " +
"third_party\\abseil-cpp\\absl\\debugging\\stacktrace.cc " +
"third_party\\abseil-cpp\\absl\\debugging\\symbolize.cc " +
@ -1327,6 +1333,7 @@ if (PHP_GRPC != "no") {
"third_party\\upb\\upb\\message\\internal\\message.c " +
"third_party\\upb\\upb\\message\\map.c " +
"third_party\\upb\\upb\\message\\map_sorter.c " +
"third_party\\upb\\upb\\message\\merge.c " +
"third_party\\upb\\upb\\message\\message.c " +
"third_party\\upb\\upb\\mini_descriptor\\build_enum.c " +
"third_party\\upb\\upb\\mini_descriptor\\decode.c " +
@ -1354,6 +1361,7 @@ if (PHP_GRPC != "no") {
"third_party\\upb\\upb\\reflection\\oneof_def.c " +
"third_party\\upb\\upb\\reflection\\service_def.c " +
"third_party\\upb\\upb\\text\\encode.c " +
"third_party\\upb\\upb\\text\\internal\\encode.c " +
"third_party\\upb\\upb\\wire\\decode.c " +
"third_party\\upb\\upb\\wire\\encode.c " +
"third_party\\upb\\upb\\wire\\eps_copy_input_stream.c " +
@ -1663,6 +1671,7 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\xds\\type\\matcher");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\xds\\type\\matcher\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\xds\\type\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\filter");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\handshaker");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\handshaker\\endpoint_info");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\handshaker\\http_connect");
@ -1670,7 +1679,6 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\handshaker\\tcp_connect");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\address_utils");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\backoff");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\channel");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\compression");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\config");
@ -1683,13 +1691,8 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\event_engine\\windows");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\event_engine\\work_queue");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\experiments");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gprpp");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gprpp\\linux");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gprpp\\posix");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gprpp\\windows");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\iomgr");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\iomgr\\event_engine_shims");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\matchers");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\promise");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\resource_quota");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\security");
@ -1725,7 +1728,6 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\slice");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\surface");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\transport");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\uri");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\grpclb");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\outlier_detection");
@ -1878,6 +1880,7 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\reflection");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\reflection\\internal");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\text");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\text\\internal");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\wire");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\wire\\internal");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\utf8_range");

@ -81,3 +81,5 @@ LRS Custom Metrics Support | [A64](https://github.com/grpc/proposal/blob/master/
mTLS Credentials in xDS Bootstrap File | [A65](https://github.com/grpc/proposal/blob/master/A65-xds-mtls-creds-in-bootstrap.md) | v1.65.0 | | v1.61.0 | |
Stateful Session Affinity | [A55](https://github.com/grpc/proposal/blob/master/A55-xds-stateful-session-affinity.md), [A60](https://github.com/grpc/proposal/blob/master/A60-xds-stateful-session-affinity-weighted-clusters.md), [A75](https://github.com/grpc/proposal/blob/master/A75-xds-aggregate-cluster-behavior-fixes.md) | v1.61.0 | | | |
xDS Locality label for OpenTelemetry metrics | [A78](https://github.com/grpc/proposal/blob/master/A78-grpc-metrics-wrr-pf-xds.md) | v1.63.0 (C++) | v1.64.0 | | |
xDS Fallback | [A71](https://github.com/grpc/proposal/blob/master/A71-xds-fallback.md) | v1.67.0 | | | |
Dualstack Backend Support | [A61](https://github.com/grpc/proposal/blob/master/A61-IPv4-IPv6-dualstack-backends.md) | v1.66.1 | | | |

@ -1,24 +0,0 @@
# gRPC-core BinderTransport example apps
## Build Instruction
1. Install Android SDK and NDK. Only NDK version >= 25 is supported. We tested against SDK Platform `33` and NDK `26.2.11394342`.
2. Make sure Bazel is at least `7.0`. Use `export OVERRIDE_BAZEL_VERSION=7.3.1` to selected a supported version listed in `bazel/supported_versions.txt` if necessary.
3. Point environment variables to install locations of SDK and NDK
```
export ANDROID_HOME=$HOME/android-sdk
export ANDROID_NDK_HOME=$HOME/android-sdk/ndk/26.2.11394342
```
4. To build a fat APK that supports `x86_64`, `armv7`, and `arm64`:
```
bazel build \
--extra_toolchains=@androidndk//:all \
--android_platforms=//bazel/platforms/android:x86_64,//bazel/platforms/android:armeabi-v7a,//bazel/platforms/android:arm64-v8a \
--copt=-Wno-unknown-warning-option \
//examples/android/binder/java/io/grpc/binder/cpp/exampleserver:app \
//examples/android/binder/java/io/grpc/binder/cpp/exampleclient:app
```
5. `adb install
bazel-bin/examples/android/binder/java/io/grpc/binder/cpp/exampleclient/app.apk`
6. `adb install
bazel-bin/examples/android/binder/java/io/grpc/binder/cpp/exampleserver/app.apk`

@ -1,25 +0,0 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="io.grpc.binder.cpp.exampleclient"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="29"
android:targetSdkVersion="30" />
<queries>
<package android:name="io.grpc.binder.cpp.exampleserver" />
</queries>
<application
android:label="gRPC BinderTransport Client Cpp">
<activity
android:name=".MainActivity"
android:label="gRPC BinderTransport Client Cpp" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

@ -1,51 +0,0 @@
# Copyright 2021 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.
cc_library(
name = "jni_lib",
srcs = ["native.cc"],
linkopts = [
"-ldl",
"-llog",
"-lm",
"-Wl,--no-undefined",
],
deps = [
"//:grpc++",
"//examples/protos:helloworld_cc_grpc",
],
alwayslink = True,
)
android_library(
name = "activity",
srcs = [
"ButtonPressHandler.java",
"MainActivity.java",
],
manifest = "AndroidManifest.xml",
resource_files = glob(["res/**"]),
deps = [
":jni_lib",
"@binder_transport_android_helper//io/grpc/binder/cpp:connection_helper",
],
)
android_binary(
name = "app",
manifest = "AndroidManifest.xml",
deps = [
":activity",
],
)

@ -1,15 +0,0 @@
package io.grpc.binder.cpp.exampleclient;
import android.app.Application;
public class ButtonPressHandler {
static {
System.loadLibrary("app");
}
public native String native_entry(Application application);
public String onPressed(Application application) {
return native_entry(application);
}
}

@ -1,26 +0,0 @@
package io.grpc.binder.cpp.exampleclient;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.TextView;
/** Main class for the example app. */
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.v("Example", "hello, world");
setContentView(R.layout.activity_main);
Button clickMeButton = findViewById(R.id.clickMeButton);
TextView exampleTextView = findViewById(R.id.exampleTextView);
ButtonPressHandler h = new ButtonPressHandler();
clickMeButton.setOnClickListener(
v -> exampleTextView.setText(h.onPressed(getApplication())));
}
}

@ -1,73 +0,0 @@
// Copyright 2021 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.
#include <android/log.h>
#include <jni.h>
#include "examples/protos/helloworld.grpc.pb.h"
#include "examples/protos/helloworld.pb.h"
#include <grpcpp/create_channel_binder.h>
#include <grpcpp/security/binder_security_policy.h>
extern "C" JNIEXPORT jstring JNICALL
Java_io_grpc_binder_cpp_exampleclient_ButtonPressHandler_native_1entry(
JNIEnv* env, jobject /*this*/, jobject application) {
// Lower the gRPC logging level, here it is just for demo and debugging
// purpose.
setenv("GRPC_VERBOSITY", "INFO", true);
if (grpc::experimental::InitializeBinderChannelJavaClass(env)) {
__android_log_print(ANDROID_LOG_INFO, "DemoClient",
"InitializeBinderChannelJavaClass succeed");
} else {
__android_log_print(ANDROID_LOG_INFO, "DemoClient",
"InitializeBinderChannelJavaClass failed");
}
static bool first = true;
static std::shared_ptr<grpc::Channel> channel;
if (first) {
first = false;
JavaVM* jvm;
{
jint result = env->GetJavaVM(&jvm);
assert(result == 0);
}
grpc::ChannelArguments ch_args;
// This is not required since "grpc.io.action.BIND" is already the default.
ch_args.SetString("grpc.binder.custom_android_intent_action_name",
"grpc.io.action.BIND");
channel = grpc::experimental::CreateCustomBinderChannel(
env, application, "io.grpc.binder.cpp.exampleserver",
"io.grpc.binder.cpp.exampleserver.ExportedEndpointService",
std::make_shared<
grpc::experimental::binder::SameSignatureSecurityPolicy>(
jvm, application),
ch_args);
return env->NewStringUTF("Clicked 1 time, channel created");
} else {
auto stub = helloworld::Greeter::NewStub(channel);
grpc::ClientContext context;
helloworld::HelloRequest request;
helloworld::HelloReply response;
request.set_name("BinderTransportClient");
grpc::Status status = stub->SayHello(&context, request, &response);
if (status.ok()) {
return env->NewStringUTF(response.message().c_str());
}
return env->NewStringUTF(
std::string("Clicked more than 1 time. Status not ok " +
std::to_string(status.error_code()))
.c_str());
}
}

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="16dp"
android:orientation="vertical"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/exampleTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textSize="32dp"
android:text="@string/thinking_face"/>
<Button
android:id="@+id/clickMeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
android:text="@string/click_me_button"/>
</LinearLayout>

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="click_me_button">Run example</string>
<string name="thinking_face">🤔</string>
</resources>

@ -1,21 +0,0 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="io.grpc.binder.cpp.exampleserver"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="29"
android:targetSdkVersion="30" />
<application
android:label="gRPC BinderTransport Server Cpp">
<activity
android:name=".MainActivity"
android:label="gRPC BinderTransport Server Cpp" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="io.grpc.binder.cpp.exampleserver">
<uses-sdk android:minSdkVersion="29" android:targetSdkVersion="30"/>
<application>
<service
android:name=".ExportedEndpointService"
android:exported="true"/>
</application>
</manifest>

@ -1,61 +0,0 @@
# Copyright 2021 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.
cc_library(
name = "jni_lib",
srcs = ["native.cc"],
linkopts = [
"-ldl",
"-llog",
"-lm",
"-Wl,--no-undefined",
],
deps = [
"//:grpc++",
"//examples/protos:helloworld_cc_grpc",
],
alwayslink = True,
)
android_library(
name = "activity",
srcs = [
"ButtonPressHandler.java",
"MainActivity.java",
],
manifest = "AndroidManifest.xml",
resource_files = glob(["res/**"]),
deps = [
":endpoint",
":jni_lib",
],
)
android_library(
name = "endpoint",
srcs = ["ExportedEndpointService.java"],
exports_manifest = True,
manifest = "AndroidManifest_endpoint.xml",
deps = [
"@binder_transport_android_helper//io/grpc/binder/cpp:connection_helper",
],
)
android_binary(
name = "app",
manifest = "AndroidManifest.xml",
deps = [
":activity",
],
)

@ -1,13 +0,0 @@
package io.grpc.binder.cpp.exampleserver;
import android.app.Application;
public class ButtonPressHandler {
static {
System.loadLibrary("app");
}
public String onPressed(Application application) {
return "Server Button Pressed";
}
}

@ -1,26 +0,0 @@
package io.grpc.binder.cpp.exampleserver;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.content.Context;
import io.grpc.binder.cpp.GrpcCppServerBuilder;
/** Exposes gRPC services running in the main process */
public final class ExportedEndpointService extends Service {
static {
System.loadLibrary("app");
}
public ExportedEndpointService() {
init_grpc_server(this);
}
@Override
public IBinder onBind(Intent intent) {
// The argument should match the URI passed into grpc::ServerBuilder::AddListeningPort
return GrpcCppServerBuilder.GetEndpointBinder("binder:example.service");
}
public native void init_grpc_server(Context context);
}

@ -1,27 +0,0 @@
package io.grpc.binder.cpp.exampleserver;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.TextView;
import io.grpc.binder.cpp.exampleserver.R;
/** Main class for the example app. */
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.v("Example", "hello, world");
setContentView(R.layout.activity_main);
Button clickMeButton = findViewById(R.id.clickMeButton);
TextView exampleTextView = findViewById(R.id.exampleTextView);
ButtonPressHandler h = new ButtonPressHandler();
clickMeButton.setOnClickListener(
v -> exampleTextView.setText(h.onPressed(getApplication())));
}
}

@ -1,83 +0,0 @@
// Copyright 2021 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.
#include <android/log.h>
#include <jni.h>
#include "examples/protos/helloworld.grpc.pb.h"
#include "examples/protos/helloworld.pb.h"
#include <grpcpp/create_channel_binder.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/security/binder_credentials.h>
#include <grpcpp/security/binder_security_policy.h>
namespace {
class GreeterService : public helloworld::Greeter::Service {
public:
grpc::Status SayHello(grpc::ServerContext*,
const helloworld::HelloRequest* request,
helloworld::HelloReply* response) override {
__android_log_print(ANDROID_LOG_INFO, "DemoServer", "Line number %d",
__LINE__);
__android_log_print(ANDROID_LOG_INFO, "DemoServer", "Got hello request: %s",
request->name().c_str());
response->set_message("Hi, " + request->name());
return grpc::Status::OK;
}
};
} // namespace
extern "C" JNIEXPORT void JNICALL
Java_io_grpc_binder_cpp_exampleserver_ExportedEndpointService_init_1grpc_1server(
JNIEnv* env, jobject /*this*/, jobject context) {
// Lower the gRPC logging level, here it is just for demo and debugging
// purpose.
setenv("GRPC_VERBOSITY", "INFO", true);
__android_log_print(ANDROID_LOG_INFO, "DemoServer", "Line number %d",
__LINE__);
static std::unique_ptr<grpc::Server> server = nullptr;
if (server != nullptr) {
// Already initiated
return;
}
if (grpc::experimental::InitializeBinderChannelJavaClass(env)) {
__android_log_print(ANDROID_LOG_INFO, "DemoServer",
"InitializeBinderChannelJavaClass succeed");
} else {
__android_log_print(ANDROID_LOG_INFO, "DemoServer",
"InitializeBinderChannelJavaClass failed");
}
static GreeterService service;
grpc::ServerBuilder server_builder;
server_builder.RegisterService(&service);
JavaVM* jvm;
{
jint result = env->GetJavaVM(&jvm);
assert(result == 0);
}
server_builder.AddListeningPort(
"binder:example.service",
grpc::experimental::BinderServerCredentials(
std::make_shared<
grpc::experimental::binder::SameSignatureSecurityPolicy>(
jvm, context)));
server = server_builder.BuildAndStart();
}

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="16dp"
android:orientation="vertical"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/exampleTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textSize="32dp"
android:text="@string/thinking_face"/>
<Button
android:id="@+id/clickMeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
android:text="@string/click_me_button"/>
</LinearLayout>

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="click_me_button">Run example</string>
<string name="thinking_face">🤔</string>
</resources>

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
set(helloworld_PROTOBUF_PROTOC_EXECUTABLE "/usr/local/bin/protoc" CACHE STRING "Protoc binary on host")
set(helloworld_GRPC_CPP_PLUGIN_EXECUTABLE "/usr/local/bin/grpc_cpp_plugin" CACHE STRING "gRPC CPP plugin binary on host")

@ -17,7 +17,7 @@
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
# that automatically builds all the dependencies before building keyvaluestore.
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
project(Cancellation C CXX)

@ -16,6 +16,8 @@
*
*/
#include <grpcpp/grpcpp.h>
#include <condition_variable>
#include <iostream>
#include <memory>
@ -26,8 +28,6 @@
#include "absl/flags/parse.h"
#include "helper.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpcpp/grpcpp.h>
#include <iostream>
#include <memory>
#include <string>
@ -21,8 +23,6 @@
#include "absl/strings/str_format.h"
#include "helper.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -17,7 +17,7 @@
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
# that automatically builds all the dependencies before building keyvaluestore.
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
project(Cancellation C CXX)

@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpcpp/grpcpp.h>
#include <condition_variable>
#include <iostream>
#include <memory>
@ -23,8 +25,6 @@
#include "absl/flags/parse.h"
#include "absl/strings/str_cat.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpcpp/grpcpp.h>
#include <iostream>
#include <memory>
#include <string>
@ -21,8 +23,6 @@
#include "absl/flags/parse.h"
#include "absl/strings/str_format.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -17,7 +17,7 @@
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
# that automatically builds all the dependencies before building route_guide.
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
if(MSVC)
add_definitions(-D_WIN32_WINNT=0x600)

@ -17,7 +17,7 @@
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
# that automatically builds all the dependencies before building helloworld.
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
project(Compression C CXX)

@ -16,12 +16,12 @@
*
*/
#include <grpcpp/grpcpp.h>
#include <iostream>
#include <memory>
#include <string>
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,12 +16,12 @@
*
*/
#include <grpcpp/grpcpp.h>
#include <iostream>
#include <memory>
#include <string>
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,6 +16,9 @@
*
*/
#include <grpcpp/ext/csm_observability.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/support/string_ref.h>
#include <sys/types.h>
#include <chrono>
@ -34,10 +37,6 @@
#include "opentelemetry/exporters/prometheus/exporter_options.h"
#include "opentelemetry/sdk/metrics/meter_provider.h"
#include <grpcpp/ext/csm_observability.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/support/string_ref.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,6 +16,13 @@
*
*/
#include <grpcpp/ext/admin_services.h>
#include <grpcpp/ext/csm_observability.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <grpcpp/xds_server_builder.h>
#include <iostream>
#include <memory>
#include <string>
@ -27,15 +34,7 @@
#include "opentelemetry/exporters/prometheus/exporter_factory.h"
#include "opentelemetry/exporters/prometheus/exporter_options.h"
#include "opentelemetry/sdk/metrics/meter_provider.h"
#include <grpcpp/ext/admin_services.h>
#include <grpcpp/ext/csm_observability.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <grpcpp/xds_server_builder.h>
#include "src/core/lib/iomgr/gethostname.h"
#include "src/core/util/gethostname.h"
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"

@ -44,6 +44,8 @@ cc_binary(
"@com_google_absl//absl/flags:flag",
"@com_google_absl//absl/flags:parse",
"@com_google_absl//absl/log",
"@com_google_absl//absl/log:globals",
"@com_google_absl//absl/log:initialize",
"@io_opentelemetry_cpp//exporters/prometheus:prometheus_exporter",
"@io_opentelemetry_cpp//sdk/src/metrics",
],

@ -27,6 +27,8 @@ RUN cp -rL /workdir/bazel-bin/examples/cpp/csm/observability/csm_greeter_server
FROM python:3.9-slim-bookworm
ENV GRPC_TRACE="xds_client,xds_resolver,xds_cluster_manager_lb,cds_lb,xds_cluster_resolver_lb,priority_lb,xds_cluster_impl_lb,weighted_target_lb,xds_server_config_fetcher,ring_hash_lb,outlier_detection_lb,xds_wrr_locality_lb,xds_override_host_lb"
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get -y autoremove \

@ -16,6 +16,9 @@
*
*/
#include <grpcpp/ext/csm_observability.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/support/string_ref.h>
#include <sys/types.h>
#include <chrono>
@ -32,10 +35,6 @@
#include "opentelemetry/exporters/prometheus/exporter_options.h"
#include "opentelemetry/sdk/metrics/meter_provider.h"
#include <grpcpp/ext/csm_observability.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/support/string_ref.h>
ABSL_FLAG(std::string, target, "xds:///helloworld:50051", "Target string");
ABSL_FLAG(std::string, prometheus_endpoint, "localhost:9464",
"Prometheus exporter endpoint");

@ -16,12 +16,21 @@
*
*/
#include <grpcpp/ext/admin_services.h>
#include <grpcpp/ext/csm_observability.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <grpcpp/xds_server_builder.h>
#include <iostream>
#include <memory>
#include <string>
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#include "absl/log/globals.h"
#include "absl/log/initialize.h"
#include "absl/log/log.h"
#include "absl/strings/str_cat.h"
#include "examples/cpp/otel/util.h"
@ -29,19 +38,15 @@
#include "opentelemetry/exporters/prometheus/exporter_options.h"
#include "opentelemetry/sdk/metrics/meter_provider.h"
#include <grpcpp/ext/admin_services.h>
#include <grpcpp/ext/csm_observability.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <grpcpp/xds_server_builder.h>
ABSL_FLAG(int32_t, port, 50051, "Server port for service.");
ABSL_FLAG(std::string, prometheus_endpoint, "localhost:9464",
"Prometheus exporter endpoint");
int main(int argc, char** argv) {
absl::ParseCommandLine(argc, argv);
absl::SetStderrThreshold(absl::LogSeverityAtLeast::kInfo);
absl::SetGlobalVLogLevel(2);
absl::InitializeLog();
opentelemetry::exporter::metrics::PrometheusExporterOptions opts;
// default was "localhost:9464" which causes connection issue across GKE pods
opts.url = "0.0.0.0:9464";

@ -16,7 +16,7 @@
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
# that automatically builds all the dependencies before building this example.
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
project(Deadline C CXX)

@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpcpp/grpcpp.h>
#include <condition_variable>
#include <iostream>
#include <memory>
@ -23,8 +25,6 @@
#include "absl/flags/parse.h"
#include "absl/strings/str_cat.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpcpp/grpcpp.h>
#include <chrono>
#include <condition_variable>
#include <iostream>
@ -25,8 +27,6 @@
#include "absl/strings/match.h"
#include "absl/strings/str_format.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpcpp/grpcpp.h>
#include <iostream>
#include <memory>
#include <string>
@ -19,8 +21,6 @@
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -12,6 +12,11 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpcpp/ext/admin_services.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <iostream>
#include <memory>
#include <string>
@ -20,11 +25,6 @@
#include "absl/flags/parse.h"
#include "absl/strings/str_format.h"
#include <grpcpp/ext/admin_services.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -17,7 +17,7 @@
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
# that automatically builds all the dependencies before building helloworld.
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
project(ErrorDetails C CXX)

@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpcpp/grpcpp.h>
#include <condition_variable>
#include <iostream>
#include <memory>
@ -22,12 +24,9 @@
#include "absl/flags/parse.h"
#include "absl/strings/str_format.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#include "google/rpc/error_details.pb.h"
#include "src/proto/grpc/status/status.pb.h"
#else
#include "error_details.pb.h"

@ -12,6 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <iostream>
#include <memory>
#include <string>
@ -22,14 +26,9 @@
#include "absl/strings/str_format.h"
#include "absl/synchronization/mutex.h"
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#include "google/rpc/error_details.pb.h"
#include "src/proto/grpc/status/status.pb.h"
#else
#include "error_details.pb.h"

@ -17,7 +17,7 @@
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
# that automatically builds all the dependencies before building helloworld.
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
project(ErrorHandling C CXX)

@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpcpp/grpcpp.h>
#include <condition_variable>
#include <iostream>
#include <memory>
@ -22,8 +24,6 @@
#include "absl/flags/parse.h"
#include "absl/strings/str_format.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -12,6 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <iostream>
#include <memory>
#include <string>
@ -22,10 +26,6 @@
#include "absl/strings/str_format.h"
#include "absl/synchronization/mutex.h"
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -14,6 +14,33 @@
licenses(["notice"])
cc_binary(
name = "client_flow_control_client",
srcs = ["client_flow_control_client.cc"],
defines = ["BAZEL_BUILD"],
deps = [
"//:grpc++",
"//:grpc++_reflection",
"//examples/protos:helloworld_cc_grpc",
"@com_google_absl//absl/flags:flag",
"@com_google_absl//absl/flags:parse",
],
)
cc_binary(
name = "client_flow_control_server",
srcs = ["client_flow_control_server.cc"],
defines = ["BAZEL_BUILD"],
deps = [
"//:grpc++",
"//:grpc++_reflection",
"//examples/protos:helloworld_cc_grpc",
"@com_google_absl//absl/flags:flag",
"@com_google_absl//absl/flags:parse",
"@com_google_absl//absl/strings:str_format",
],
)
cc_binary(
name = "server_flow_control_client",
srcs = ["server_flow_control_client.cc"],

@ -17,7 +17,7 @@
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
# that automatically builds all the dependencies before building example.
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
project(HelloWorld C CXX)
@ -59,6 +59,7 @@ target_link_libraries(hw_grpc_proto
# Targets greeter_[async_](client|server)
foreach(_target
client_flow_control_client client_flow_control_server
server_flow_control_client server_flow_control_server)
add_executable(${_target} "${_target}.cc")
target_link_libraries(${_target}

@ -0,0 +1,126 @@
/*
*
* Copyright 2024 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.
*
*/
#include <grpc/grpc.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <cstddef>
#include <ostream>
#include <string>
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else
#include "helloworld.grpc.pb.h"
#endif
ABSL_FLAG(std::string, target, "localhost:50051", "Server address");
using grpc::CallbackServerContext;
using grpc::Channel;
using grpc::ClientContext;
using grpc::Server;
using grpc::ServerBuilder;
using grpc::ServerUnaryReactor;
using grpc::Status;
using helloworld::Greeter;
using helloworld::HelloReply;
using helloworld::HelloRequest;
namespace {
// Sends requests as quickly as possible and times how long it takes to perform
// the write operation.
class GreeterClientReactor final
: public grpc::ClientBidiReactor<helloworld::HelloRequest,
helloworld::HelloReply> {
public:
explicit GreeterClientReactor(int reqs, size_t req_size) : reqs_(reqs) {
req_.set_name(std::string(req_size, '*'));
}
void Start() {
absl::MutexLock lock(&mu_);
StartCall();
Write();
}
~GreeterClientReactor() override {
absl::MutexLock lock(&mu_);
mu_.Await(absl::Condition(+[](bool* done) { return *done; }, &done_));
}
void OnWriteDone(bool ok) override {
absl::MutexLock lock(&mu_);
std::cout << "Writing took " << absl::Now() - *time_ << std::endl;
time_ = absl::nullopt;
if (ok) {
Write();
}
}
void OnDone(const grpc::Status& status) override {
if (status.ok()) {
std::cout << "Done\n";
} else {
std::cout << "Done with error: [" << status.error_code() << "] "
<< status.error_message() << "\n";
}
absl::MutexLock lock(&mu_);
done_ = true;
}
private:
void Write() ABSL_EXCLUSIVE_LOCKS_REQUIRED(&mu_) {
if (reqs_ == 0) {
StartWritesDone();
return;
}
--reqs_;
StartWrite(&req_);
time_ = absl::Now();
}
absl::Mutex mu_;
bool done_ ABSL_GUARDED_BY(&mu_) = false;
HelloRequest req_;
size_t reqs_;
absl::optional<absl::Time> time_ ABSL_GUARDED_BY(mu_);
};
} // namespace
int main(int argc, char** argv) {
absl::ParseCommandLine(argc, argv);
grpc::ChannelArguments channel_arguments;
auto channel = grpc::CreateCustomChannel(absl::GetFlag(FLAGS_target),
grpc::InsecureChannelCredentials(),
channel_arguments);
auto stub = Greeter::NewStub(channel);
// Send 10 requests with 3Mb payload. This will eventually fill the buffer
// and make
GreeterClientReactor reactor(10, 3 * 1024 * 1024);
grpc::ClientContext context;
stub->async()->SayHelloBidiStream(&context, &reactor);
reactor.Start();
return 0;
}

@ -0,0 +1,111 @@
/*
*
* Copyright 2021 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.
*
*/
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <cstddef>
#include <cstdint>
#include <iostream>
#include <string>
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#include "absl/strings/str_format.h"
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else
#include "helloworld.grpc.pb.h"
#endif
ABSL_FLAG(uint16_t, port, 50051, "Server port for the service");
ABSL_FLAG(size_t, quota, 20, "Resource quota, in megabytes");
namespace {
//
// Server reactor that is slow to read incoming messages, causing the buffers
// to fill.
//
class SlowReadingBidiReactor final
: public grpc::ServerBidiReactor<helloworld::HelloRequest,
helloworld::HelloReply> {
public:
SlowReadingBidiReactor() { StartRead(&req_); }
void OnReadDone(bool ok) override {
std::cout << "Recieved request with " << req_.name().length()
<< " bytes name\n";
if (!ok) {
Finish(grpc::Status::OK);
return;
}
sleep(1);
StartRead(&req_);
}
void OnDone() override {
std::cout << "Done\n";
delete this;
}
private:
absl::Mutex mu_;
helloworld::HelloRequest req_;
};
// Logic and data behind the server's behavior.
class GreeterServiceImpl final : public helloworld::Greeter::CallbackService {
grpc::ServerBidiReactor<helloworld::HelloRequest, helloworld::HelloReply>*
SayHelloBidiStream(grpc::CallbackServerContext* /* context */) override {
return new SlowReadingBidiReactor();
}
};
} // namespace
void RunServer(uint16_t port) {
std::string server_address = absl::StrFormat("0.0.0.0:%d", port);
GreeterServiceImpl service;
grpc::EnableDefaultHealthCheckService(true);
grpc::reflection::InitProtoReflectionServerBuilderPlugin();
grpc::ServerBuilder builder;
// Listen on the given address without any authentication mechanism.
builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
// Register "service" as the instance through which we'll communicate with
// clients. In this case it corresponds to an *synchronous* service.
builder.RegisterService(&service);
grpc::ResourceQuota quota;
quota.Resize(absl::GetFlag(FLAGS_quota) * 1024 * 1024);
// Finally assemble the server.
auto server = builder.BuildAndStart();
std::cout << "Server listening on " << server_address << std::endl;
// Wait for the server to shutdown. Note that some other thread must be
// responsible for shutting down the server for this call to ever return.
server->Wait();
}
int main(int argc, char** argv) {
absl::ParseCommandLine(argc, argv);
RunServer(absl::GetFlag(FLAGS_port));
return 0;
}

@ -16,16 +16,16 @@
*
*/
#include <grpc/grpc.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <iostream>
#include <string>
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#include <grpc/grpc.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -15,6 +15,11 @@
* limitations under the License.
*
*/
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <grpcpp/support/status.h>
#include <cstddef>
#include <iostream>
#include <memory>
@ -24,11 +29,6 @@
#include "absl/flags/parse.h"
#include "absl/strings/str_cat.h"
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <grpcpp/support/status.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,6 +16,9 @@
//
//
#include <grpcpp/ext/gcp_observability.h>
#include <grpcpp/grpcpp.h>
#include <chrono>
#include <iostream>
#include <memory>
@ -25,9 +28,6 @@
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#include <grpcpp/ext/gcp_observability.h>
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,6 +16,11 @@
//
//
#include <grpcpp/ext/gcp_observability.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <chrono>
#include <csignal>
#include <iostream>
@ -27,11 +32,6 @@
#include "absl/flags/parse.h"
#include "absl/strings/str_format.h"
#include <grpcpp/ext/gcp_observability.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -17,7 +17,7 @@
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
# that automatically builds all the dependencies before building helloworld.
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
project(GenericAPI C CXX)

@ -12,6 +12,9 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpcpp/generic/generic_stub.h>
#include <grpcpp/grpcpp.h>
#include <condition_variable>
#include <iostream>
#include <memory>
@ -22,9 +25,6 @@
#include "absl/flags/parse.h"
#include "absl/strings/str_format.h"
#include <grpcpp/generic/generic_stub.h>
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -12,6 +12,9 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <iostream>
#include <memory>
#include <string>
@ -22,9 +25,6 @@
#include "absl/strings/str_format.h"
#include "absl/synchronization/mutex.h"
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -17,7 +17,7 @@
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
# that automatically builds all the dependencies before building helloworld.
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
project(HelloWorld C CXX)

@ -16,6 +16,8 @@
*
*/
#include <grpcpp/grpcpp.h>
#include <condition_variable>
#include <iostream>
#include <memory>
@ -25,11 +27,8 @@
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#include "src/proto/grpc/health/v1/health.grpc.pb.h"
#else
#include "health.grpc.pb.h"

@ -16,6 +16,10 @@
*
*/
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <iostream>
#include <memory>
#include <string>
@ -24,10 +28,6 @@
#include "absl/flags/parse.h"
#include "absl/strings/str_format.h"
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -17,7 +17,7 @@
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
# that automatically builds all the dependencies before building helloworld.
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
project(HelloWorld C CXX)

@ -20,7 +20,7 @@
# including the "helloworld" project itself.
# See https://blog.kitware.com/cmake-superbuilds-git-submodules/
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
# Project
project(HelloWorld-SuperBuild C CXX)
@ -40,7 +40,7 @@ ExternalProject_Add(absl
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_BINARY_DIR}/absl
)
# Builds absl project from the git submodule.
# Builds utf8_range project from the git submodule.
ExternalProject_Add(utf8_range
PREFIX utf8_range
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../../third_party/utf8_range"
@ -95,13 +95,6 @@ ExternalProject_Add(zlib
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_BINARY_DIR}/zlib
)
# the location where protobuf-config.cmake will be installed varies by platform
if (WIN32)
set(_FINDPACKAGE_PROTOBUF_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}/protobuf/cmake")
else()
set(_FINDPACKAGE_PROTOBUF_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}/protobuf/lib/cmake/protobuf")
endif()
# if OPENSSL_ROOT_DIR is set, propagate that hint path to the external projects with OpenSSL dependency.
set(_CMAKE_ARGS_OPENSSL_ROOT_DIR "")
if (OPENSSL_ROOT_DIR)
@ -119,7 +112,7 @@ ExternalProject_Add(grpc
-DgRPC_BUILD_MSVC_MP_COUNT:STRING=-1
-Dutf8_range_DIR:STRING=${CMAKE_CURRENT_BINARY_DIR}/utf8_range/lib/cmake/utf8_range
-DgRPC_PROTOBUF_PROVIDER:STRING=package
-DProtobuf_DIR:PATH=${_FINDPACKAGE_PROTOBUF_CONFIG_DIR}
-DProtobuf_DIR:PATH=${CMAKE_CURRENT_BINARY_DIR}/protobuf/lib/cmake/protobuf
-DgRPC_RE2_PROVIDER:STRING=package
-Dre2_DIR:STRING=${CMAKE_CURRENT_BINARY_DIR}/re2/lib/cmake/re2
-DgRPC_ZLIB_PROVIDER:STRING=package
@ -147,7 +140,7 @@ ExternalProject_Add(helloworld
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/helloworld"
INSTALL_COMMAND ""
CMAKE_CACHE_ARGS
-DProtobuf_DIR:PATH=${_FINDPACKAGE_PROTOBUF_CONFIG_DIR}
-DProtobuf_DIR:PATH=${CMAKE_CURRENT_BINARY_DIR}/protobuf/lib/cmake/protobuf
-Dc-ares_DIR:PATH=${CMAKE_CURRENT_BINARY_DIR}/c-ares/lib/cmake/c-ares
-Dre2_DIR:STRING=${CMAKE_CURRENT_BINARY_DIR}/re2/lib/cmake/re2
-Dutf8_range_DIR:STRING=${CMAKE_CURRENT_BINARY_DIR}/utf8_range/lib/cmake/utf8_range

@ -16,6 +16,8 @@
*
*/
#include <grpcpp/grpcpp.h>
#include <iostream>
#include <memory>
#include <string>
@ -24,8 +26,6 @@
#include "absl/flags/parse.h"
#include "absl/log/check.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,6 +16,8 @@
*
*/
#include <grpcpp/grpcpp.h>
#include <iostream>
#include <memory>
#include <string>
@ -25,8 +27,6 @@
#include "absl/flags/parse.h"
#include "absl/log/check.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,6 +16,8 @@
*
*/
#include <grpcpp/grpcpp.h>
#include <iostream>
#include <memory>
#include <string>
@ -26,8 +28,6 @@
#include "absl/log/check.h"
#include "absl/strings/str_format.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,6 +16,8 @@
*
*/
#include <grpcpp/grpcpp.h>
#include <condition_variable>
#include <iostream>
#include <memory>
@ -25,8 +27,6 @@
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,6 +16,10 @@
*
*/
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <iostream>
#include <memory>
#include <string>
@ -24,10 +28,6 @@
#include "absl/flags/parse.h"
#include "absl/strings/str_format.h"
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,6 +16,8 @@
*
*/
#include <grpcpp/grpcpp.h>
#include <iostream>
#include <memory>
#include <string>
@ -23,8 +25,6 @@
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,6 +16,10 @@
*
*/
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <iostream>
#include <memory>
#include <string>
@ -24,10 +28,6 @@
#include "absl/flags/parse.h"
#include "absl/strings/str_format.h"
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,6 +16,8 @@
*
*/
#include <grpcpp/grpcpp.h>
#include <iostream>
#include <memory>
#include <string>
@ -23,8 +25,6 @@
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,6 +16,12 @@
*
*/
#include <grpcpp/ext/admin_services.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <grpcpp/xds_server_builder.h>
#include <iostream>
#include <memory>
#include <string>
@ -25,12 +31,6 @@
#include "absl/log/log.h"
#include "absl/strings/str_cat.h"
#include <grpcpp/ext/admin_services.h>
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <grpcpp/xds_server_builder.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -17,7 +17,7 @@
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
# that automatically builds all the dependencies before building keyvaluestore.
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
project(KeyValueStore C CXX)

@ -16,12 +16,12 @@
*
*/
#include <grpcpp/support/client_interceptor.h>
#include <map>
#include "absl/log/check.h"
#include <grpcpp/support/client_interceptor.h>
#ifdef BAZEL_BUILD
#include "examples/protos/keyvaluestore.grpc.pb.h"
#else

@ -16,6 +16,8 @@
*
*/
#include <grpcpp/grpcpp.h>
#include <condition_variable>
#include <iostream>
#include <memory>
@ -25,8 +27,6 @@
#include "caching_interceptor.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/keyvaluestore.grpc.pb.h"
#else

@ -16,14 +16,14 @@
*
*/
#include <grpcpp/grpcpp.h>
#include <grpcpp/support/server_interceptor.h>
#include <iostream>
#include <memory>
#include <string>
#include <vector>
#include <grpcpp/grpcpp.h>
#include <grpcpp/support/server_interceptor.h>
#ifdef BAZEL_BUILD
#include "examples/protos/keyvaluestore.grpc.pb.h"
#else

@ -17,7 +17,7 @@
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
# that automatically builds all the dependencies before building helloworld.
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.16)
project(HelloWorld C CXX)

@ -16,6 +16,8 @@
*
*/
#include <grpcpp/grpcpp.h>
#include <condition_variable>
#include <iostream>
#include <memory>
@ -26,8 +28,6 @@
#include "absl/flags/flag.h"
#include "absl/flags/parse.h"
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

@ -16,6 +16,10 @@
*
*/
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#include <iostream>
#include <memory>
#include <string>
@ -24,10 +28,6 @@
#include "absl/flags/parse.h"
#include "absl/strings/str_format.h"
#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>
#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save