diff --git a/BUILD b/BUILD
index 7650d9b14e9..44e2bc04771 100644
--- a/BUILD
+++ b/BUILD
@@ -373,10 +373,29 @@ grpc_cc_library(
],
)
+grpc_cc_library(
+ name = "channel_fwd",
+ hdrs = [
+ "src/core/lib/channel/channel_fwd.h",
+ ],
+ language = "c++",
+ tags = ["grpc-autodeps"],
+)
+
+grpc_cc_library(
+ name = "transport_fwd",
+ hdrs = [
+ "src/core/lib/transport/transport_fwd.h",
+ ],
+ language = "c++",
+ tags = ["grpc-autodeps"],
+)
+
grpc_cc_library(
name = "atomic_utils",
language = "c++",
public_hdrs = ["src/core/lib/gprpp/atomic_utils.h"],
+ tags = ["grpc-autodeps"],
deps = ["gpr_platform"],
)
@@ -450,6 +469,7 @@ grpc_cc_library(
},
],
standalone = True,
+ tags = ["grpc_avoid_dep"],
visibility = [
"@grpc:public",
],
@@ -634,7 +654,9 @@ grpc_cc_library(
external_deps = [
"absl/base:core_headers",
"absl/container:flat_hash_map",
+ "absl/hash",
"absl/memory",
+ "absl/meta:type_traits",
"absl/status",
"absl/strings",
"absl/synchronization",
@@ -648,7 +670,11 @@ grpc_cc_library(
"include/grpcpp/security/binder_credentials.h",
],
deps = [
+ "arena",
+ "channel_args_preconditioning",
+ "channel_stack_type",
"config",
+ "debug_location",
"gpr",
"gpr_base",
"gpr_platform",
@@ -657,9 +683,13 @@ grpc_cc_library(
"grpc_base",
"grpc_client_channel",
"grpc_codegen",
+ "iomgr_fwd",
"iomgr_port",
"orphanable",
+ "ref_counted_ptr",
+ "slice",
"slice_refcount",
+ "transport_fwd",
],
)
@@ -782,6 +812,7 @@ grpc_cc_library(
deps = [
"gpr_base",
"grpc_base",
+ "grpc_codegen",
"grpc_trace",
],
)
@@ -1012,6 +1043,7 @@ grpc_cc_library(
"gpr_codegen",
"gpr_platform",
"grpc_codegen",
+ "grpc_public_hdrs",
],
)
@@ -2587,6 +2619,7 @@ grpc_cc_library(
"bitset",
"channel_args",
"channel_args_preconditioning",
+ "channel_fwd",
"channel_init",
"channel_stack_builder",
"channel_stack_type",
@@ -2628,6 +2661,7 @@ grpc_cc_library(
"table",
"thread_quota",
"time",
+ "transport_fwd",
"uri_parser",
"useful",
],
@@ -2693,10 +2727,12 @@ grpc_cc_library(
visibility = ["@grpc:alt_grpc_base_legacy"],
deps = [
"channel_args",
+ "channel_fwd",
"channel_stack_type",
"gpr_base",
"gpr_platform",
"ref_counted_ptr",
+ "transport_fwd",
],
)
@@ -2987,6 +3023,7 @@ grpc_cc_library(
visibility = ["@grpc:client_channel"],
deps = [
"arena",
+ "channel_fwd",
"channel_init",
"channel_stack_type",
"chunked_vector",
@@ -3041,15 +3078,24 @@ grpc_cc_library(
hdrs = [
"src/core/ext/filters/server_config_selector/server_config_selector.h",
],
- external_deps = ["absl/status:statusor"],
+ external_deps = [
+ "absl/status:statusor",
+ "absl/strings",
+ ],
language = "c++",
tags = ["grpc-autodeps"],
deps = [
"channel_args",
"dual_ref_counted",
+ "error",
"gpr_platform",
"grpc_base",
+ "grpc_codegen",
"grpc_service_config",
+ "ref_counted",
+ "ref_counted_ptr",
+ "service_config_parser",
+ "useful",
],
)
@@ -3061,16 +3107,30 @@ grpc_cc_library(
hdrs = [
"src/core/ext/filters/server_config_selector/server_config_selector_filter.h",
],
+ external_deps = [
+ "absl/base:core_headers",
+ "absl/memory",
+ "absl/status",
+ "absl/status:statusor",
+ "absl/types:optional",
+ ],
language = "c++",
tags = ["grpc-autodeps"],
deps = [
"arena",
+ "arena_promise",
+ "channel_args",
+ "channel_fwd",
+ "context",
"error",
+ "gpr_base",
"gpr_platform",
"grpc_base",
"grpc_server_config_selector",
"grpc_service_config",
+ "poll",
"promise",
+ "ref_counted_ptr",
],
)
@@ -3095,20 +3155,40 @@ grpc_cc_library(
hdrs = [
"src/core/ext/filters/channel_idle/channel_idle_filter.h",
],
+ external_deps = [
+ "absl/status",
+ "absl/status:statusor",
+ "absl/types:optional",
+ ],
tags = ["grpc-autodeps"],
deps = [
+ "activity",
+ "arena_promise",
"channel_args",
+ "channel_fwd",
+ "channel_init",
"channel_stack_builder",
+ "channel_stack_type",
+ "closure",
"config",
+ "debug_location",
+ "error",
+ "exec_ctx",
"exec_ctx_wakeup_scheduler",
+ "gpr_base",
"gpr_platform",
"grpc_base",
+ "grpc_codegen",
+ "grpc_trace",
"idle_filter_state",
- "iomgr_timer",
"loop",
+ "orphanable",
+ "poll",
"promise",
+ "ref_counted_ptr",
"single_set_ptr",
"sleep",
+ "time",
"try_seq",
],
)
@@ -3121,16 +3201,28 @@ grpc_cc_library(
hdrs = [
"src/core/ext/filters/deadline/deadline_filter.h",
],
+ external_deps = ["absl/types:optional"],
language = "c++",
tags = ["grpc-autodeps"],
deps = [
+ "arena",
+ "channel_args",
+ "channel_fwd",
+ "channel_init",
"channel_stack_builder",
+ "channel_stack_type",
+ "closure",
"config",
+ "debug_location",
+ "error",
+ "exec_ctx",
"gpr_base",
"gpr_platform",
"grpc_base",
+ "grpc_codegen",
+ "grpc_public_hdrs",
"iomgr_timer",
- "slice",
+ "time",
],
)
@@ -3142,18 +3234,26 @@ grpc_cc_library(
hdrs = [
"src/core/ext/filters/http/client_authority_filter.h",
],
- external_deps = ["absl/status:statusor"],
+ external_deps = [
+ "absl/status",
+ "absl/status:statusor",
+ "absl/strings",
+ "absl/types:optional",
+ ],
language = "c++",
tags = ["grpc-autodeps"],
deps = [
+ "arena_promise",
"channel_args",
+ "channel_fwd",
+ "channel_init",
"channel_stack_builder",
"channel_stack_type",
"config",
- "gpr_base",
"gpr_platform",
"grpc_base",
"grpc_codegen",
+ "poll",
"slice",
],
)
@@ -3166,20 +3266,32 @@ grpc_cc_library(
hdrs = [
"src/core/ext/filters/message_size/message_size_filter.h",
],
- external_deps = ["absl/strings:str_format"],
+ external_deps = [
+ "absl/memory",
+ "absl/strings",
+ "absl/strings:str_format",
+ "absl/types:optional",
+ ],
language = "c++",
tags = ["grpc-autodeps"],
deps = [
"channel_args",
+ "channel_fwd",
+ "channel_init",
"channel_stack_builder",
+ "channel_stack_type",
+ "closure",
"config",
+ "debug_location",
+ "error",
"gpr_base",
"gpr_platform",
"grpc_base",
"grpc_codegen",
+ "grpc_public_hdrs",
"grpc_service_config",
- "ref_counted",
- "ref_counted_ptr",
+ "json",
+ "orphanable",
"service_config_parser",
],
)
@@ -3194,14 +3306,25 @@ grpc_cc_library(
"src/core/ext/filters/fault_injection/fault_injection_filter.h",
"src/core/ext/filters/fault_injection/service_config_parser.h",
],
- external_deps = ["absl/strings"],
+ external_deps = [
+ "absl/memory",
+ "absl/status",
+ "absl/strings",
+ "absl/types:optional",
+ "absl/utility",
+ ],
language = "c++",
deps = [
+ "config",
+ "context",
"gpr_base",
"grpc_base",
"grpc_service_config",
+ "grpc_trace",
"json_util",
+ "poll",
"sleep",
+ "time",
"try_seq",
],
)
@@ -3216,19 +3339,36 @@ grpc_cc_library(
"src/core/ext/filters/rbac/rbac_filter.h",
"src/core/ext/filters/rbac/rbac_service_config_parser.h",
],
- external_deps = ["absl/strings:str_format"],
+ external_deps = [
+ "absl/memory",
+ "absl/status",
+ "absl/status:statusor",
+ "absl/strings",
+ "absl/strings:str_format",
+ ],
language = "c++",
tags = ["grpc-autodeps"],
deps = [
"channel_args",
+ "channel_fwd",
+ "closure",
"config",
+ "debug_location",
+ "error",
+ "gpr_base",
"gpr_platform",
"grpc_authorization_base",
"grpc_base",
+ "grpc_codegen",
+ "grpc_matchers",
+ "grpc_public_hdrs",
"grpc_rbac_engine",
+ "grpc_security_base",
"grpc_service_config",
+ "json",
"json_util",
"service_config_parser",
+ "transport_fwd",
],
)
@@ -3248,21 +3388,38 @@ grpc_cc_library(
"src/core/ext/filters/http/server/http_server_filter.h",
],
external_deps = [
+ "absl/base:core_headers",
+ "absl/meta:type_traits",
+ "absl/status",
"absl/strings:str_format",
"absl/strings",
"absl/types:optional",
+ "absl/utility",
],
language = "c++",
visibility = ["@grpc:http"],
deps = [
+ "arena",
+ "basic_seq",
"call_push_pull",
+ "channel_fwd",
+ "channel_init",
+ "channel_stack_type",
"config",
+ "context",
+ "debug_location",
"gpr_base",
"grpc_base",
+ "grpc_codegen",
"grpc_message_size_filter",
+ "grpc_trace",
+ "latch",
+ "orphanable",
+ "poll",
"promise",
"seq",
"slice",
+ "transport_fwd",
],
)
@@ -3479,12 +3636,15 @@ grpc_cc_library(
"src/core/lib/security/credentials/xds/xds_credentials.h",
],
external_deps = [
+ "absl/container:inlined_vector",
"absl/functional:bind_front",
"absl/memory",
+ "absl/status",
"absl/status:statusor",
"absl/strings",
"absl/strings:str_format",
- "absl/container:inlined_vector",
+ "absl/types:optional",
+ "absl/types:variant",
"upb_lib",
"upb_textformat_lib",
"upb_json_lib",
@@ -3494,7 +3654,9 @@ grpc_cc_library(
language = "c++",
deps = [
"channel_creds_registry",
+ "channel_fwd",
"config",
+ "debug_location",
"envoy_admin_upb",
"envoy_config_cluster_upb",
"envoy_config_cluster_upbdefs",
@@ -3545,6 +3707,7 @@ grpc_cc_library(
"grpc_security_base",
"grpc_sockaddr",
"grpc_tls_credentials",
+ "grpc_trace",
"grpc_transport_chttp2_client_connector",
"iomgr_timer",
"json",
@@ -3556,12 +3719,16 @@ grpc_cc_library(
"protobuf_timestamp_upb",
"protobuf_wrappers_upb",
"ref_counted_ptr",
+ "resolved_address",
"rls_config_upb",
"rls_config_upbdefs",
"slice",
"slice_refcount",
"sockaddr_utils",
+ "time",
+ "tsi_ssl_credentials",
"uri_parser",
+ "useful",
"xds_type_upb",
"xds_type_upbdefs",
],
@@ -3578,12 +3745,18 @@ grpc_cc_library(
language = "c++",
tags = ["grpc-autodeps"],
deps = [
+ "channel_args",
+ "channel_fwd",
"channel_init",
"channel_stack_builder",
+ "channel_stack_type",
"config",
"gpr_platform",
"grpc_base",
+ "grpc_codegen",
"ref_counted",
+ "ref_counted_ptr",
+ "useful",
],
)
@@ -3592,23 +3765,46 @@ grpc_cc_library(
srcs = [
"src/core/ext/xds/xds_server_config_fetcher.cc",
],
- external_deps = ["absl/strings"],
+ external_deps = [
+ "absl/base:core_headers",
+ "absl/container:inlined_vector",
+ "absl/status",
+ "absl/status:statusor",
+ "absl/strings",
+ "absl/types:optional",
+ "absl/types:variant",
+ ],
language = "c++",
tags = ["grpc-autodeps"],
deps = [
"channel_args",
+ "channel_args_preconditioning",
+ "channel_fwd",
"config",
+ "error",
+ "exec_ctx",
"gpr_base",
"gpr_platform",
"grpc_base",
+ "grpc_codegen",
+ "grpc_public_hdrs",
+ "grpc_secure",
+ "grpc_security_base",
"grpc_server_config_selector",
"grpc_server_config_selector_filter",
+ "grpc_service_config",
"grpc_service_config_impl",
"grpc_sockaddr",
+ "grpc_tls_credentials",
+ "grpc_trace",
"grpc_xds_channel_stack_modifier",
"grpc_xds_client",
- "slice",
+ "iomgr_fwd",
+ "ref_counted_ptr",
+ "resolved_address",
+ "slice_refcount",
"sockaddr_utils",
+ "unique_type_name",
"uri_parser",
],
)
@@ -3637,17 +3833,18 @@ grpc_cc_library(
hdrs = [
"src/core/ext/xds/google_mesh_ca_certificate_provider_factory.h",
],
- external_deps = ["absl/strings"],
language = "c++",
tags = ["grpc-autodeps"],
deps = [
"error",
- "gpr_base",
"gpr_platform",
- "grpc_base",
+ "grpc_secure",
+ "grpc_tls_credentials",
"grpc_xds_client",
+ "json",
"json_util",
- "ref_counted",
+ "ref_counted_ptr",
+ "time",
],
)
@@ -4111,21 +4308,33 @@ grpc_cc_library(
"src/cpp/server/load_reporter/constants.h",
],
external_deps = [
+ "absl/container:inlined_vector",
+ "absl/meta:type_traits",
+ "absl/status",
"absl/strings",
"absl/strings:str_format",
+ "absl/types:optional",
"opencensus-stats",
+ "opencensus-tags",
],
language = "c++",
deps = [
+ "channel_fwd",
+ "channel_init",
+ "channel_stack_type",
"config",
+ "context",
"error",
"gpr",
"grpc++_base",
"grpc_base",
+ "grpc_codegen",
"grpc_lb_policy_grpclb",
"grpc_security_base",
"grpc_sockaddr",
+ "poll",
"promise",
+ "resolved_address",
"seq",
"slice",
"uri_parser",
@@ -4503,6 +4712,7 @@ grpc_cc_library(
language = "c++",
deps = [
"arena",
+ "channel_fwd",
"config",
"debug_location",
"dual_ref_counted",
@@ -5577,6 +5787,7 @@ grpc_cc_library(
"slice",
"sockaddr_utils",
"tcp_connect_handshaker",
+ "transport_fwd",
"unique_type_name",
"uri_parser",
],
@@ -5624,6 +5835,7 @@ grpc_cc_library(
"slice",
"sockaddr_utils",
"time",
+ "transport_fwd",
"unique_type_name",
"uri_parser",
"useful",
@@ -5639,12 +5851,30 @@ grpc_cc_library(
hdrs = [
"src/core/ext/transport/inproc/inproc_transport.h",
],
+ external_deps = [
+ "absl/status",
+ "absl/status:statusor",
+ "absl/strings",
+ "absl/types:optional",
+ ],
language = "c++",
deps = [
+ "arena",
+ "channel_args_preconditioning",
+ "channel_stack_type",
+ "config",
+ "debug_location",
"gpr_base",
"grpc_base",
+ "grpc_codegen",
"grpc_trace",
+ "iomgr_fwd",
+ "orphanable",
+ "ref_counted_ptr",
"slice",
+ "time",
+ "transport_fwd",
+ "useful",
],
)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 80d74f95d05..e7aa97e9fcf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2352,6 +2352,24 @@ foreach(_hdr
include/grpc/slice.h
include/grpc/slice_buffer.h
include/grpc/status.h
+ include/grpc/support/alloc.h
+ include/grpc/support/atm.h
+ include/grpc/support/atm_gcc_atomic.h
+ include/grpc/support/atm_gcc_sync.h
+ include/grpc/support/atm_windows.h
+ include/grpc/support/cpu.h
+ include/grpc/support/log.h
+ include/grpc/support/log_windows.h
+ include/grpc/support/port_platform.h
+ include/grpc/support/string_util.h
+ include/grpc/support/sync.h
+ include/grpc/support/sync_abseil.h
+ include/grpc/support/sync_custom.h
+ include/grpc/support/sync_generic.h
+ include/grpc/support/sync_posix.h
+ include/grpc/support/sync_windows.h
+ include/grpc/support/thd_id.h
+ include/grpc/support/time.h
include/grpc/support/workaround_list.h
)
string(REPLACE "include/" "" _path ${_hdr})
@@ -2895,6 +2913,24 @@ foreach(_hdr
include/grpc/slice.h
include/grpc/slice_buffer.h
include/grpc/status.h
+ include/grpc/support/alloc.h
+ include/grpc/support/atm.h
+ include/grpc/support/atm_gcc_atomic.h
+ include/grpc/support/atm_gcc_sync.h
+ include/grpc/support/atm_windows.h
+ include/grpc/support/cpu.h
+ include/grpc/support/log.h
+ include/grpc/support/log_windows.h
+ include/grpc/support/port_platform.h
+ include/grpc/support/string_util.h
+ include/grpc/support/sync.h
+ include/grpc/support/sync_abseil.h
+ include/grpc/support/sync_custom.h
+ include/grpc/support/sync_generic.h
+ include/grpc/support/sync_posix.h
+ include/grpc/support/sync_windows.h
+ include/grpc/support/thd_id.h
+ include/grpc/support/time.h
include/grpc/support/workaround_list.h
)
string(REPLACE "include/" "" _path ${_hdr})
@@ -3172,37 +3208,6 @@ foreach(_hdr
include/grpc++/support/stub_options.h
include/grpc++/support/sync_stream.h
include/grpc++/support/time.h
- include/grpc/byte_buffer.h
- include/grpc/byte_buffer_reader.h
- include/grpc/compression.h
- include/grpc/fork.h
- include/grpc/grpc.h
- include/grpc/grpc_posix.h
- include/grpc/grpc_security.h
- include/grpc/grpc_security_constants.h
- include/grpc/load_reporting.h
- include/grpc/slice.h
- include/grpc/slice_buffer.h
- include/grpc/status.h
- include/grpc/support/alloc.h
- include/grpc/support/atm.h
- include/grpc/support/atm_gcc_atomic.h
- include/grpc/support/atm_gcc_sync.h
- include/grpc/support/atm_windows.h
- include/grpc/support/cpu.h
- include/grpc/support/log.h
- include/grpc/support/log_windows.h
- include/grpc/support/port_platform.h
- include/grpc/support/string_util.h
- include/grpc/support/sync.h
- include/grpc/support/sync_abseil.h
- include/grpc/support/sync_custom.h
- include/grpc/support/sync_generic.h
- include/grpc/support/sync_posix.h
- include/grpc/support/sync_windows.h
- include/grpc/support/thd_id.h
- include/grpc/support/time.h
- include/grpc/support/workaround_list.h
include/grpcpp/alarm.h
include/grpcpp/channel.h
include/grpcpp/client_context.h
@@ -3862,37 +3867,6 @@ foreach(_hdr
include/grpc++/support/stub_options.h
include/grpc++/support/sync_stream.h
include/grpc++/support/time.h
- include/grpc/byte_buffer.h
- include/grpc/byte_buffer_reader.h
- include/grpc/compression.h
- include/grpc/fork.h
- include/grpc/grpc.h
- include/grpc/grpc_posix.h
- include/grpc/grpc_security.h
- include/grpc/grpc_security_constants.h
- include/grpc/load_reporting.h
- include/grpc/slice.h
- include/grpc/slice_buffer.h
- include/grpc/status.h
- include/grpc/support/alloc.h
- include/grpc/support/atm.h
- include/grpc/support/atm_gcc_atomic.h
- include/grpc/support/atm_gcc_sync.h
- include/grpc/support/atm_windows.h
- include/grpc/support/cpu.h
- include/grpc/support/log.h
- include/grpc/support/log_windows.h
- include/grpc/support/port_platform.h
- include/grpc/support/string_util.h
- include/grpc/support/sync.h
- include/grpc/support/sync_abseil.h
- include/grpc/support/sync_custom.h
- include/grpc/support/sync_generic.h
- include/grpc/support/sync_posix.h
- include/grpc/support/sync_windows.h
- include/grpc/support/thd_id.h
- include/grpc/support/time.h
- include/grpc/support/workaround_list.h
include/grpcpp/alarm.h
include/grpcpp/channel.h
include/grpcpp/client_context.h
diff --git a/Makefile b/Makefile
index dd1a6ac63a9..bb9b3eb6d10 100644
--- a/Makefile
+++ b/Makefile
@@ -1702,6 +1702,24 @@ PUBLIC_HEADERS_C += \
include/grpc/slice.h \
include/grpc/slice_buffer.h \
include/grpc/status.h \
+ include/grpc/support/alloc.h \
+ include/grpc/support/atm.h \
+ include/grpc/support/atm_gcc_atomic.h \
+ include/grpc/support/atm_gcc_sync.h \
+ include/grpc/support/atm_windows.h \
+ include/grpc/support/cpu.h \
+ include/grpc/support/log.h \
+ include/grpc/support/log_windows.h \
+ include/grpc/support/port_platform.h \
+ include/grpc/support/string_util.h \
+ include/grpc/support/sync.h \
+ include/grpc/support/sync_abseil.h \
+ include/grpc/support/sync_custom.h \
+ include/grpc/support/sync_generic.h \
+ include/grpc/support/sync_posix.h \
+ include/grpc/support/sync_windows.h \
+ include/grpc/support/thd_id.h \
+ include/grpc/support/time.h \
include/grpc/support/workaround_list.h \
LIBGRPC_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_SRC))))
@@ -2087,6 +2105,24 @@ PUBLIC_HEADERS_C += \
include/grpc/slice.h \
include/grpc/slice_buffer.h \
include/grpc/status.h \
+ include/grpc/support/alloc.h \
+ include/grpc/support/atm.h \
+ include/grpc/support/atm_gcc_atomic.h \
+ include/grpc/support/atm_gcc_sync.h \
+ include/grpc/support/atm_windows.h \
+ include/grpc/support/cpu.h \
+ include/grpc/support/log.h \
+ include/grpc/support/log_windows.h \
+ include/grpc/support/port_platform.h \
+ include/grpc/support/string_util.h \
+ include/grpc/support/sync.h \
+ include/grpc/support/sync_abseil.h \
+ include/grpc/support/sync_custom.h \
+ include/grpc/support/sync_generic.h \
+ include/grpc/support/sync_posix.h \
+ include/grpc/support/sync_windows.h \
+ include/grpc/support/thd_id.h \
+ include/grpc/support/time.h \
include/grpc/support/workaround_list.h \
LIBGRPC_UNSECURE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_UNSECURE_SRC))))
diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml
index ab922ad3a11..dc5543387c8 100644
--- a/build_autogenerated.yaml
+++ b/build_autogenerated.yaml
@@ -313,6 +313,24 @@ libs:
- include/grpc/slice.h
- include/grpc/slice_buffer.h
- include/grpc/status.h
+ - include/grpc/support/alloc.h
+ - include/grpc/support/atm.h
+ - include/grpc/support/atm_gcc_atomic.h
+ - include/grpc/support/atm_gcc_sync.h
+ - include/grpc/support/atm_windows.h
+ - include/grpc/support/cpu.h
+ - include/grpc/support/log.h
+ - include/grpc/support/log_windows.h
+ - include/grpc/support/port_platform.h
+ - include/grpc/support/string_util.h
+ - include/grpc/support/sync.h
+ - include/grpc/support/sync_abseil.h
+ - include/grpc/support/sync_custom.h
+ - include/grpc/support/sync_generic.h
+ - include/grpc/support/sync_posix.h
+ - include/grpc/support/sync_windows.h
+ - include/grpc/support/thd_id.h
+ - include/grpc/support/time.h
- include/grpc/support/workaround_list.h
headers:
- src/core/ext/filters/channel_idle/channel_idle_filter.h
@@ -710,6 +728,7 @@ libs:
- src/core/lib/channel/call_tracer.h
- src/core/lib/channel/channel_args.h
- src/core/lib/channel/channel_args_preconditioning.h
+ - src/core/lib/channel/channel_fwd.h
- src/core/lib/channel/channel_stack.h
- src/core/lib/channel/channel_stack_builder.h
- src/core/lib/channel/channel_stack_builder_impl.h
@@ -945,6 +964,7 @@ libs:
- src/core/lib/transport/tcp_connect_handshaker.h
- src/core/lib/transport/timeout_encoding.h
- src/core/lib/transport/transport.h
+ - src/core/lib/transport/transport_fwd.h
- src/core/lib/transport/transport_impl.h
- src/core/lib/uri/uri_parser.h
- src/core/tsi/alts/crypt/gsec.h
@@ -1788,6 +1808,24 @@ libs:
- include/grpc/slice.h
- include/grpc/slice_buffer.h
- include/grpc/status.h
+ - include/grpc/support/alloc.h
+ - include/grpc/support/atm.h
+ - include/grpc/support/atm_gcc_atomic.h
+ - include/grpc/support/atm_gcc_sync.h
+ - include/grpc/support/atm_windows.h
+ - include/grpc/support/cpu.h
+ - include/grpc/support/log.h
+ - include/grpc/support/log_windows.h
+ - include/grpc/support/port_platform.h
+ - include/grpc/support/string_util.h
+ - include/grpc/support/sync.h
+ - include/grpc/support/sync_abseil.h
+ - include/grpc/support/sync_custom.h
+ - include/grpc/support/sync_generic.h
+ - include/grpc/support/sync_posix.h
+ - include/grpc/support/sync_windows.h
+ - include/grpc/support/thd_id.h
+ - include/grpc/support/time.h
- include/grpc/support/workaround_list.h
headers:
- src/core/ext/filters/channel_idle/channel_idle_filter.h
@@ -1894,6 +1932,7 @@ libs:
- src/core/lib/channel/call_tracer.h
- src/core/lib/channel/channel_args.h
- src/core/lib/channel/channel_args_preconditioning.h
+ - src/core/lib/channel/channel_fwd.h
- src/core/lib/channel/channel_stack.h
- src/core/lib/channel/channel_stack_builder.h
- src/core/lib/channel/channel_stack_builder_impl.h
@@ -2096,6 +2135,7 @@ libs:
- src/core/lib/transport/tcp_connect_handshaker.h
- src/core/lib/transport/timeout_encoding.h
- src/core/lib/transport/transport.h
+ - src/core/lib/transport/transport_fwd.h
- src/core/lib/transport/transport_impl.h
- src/core/lib/uri/uri_parser.h
- src/core/tsi/fake_transport_security.h
@@ -2528,37 +2568,6 @@ libs:
- include/grpc++/support/stub_options.h
- include/grpc++/support/sync_stream.h
- include/grpc++/support/time.h
- - include/grpc/byte_buffer.h
- - include/grpc/byte_buffer_reader.h
- - include/grpc/compression.h
- - include/grpc/fork.h
- - include/grpc/grpc.h
- - include/grpc/grpc_posix.h
- - include/grpc/grpc_security.h
- - include/grpc/grpc_security_constants.h
- - include/grpc/load_reporting.h
- - include/grpc/slice.h
- - include/grpc/slice_buffer.h
- - include/grpc/status.h
- - include/grpc/support/alloc.h
- - include/grpc/support/atm.h
- - include/grpc/support/atm_gcc_atomic.h
- - include/grpc/support/atm_gcc_sync.h
- - include/grpc/support/atm_windows.h
- - include/grpc/support/cpu.h
- - include/grpc/support/log.h
- - include/grpc/support/log_windows.h
- - include/grpc/support/port_platform.h
- - include/grpc/support/string_util.h
- - include/grpc/support/sync.h
- - include/grpc/support/sync_abseil.h
- - include/grpc/support/sync_custom.h
- - include/grpc/support/sync_generic.h
- - include/grpc/support/sync_posix.h
- - include/grpc/support/sync_windows.h
- - include/grpc/support/thd_id.h
- - include/grpc/support/time.h
- - include/grpc/support/workaround_list.h
- include/grpcpp/alarm.h
- include/grpcpp/channel.h
- include/grpcpp/client_context.h
@@ -2948,37 +2957,6 @@ libs:
- include/grpc++/support/stub_options.h
- include/grpc++/support/sync_stream.h
- include/grpc++/support/time.h
- - include/grpc/byte_buffer.h
- - include/grpc/byte_buffer_reader.h
- - include/grpc/compression.h
- - include/grpc/fork.h
- - include/grpc/grpc.h
- - include/grpc/grpc_posix.h
- - include/grpc/grpc_security.h
- - include/grpc/grpc_security_constants.h
- - include/grpc/load_reporting.h
- - include/grpc/slice.h
- - include/grpc/slice_buffer.h
- - include/grpc/status.h
- - include/grpc/support/alloc.h
- - include/grpc/support/atm.h
- - include/grpc/support/atm_gcc_atomic.h
- - include/grpc/support/atm_gcc_sync.h
- - include/grpc/support/atm_windows.h
- - include/grpc/support/cpu.h
- - include/grpc/support/log.h
- - include/grpc/support/log_windows.h
- - include/grpc/support/port_platform.h
- - include/grpc/support/string_util.h
- - include/grpc/support/sync.h
- - include/grpc/support/sync_abseil.h
- - include/grpc/support/sync_custom.h
- - include/grpc/support/sync_generic.h
- - include/grpc/support/sync_posix.h
- - include/grpc/support/sync_windows.h
- - include/grpc/support/thd_id.h
- - include/grpc/support/time.h
- - include/grpc/support/workaround_list.h
- include/grpcpp/alarm.h
- include/grpcpp/channel.h
- include/grpcpp/client_context.h
diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec
index ae6c3b4afd6..de889b5da37 100644
--- a/gRPC-C++.podspec
+++ b/gRPC-C++.podspec
@@ -652,6 +652,7 @@ Pod::Spec.new do |s|
'src/core/lib/channel/call_tracer.h',
'src/core/lib/channel/channel_args.h',
'src/core/lib/channel/channel_args_preconditioning.h',
+ 'src/core/lib/channel/channel_fwd.h',
'src/core/lib/channel/channel_stack.h',
'src/core/lib/channel/channel_stack_builder.h',
'src/core/lib/channel/channel_stack_builder_impl.h',
@@ -915,6 +916,7 @@ Pod::Spec.new do |s|
'src/core/lib/transport/tcp_connect_handshaker.h',
'src/core/lib/transport/timeout_encoding.h',
'src/core/lib/transport/transport.h',
+ 'src/core/lib/transport/transport_fwd.h',
'src/core/lib/transport/transport_impl.h',
'src/core/lib/uri/uri_parser.h',
'src/core/tsi/alts/crypt/gsec.h',
@@ -1468,6 +1470,7 @@ Pod::Spec.new do |s|
'src/core/lib/channel/call_tracer.h',
'src/core/lib/channel/channel_args.h',
'src/core/lib/channel/channel_args_preconditioning.h',
+ 'src/core/lib/channel/channel_fwd.h',
'src/core/lib/channel/channel_stack.h',
'src/core/lib/channel/channel_stack_builder.h',
'src/core/lib/channel/channel_stack_builder_impl.h',
@@ -1731,6 +1734,7 @@ Pod::Spec.new do |s|
'src/core/lib/transport/tcp_connect_handshaker.h',
'src/core/lib/transport/timeout_encoding.h',
'src/core/lib/transport/transport.h',
+ 'src/core/lib/transport/transport_fwd.h',
'src/core/lib/transport/transport_impl.h',
'src/core/lib/uri/uri_parser.h',
'src/core/tsi/alts/crypt/gsec.h',
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index 497c0cac902..88052395952 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -995,6 +995,7 @@ Pod::Spec.new do |s|
'src/core/lib/channel/channel_args.h',
'src/core/lib/channel/channel_args_preconditioning.cc',
'src/core/lib/channel/channel_args_preconditioning.h',
+ 'src/core/lib/channel/channel_fwd.h',
'src/core/lib/channel/channel_stack.cc',
'src/core/lib/channel/channel_stack.h',
'src/core/lib/channel/channel_stack_builder.cc',
@@ -1528,6 +1529,7 @@ Pod::Spec.new do |s|
'src/core/lib/transport/timeout_encoding.h',
'src/core/lib/transport/transport.cc',
'src/core/lib/transport/transport.h',
+ 'src/core/lib/transport/transport_fwd.h',
'src/core/lib/transport/transport_impl.h',
'src/core/lib/transport/transport_op_string.cc',
'src/core/lib/uri/uri_parser.cc',
@@ -2067,6 +2069,7 @@ Pod::Spec.new do |s|
'src/core/lib/channel/call_tracer.h',
'src/core/lib/channel/channel_args.h',
'src/core/lib/channel/channel_args_preconditioning.h',
+ 'src/core/lib/channel/channel_fwd.h',
'src/core/lib/channel/channel_stack.h',
'src/core/lib/channel/channel_stack_builder.h',
'src/core/lib/channel/channel_stack_builder_impl.h',
@@ -2330,6 +2333,7 @@ Pod::Spec.new do |s|
'src/core/lib/transport/tcp_connect_handshaker.h',
'src/core/lib/transport/timeout_encoding.h',
'src/core/lib/transport/transport.h',
+ 'src/core/lib/transport/transport_fwd.h',
'src/core/lib/transport/transport_impl.h',
'src/core/lib/uri/uri_parser.h',
'src/core/tsi/alts/crypt/gsec.h',
diff --git a/grpc.gemspec b/grpc.gemspec
index d7efe2b87a9..e694e5409df 100644
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -908,6 +908,7 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/channel/channel_args.h )
s.files += %w( src/core/lib/channel/channel_args_preconditioning.cc )
s.files += %w( src/core/lib/channel/channel_args_preconditioning.h )
+ s.files += %w( src/core/lib/channel/channel_fwd.h )
s.files += %w( src/core/lib/channel/channel_stack.cc )
s.files += %w( src/core/lib/channel/channel_stack.h )
s.files += %w( src/core/lib/channel/channel_stack_builder.cc )
@@ -1441,6 +1442,7 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/transport/timeout_encoding.h )
s.files += %w( src/core/lib/transport/transport.cc )
s.files += %w( src/core/lib/transport/transport.h )
+ s.files += %w( src/core/lib/transport/transport_fwd.h )
s.files += %w( src/core/lib/transport/transport_impl.h )
s.files += %w( src/core/lib/transport/transport_op_string.cc )
s.files += %w( src/core/lib/uri/uri_parser.cc )
diff --git a/package.xml b/package.xml
index 1f6973713c2..98bf3e60b90 100644
--- a/package.xml
+++ b/package.xml
@@ -890,6 +890,7 @@
+
@@ -1423,6 +1424,7 @@
+
diff --git a/src/core/ext/filters/census/grpc_context.cc b/src/core/ext/filters/census/grpc_context.cc
index 6659f701c27..de09ad9f3bd 100644
--- a/src/core/ext/filters/census/grpc_context.cc
+++ b/src/core/ext/filters/census/grpc_context.cc
@@ -20,7 +20,10 @@
#include
#include
+#include
+#include "src/core/lib/channel/context.h"
+#include "src/core/lib/debug/trace.h"
#include "src/core/lib/surface/api_trace.h"
#include "src/core/lib/surface/call.h"
diff --git a/src/core/ext/filters/channel_idle/channel_idle_filter.cc b/src/core/ext/filters/channel_idle/channel_idle_filter.cc
index 7357ea4342b..63ecf229fa5 100644
--- a/src/core/ext/filters/channel_idle/channel_idle_filter.cc
+++ b/src/core/ext/filters/channel_idle/channel_idle_filter.cc
@@ -19,22 +19,34 @@
#include "src/core/ext/filters/channel_idle/channel_idle_filter.h"
-#include
#include
-#include
-#include
+#include
+#include
+
+#include "absl/types/optional.h"
+
+#include
+#include
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_stack_builder.h"
#include "src/core/lib/channel/promise_based_filter.h"
#include "src/core/lib/config/core_configuration.h"
-#include "src/core/lib/iomgr/timer.h"
+#include "src/core/lib/debug/trace.h"
+#include "src/core/lib/gprpp/debug_location.h"
+#include "src/core/lib/gprpp/orphanable.h"
+#include "src/core/lib/iomgr/closure.h"
+#include "src/core/lib/iomgr/error.h"
+#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/promise/exec_ctx_wakeup_scheduler.h"
#include "src/core/lib/promise/loop.h"
+#include "src/core/lib/promise/poll.h"
#include "src/core/lib/promise/promise.h"
#include "src/core/lib/promise/sleep.h"
#include "src/core/lib/promise/try_seq.h"
+#include "src/core/lib/surface/channel_init.h"
+#include "src/core/lib/surface/channel_stack_type.h"
#include "src/core/lib/transport/http2_errors.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/channel_idle/channel_idle_filter.h b/src/core/ext/filters/channel_idle/channel_idle_filter.h
index 021c6164fcc..4f24f382c75 100644
--- a/src/core/ext/filters/channel_idle/channel_idle_filter.h
+++ b/src/core/ext/filters/channel_idle/channel_idle_filter.h
@@ -17,9 +17,25 @@
#include
+#include
+
+#include "absl/status/status.h"
+#include "absl/status/statusor.h"
+
+#include
+
#include "src/core/ext/filters/channel_idle/idle_filter_state.h"
+#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/channel/channel_fwd.h"
+#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/promise_based_filter.h"
+#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/single_set_ptr.h"
+#include "src/core/lib/gprpp/time.h"
+#include "src/core/lib/promise/activity.h"
+#include "src/core/lib/promise/arena_promise.h"
+#include "src/core/lib/transport/connectivity_state.h"
+#include "src/core/lib/transport/transport.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/channel_idle/idle_filter_state.h b/src/core/ext/filters/channel_idle/idle_filter_state.h
index f70c3c853be..b8cef4b03f6 100644
--- a/src/core/ext/filters/channel_idle/idle_filter_state.h
+++ b/src/core/ext/filters/channel_idle/idle_filter_state.h
@@ -17,6 +17,8 @@
#include
+#include
+
#include
namespace grpc_core {
diff --git a/src/core/ext/filters/client_channel/channel_connectivity.cc b/src/core/ext/filters/client_channel/channel_connectivity.cc
index bb68d4cb52b..6039840f6d6 100644
--- a/src/core/ext/filters/client_channel/channel_connectivity.cc
+++ b/src/core/ext/filters/client_channel/channel_connectivity.cc
@@ -25,8 +25,8 @@
#include
#include "src/core/ext/filters/client_channel/client_channel.h"
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/channel/channel_stack_builder.h"
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/gprpp/dual_ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
diff --git a/src/core/ext/filters/client_channel/client_channel.h b/src/core/ext/filters/client_channel/client_channel.h
index a0838a24311..c18eabfd27a 100644
--- a/src/core/ext/filters/client_channel/client_channel.h
+++ b/src/core/ext/filters/client_channel/client_channel.h
@@ -44,8 +44,8 @@
#include "src/core/ext/filters/client_channel/subchannel.h"
#include "src/core/ext/filters/client_channel/subchannel_pool_interface.h"
#include "src/core/lib/channel/call_tracer.h"
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/channel/channel_stack_builder.h"
#include "src/core/lib/channel/channelz.h"
#include "src/core/lib/channel/context.h"
#include "src/core/lib/gpr/time_precise.h"
diff --git a/src/core/ext/filters/client_channel/config_selector.h b/src/core/ext/filters/client_channel/config_selector.h
index 5ed1fea544b..ea5555e3f36 100644
--- a/src/core/ext/filters/client_channel/config_selector.h
+++ b/src/core/ext/filters/client_channel/config_selector.h
@@ -28,7 +28,7 @@
#include
#include
-#include "src/core/lib/channel/channel_stack.h"
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/iomgr/error.h"
diff --git a/src/core/ext/filters/client_channel/connector.h b/src/core/ext/filters/client_channel/connector.h
index 53080919ab0..6057f2044f1 100644
--- a/src/core/ext/filters/client_channel/connector.h
+++ b/src/core/ext/filters/client_channel/connector.h
@@ -29,7 +29,7 @@
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/iomgr/iomgr_fwd.h"
#include "src/core/lib/iomgr/resolved_address.h"
-#include "src/core/lib/transport/transport.h"
+#include "src/core/lib/transport/transport_fwd.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/client_channel/dynamic_filters.h b/src/core/ext/filters/client_channel/dynamic_filters.h
index 4210d998748..3f812a7f015 100644
--- a/src/core/ext/filters/client_channel/dynamic_filters.h
+++ b/src/core/ext/filters/client_channel/dynamic_filters.h
@@ -24,7 +24,7 @@
#include
#include
-#include "src/core/lib/channel/channel_stack.h"
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/context.h"
#include "src/core/lib/gpr/time_precise.h"
#include "src/core/lib/gprpp/debug_location.h"
diff --git a/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h b/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h
index 838e2ef1cae..e1441ab0ddd 100644
--- a/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h
+++ b/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h
@@ -21,6 +21,7 @@
#include
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
extern const grpc_channel_filter grpc_client_load_reporting_filter;
diff --git a/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc b/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc
index 212654fff03..c08be683fab 100644
--- a/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc
+++ b/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc
@@ -23,7 +23,6 @@
#include
#include
#include
-#include
#include
#include "absl/memory/memory.h"
diff --git a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc b/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc
index 55f1a37f0a2..7dfe637d61c 100644
--- a/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc
+++ b/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc
@@ -63,7 +63,7 @@
#include "src/core/ext/xds/xds_route_config.h"
#include "src/core/ext/xds/xds_routing.h"
#include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/channel/channel_stack_builder.h"
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/status_util.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/debug/trace.h"
diff --git a/src/core/ext/filters/client_channel/retry_filter.cc b/src/core/ext/filters/client_channel/retry_filter.cc
index 3520a7332f0..5f0633a2cf2 100644
--- a/src/core/ext/filters/client_channel/retry_filter.cc
+++ b/src/core/ext/filters/client_channel/retry_filter.cc
@@ -47,7 +47,6 @@
#include "src/core/lib/backoff/backoff.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/channel/channel_stack_builder.h"
#include "src/core/lib/channel/context.h"
#include "src/core/lib/channel/status_util.h"
#include "src/core/lib/debug/trace.h"
diff --git a/src/core/ext/filters/client_channel/retry_filter.h b/src/core/ext/filters/client_channel/retry_filter.h
index a96df8af1fc..f00c52f76d6 100644
--- a/src/core/ext/filters/client_channel/retry_filter.h
+++ b/src/core/ext/filters/client_channel/retry_filter.h
@@ -19,6 +19,7 @@
#include
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc b/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc
index cebe903eabc..a5bfbb64b18 100644
--- a/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc
+++ b/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc
@@ -29,6 +29,7 @@
#include
#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/channel_stack_builder.h"
#include "src/core/lib/channel/context.h"
diff --git a/src/core/ext/filters/client_channel/subchannel.cc b/src/core/ext/filters/client_channel/subchannel.cc
index ea2e2177618..69a876838b9 100644
--- a/src/core/ext/filters/client_channel/subchannel.cc
+++ b/src/core/ext/filters/client_channel/subchannel.cc
@@ -42,6 +42,7 @@
#include "src/core/lib/address_utils/sockaddr_utils.h"
#include "src/core/lib/backoff/backoff.h"
#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/channel_stack_builder.h"
#include "src/core/lib/channel/channel_stack_builder_impl.h"
#include "src/core/lib/channel/channel_trace.h"
diff --git a/src/core/ext/filters/client_channel/subchannel.h b/src/core/ext/filters/client_channel/subchannel.h
index 23b68f222e5..696b370ab52 100644
--- a/src/core/ext/filters/client_channel/subchannel.h
+++ b/src/core/ext/filters/client_channel/subchannel.h
@@ -36,7 +36,7 @@
#include "src/core/ext/filters/client_channel/connector.h"
#include "src/core/ext/filters/client_channel/subchannel_pool_interface.h"
#include "src/core/lib/backoff/backoff.h"
-#include "src/core/lib/channel/channel_stack.h"
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/context.h"
#include "src/core/lib/gpr/time_precise.h"
#include "src/core/lib/gprpp/debug_location.h"
diff --git a/src/core/ext/filters/deadline/deadline_filter.cc b/src/core/ext/filters/deadline/deadline_filter.cc
index a6358512a87..369cc7fd218 100644
--- a/src/core/ext/filters/deadline/deadline_filter.cc
+++ b/src/core/ext/filters/deadline/deadline_filter.cc
@@ -18,19 +18,23 @@
#include "src/core/ext/filters/deadline/deadline_filter.h"
-#include
-#include
+#include
-#include
+#include "absl/types/optional.h"
+
+#include
#include
-#include
-#include
+#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_stack_builder.h"
#include "src/core/lib/config/core_configuration.h"
-#include "src/core/lib/gprpp/memory.h"
+#include "src/core/lib/gprpp/debug_location.h"
+#include "src/core/lib/iomgr/error.h"
+#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/iomgr/timer.h"
-#include "src/core/lib/slice/slice_internal.h"
+#include "src/core/lib/surface/channel_init.h"
+#include "src/core/lib/surface/channel_stack_type.h"
+#include "src/core/lib/transport/metadata_batch.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/deadline/deadline_filter.h b/src/core/ext/filters/deadline/deadline_filter.h
index 6aaa1a05dfb..dd35ed2071b 100644
--- a/src/core/ext/filters/deadline/deadline_filter.h
+++ b/src/core/ext/filters/deadline/deadline_filter.h
@@ -19,8 +19,15 @@
#include
+#include
+
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/iomgr/timer.h"
+#include "src/core/lib/gprpp/time.h"
+#include "src/core/lib/iomgr/call_combiner.h"
+#include "src/core/lib/iomgr/closure.h"
+#include "src/core/lib/resource_quota/arena.h"
+#include "src/core/lib/transport/transport.h"
namespace grpc_core {
class TimerState;
diff --git a/src/core/ext/filters/fault_injection/fault_injection_filter.cc b/src/core/ext/filters/fault_injection/fault_injection_filter.cc
index 68c0e042619..48f467587d7 100644
--- a/src/core/ext/filters/fault_injection/fault_injection_filter.cc
+++ b/src/core/ext/filters/fault_injection/fault_injection_filter.cc
@@ -18,21 +18,40 @@
#include "src/core/ext/filters/fault_injection/fault_injection_filter.h"
+#include
+#include
+
+#include
#include
+#include
+#include
+#include
+#include
+#include "absl/status/status.h"
#include "absl/strings/numbers.h"
+#include "absl/strings/str_cat.h"
+#include "absl/strings/string_view.h"
+#include "absl/types/optional.h"
+#include "absl/utility/utility.h"
#include
-#include
#include
#include "src/core/ext/filters/fault_injection/service_config_parser.h"
#include "src/core/lib/channel/channel_stack.h"
+#include "src/core/lib/channel/context.h"
#include "src/core/lib/channel/status_util.h"
+#include "src/core/lib/config/core_configuration.h"
+#include "src/core/lib/debug/trace.h"
+#include "src/core/lib/gprpp/time.h"
+#include "src/core/lib/iomgr/exec_ctx.h"
+#include "src/core/lib/promise/context.h"
+#include "src/core/lib/promise/poll.h"
#include "src/core/lib/promise/sleep.h"
#include "src/core/lib/promise/try_seq.h"
#include "src/core/lib/service_config/service_config_call_data.h"
-#include "src/core/lib/transport/status_conversion.h"
+#include "src/core/lib/transport/metadata_batch.h"
#include "src/core/lib/transport/transport.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/fault_injection/fault_injection_filter.h b/src/core/ext/filters/fault_injection/fault_injection_filter.h
index 49c6c0e31a8..2b0d783661d 100644
--- a/src/core/ext/filters/fault_injection/fault_injection_filter.h
+++ b/src/core/ext/filters/fault_injection/fault_injection_filter.h
@@ -19,9 +19,14 @@
#include
-#include "src/core/ext/filters/fault_injection/service_config_parser.h"
-#include "src/core/lib/channel/channel_stack.h"
+#include
+
+#include "absl/status/statusor.h"
+
+#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/promise_based_filter.h"
+#include "src/core/lib/promise/arena_promise.h"
#include "src/core/lib/transport/transport.h"
// Channel arg key for enabling parsing fault injection via method config.
diff --git a/src/core/ext/filters/fault_injection/service_config_parser.cc b/src/core/ext/filters/fault_injection/service_config_parser.cc
index df5d302697d..452c706f1a7 100644
--- a/src/core/ext/filters/fault_injection/service_config_parser.cc
+++ b/src/core/ext/filters/fault_injection/service_config_parser.cc
@@ -18,15 +18,18 @@
#include "src/core/ext/filters/fault_injection/service_config_parser.h"
+#include
+#include
#include
+#include "absl/memory/memory.h"
#include "absl/strings/str_cat.h"
-#include "absl/strings/string_view.h"
+
+#include
#include "src/core/ext/filters/fault_injection/fault_injection_filter.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/status_util.h"
-#include "src/core/lib/gpr/string.h"
#include "src/core/lib/json/json_util.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/fault_injection/service_config_parser.h b/src/core/ext/filters/fault_injection/service_config_parser.h
index 8354b0f4bc6..219924b2c99 100644
--- a/src/core/ext/filters/fault_injection/service_config_parser.h
+++ b/src/core/ext/filters/fault_injection/service_config_parser.h
@@ -19,10 +19,24 @@
#include
+#include
+#include
+
+#include
+#include
+#include
+#include
#include
+#include "absl/strings/string_view.h"
+
+#include
+#include
+
#include "src/core/lib/config/core_configuration.h"
-#include "src/core/lib/iomgr/exec_ctx.h"
+#include "src/core/lib/gprpp/time.h"
+#include "src/core/lib/iomgr/error.h"
+#include "src/core/lib/json/json.h"
#include "src/core/lib/service_config/service_config_parser.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/http/client/http_client_filter.cc b/src/core/ext/filters/http/client/http_client_filter.cc
index 47c325562e6..3c1a84d3ed1 100644
--- a/src/core/ext/filters/http/client/http_client_filter.cc
+++ b/src/core/ext/filters/http/client/http_client_filter.cc
@@ -19,25 +19,36 @@
#include "src/core/ext/filters/http/client/http_client_filter.h"
-#include
-#include
-
+#include
+#include
#include
+#include
#include
+#include "absl/status/status.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/str_format.h"
#include "absl/strings/str_join.h"
+#include "absl/strings/string_view.h"
+#include "absl/types/optional.h"
+#include "absl/utility/utility.h"
#include
-#include
-#include
+#include
+#include
#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/promise/call_push_pull.h"
+#include "src/core/lib/promise/context.h"
+#include "src/core/lib/promise/detail/basic_seq.h"
+#include "src/core/lib/promise/latch.h"
+#include "src/core/lib/promise/poll.h"
#include "src/core/lib/promise/seq.h"
+#include "src/core/lib/resource_quota/arena.h"
#include "src/core/lib/slice/percent_encoding.h"
#include "src/core/lib/transport/status_conversion.h"
+#include "src/core/lib/transport/transport_fwd.h"
#include "src/core/lib/transport/transport_impl.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/http/client/http_client_filter.h b/src/core/ext/filters/http/client/http_client_filter.h
index 845d4e645b3..b39c498a411 100644
--- a/src/core/ext/filters/http/client/http_client_filter.h
+++ b/src/core/ext/filters/http/client/http_client_filter.h
@@ -20,8 +20,15 @@
#include
-#include "src/core/lib/channel/channel_stack.h"
+#include "absl/status/statusor.h"
+
+#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/promise_based_filter.h"
+#include "src/core/lib/promise/arena_promise.h"
+#include "src/core/lib/slice/slice.h"
+#include "src/core/lib/transport/metadata_batch.h"
+#include "src/core/lib/transport/transport.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/http/client_authority_filter.cc b/src/core/ext/filters/http/client_authority_filter.cc
index 0f2d7214c9c..882430c34cc 100644
--- a/src/core/ext/filters/http/client_authority_filter.cc
+++ b/src/core/ext/filters/http/client_authority_filter.cc
@@ -20,22 +20,23 @@
#include "src/core/ext/filters/http/client_authority_filter.h"
-#include
#include
-#include
-#include
-#include
-#include
+#include
-#include "src/core/ext/filters/http/client_authority_filter.h"
+#include "absl/status/status.h"
+#include "absl/strings/string_view.h"
+#include "absl/types/optional.h"
+
+#include
+
+#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/channel_stack_builder.h"
#include "src/core/lib/config/core_configuration.h"
-#include "src/core/lib/gpr/string.h"
-#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/slice/slice_string_helpers.h"
-#include "src/core/lib/surface/call.h"
+#include "src/core/lib/promise/poll.h"
+#include "src/core/lib/surface/channel_init.h"
#include "src/core/lib/surface/channel_stack_type.h"
+#include "src/core/lib/transport/metadata_batch.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/http/client_authority_filter.h b/src/core/ext/filters/http/client_authority_filter.h
index f049e30442e..d5220eebd6d 100644
--- a/src/core/ext/filters/http/client_authority_filter.h
+++ b/src/core/ext/filters/http/client_authority_filter.h
@@ -21,13 +21,16 @@
#include
-#include "absl/status/statusor.h"
+#include
-#include
+#include "absl/status/statusor.h"
#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/promise_based_filter.h"
+#include "src/core/lib/promise/arena_promise.h"
#include "src/core/lib/slice/slice.h"
+#include "src/core/lib/transport/transport.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/http/http_filters_plugin.cc b/src/core/ext/filters/http/http_filters_plugin.cc
index 3bd6e6a1887..42964ac5fcc 100644
--- a/src/core/ext/filters/http/http_filters_plugin.cc
+++ b/src/core/ext/filters/http/http_filters_plugin.cc
@@ -20,13 +20,21 @@
#include
+#include "absl/types/optional.h"
+
+#include
+
#include "src/core/ext/filters/http/client/http_client_filter.h"
#include "src/core/ext/filters/http/message_compress/message_compress_filter.h"
#include "src/core/ext/filters/http/message_compress/message_decompress_filter.h"
#include "src/core/ext/filters/http/server/http_server_filter.h"
+#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack_builder.h"
#include "src/core/lib/config/core_configuration.h"
-#include "src/core/lib/surface/call.h"
+#include "src/core/lib/surface/channel_init.h"
+#include "src/core/lib/surface/channel_stack_type.h"
+#include "src/core/lib/transport/transport_fwd.h"
#include "src/core/lib/transport/transport_impl.h"
static bool is_building_http_like_transport(
diff --git a/src/core/ext/filters/http/message_compress/message_compress_filter.cc b/src/core/ext/filters/http/message_compress/message_compress_filter.cc
index d354c0220b4..6387050e087 100644
--- a/src/core/ext/filters/http/message_compress/message_compress_filter.cc
+++ b/src/core/ext/filters/http/message_compress/message_compress_filter.cc
@@ -20,25 +20,37 @@
#include "src/core/ext/filters/http/message_compress/message_compress_filter.h"
-#include
-#include
+#include
+#include
+#include
+#include
+#include
+
+#include "absl/meta/type_traits.h"
#include "absl/types/optional.h"
#include
+#include
+#include
+#include
#include
-#include
#include
-#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/compression/compression_internal.h"
#include "src/core/lib/compression/message_compress.h"
-#include "src/core/lib/gpr/string.h"
-#include "src/core/lib/gprpp/manual_constructor.h"
+#include "src/core/lib/debug/trace.h"
+#include "src/core/lib/gprpp/debug_location.h"
+#include "src/core/lib/gprpp/orphanable.h"
+#include "src/core/lib/iomgr/call_combiner.h"
+#include "src/core/lib/iomgr/closure.h"
+#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/slice/slice_string_helpers.h"
#include "src/core/lib/surface/call.h"
+#include "src/core/lib/transport/byte_stream.h"
+#include "src/core/lib/transport/metadata_batch.h"
+#include "src/core/lib/transport/transport.h"
namespace {
diff --git a/src/core/ext/filters/http/message_compress/message_compress_filter.h b/src/core/ext/filters/http/message_compress/message_compress_filter.h
index e163e3cf98f..4593a276af5 100644
--- a/src/core/ext/filters/http/message_compress/message_compress_filter.h
+++ b/src/core/ext/filters/http/message_compress/message_compress_filter.h
@@ -21,8 +21,7 @@
#include
-#include
-
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
/** Compression filter for outgoing data.
diff --git a/src/core/ext/filters/http/message_compress/message_decompress_filter.cc b/src/core/ext/filters/http/message_compress/message_decompress_filter.cc
index 02120046261..9bb3da48a8a 100644
--- a/src/core/ext/filters/http/message_compress/message_decompress_filter.cc
+++ b/src/core/ext/filters/http/message_compress/message_decompress_filter.cc
@@ -20,24 +20,36 @@
#include "src/core/ext/filters/http/message_compress/message_decompress_filter.h"
-#include
+#include
#include
+#include
+#include
+#include
+
#include "absl/strings/str_cat.h"
#include "absl/strings/str_format.h"
+#include "absl/types/optional.h"
-#include
+#include
+#include
#include
-#include
+#include
#include
#include "src/core/ext/filters/message_size/message_size_filter.h"
#include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/compression/compression_internal.h"
#include "src/core/lib/compression/message_compress.h"
-#include "src/core/lib/gpr/string.h"
+#include "src/core/lib/gprpp/debug_location.h"
+#include "src/core/lib/gprpp/orphanable.h"
+#include "src/core/lib/iomgr/call_combiner.h"
+#include "src/core/lib/iomgr/closure.h"
+#include "src/core/lib/iomgr/error.h"
+#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/slice/slice_string_helpers.h"
+#include "src/core/lib/transport/byte_stream.h"
+#include "src/core/lib/transport/metadata_batch.h"
+#include "src/core/lib/transport/transport.h"
namespace grpc_core {
namespace {
diff --git a/src/core/ext/filters/http/message_compress/message_decompress_filter.h b/src/core/ext/filters/http/message_compress/message_decompress_filter.h
index f19a4ca0cbd..52addca71f1 100644
--- a/src/core/ext/filters/http/message_compress/message_decompress_filter.h
+++ b/src/core/ext/filters/http/message_compress/message_decompress_filter.h
@@ -21,6 +21,7 @@
#include
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/channel_stack.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/http/server/http_server_filter.cc b/src/core/ext/filters/http/server/http_server_filter.cc
index e571137fd74..aeee76a4e08 100644
--- a/src/core/ext/filters/http/server/http_server_filter.cc
+++ b/src/core/ext/filters/http/server/http_server_filter.cc
@@ -20,22 +20,29 @@
#include "src/core/ext/filters/http/server/http_server_filter.h"
-#include
+#include
+#include
-#include
-#include
-#include
+#include "absl/base/attributes.h"
+#include "absl/status/status.h"
+#include "absl/types/optional.h"
+#include "absl/utility/utility.h"
+
+#include
#include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/gprpp/manual_constructor.h"
-#include "src/core/lib/profiling/timers.h"
+#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/promise/call_push_pull.h"
+#include "src/core/lib/promise/context.h"
+#include "src/core/lib/promise/detail/basic_seq.h"
+#include "src/core/lib/promise/latch.h"
+#include "src/core/lib/promise/poll.h"
#include "src/core/lib/promise/promise.h"
#include "src/core/lib/promise/seq.h"
-#include "src/core/lib/slice/b64.h"
+#include "src/core/lib/resource_quota/arena.h"
#include "src/core/lib/slice/percent_encoding.h"
-#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/slice/slice_string_helpers.h"
+#include "src/core/lib/slice/slice.h"
+#include "src/core/lib/transport/metadata_batch.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/http/server/http_server_filter.h b/src/core/ext/filters/http/server/http_server_filter.h
index aff346c69e0..49eabb5ac9a 100644
--- a/src/core/ext/filters/http/server/http_server_filter.h
+++ b/src/core/ext/filters/http/server/http_server_filter.h
@@ -21,8 +21,13 @@
#include
-#include "src/core/lib/channel/channel_stack.h"
+#include "absl/status/statusor.h"
+
+#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/channel/channel_fwd.h"
#include "src/core/lib/channel/promise_based_filter.h"
+#include "src/core/lib/promise/arena_promise.h"
+#include "src/core/lib/transport/transport.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc b/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc
index a3f5e3faf6d..182edbc57a3 100644
--- a/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc
+++ b/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc
@@ -20,35 +20,54 @@
#include "src/core/ext/filters/load_reporting/server_load_reporting_filter.h"
-#include
+#include
+#include
+#include
+#include
#include
+#include
+#include "absl/container/inlined_vector.h"
+#include "absl/meta/type_traits.h"
+#include "absl/status/status.h"
#include "absl/strings/ascii.h"
+#include "absl/strings/str_cat.h"
#include "absl/strings/str_format.h"
+#include "absl/strings/string_view.h"
+#include "absl/types/optional.h"
+#include "opencensus/tags/tag_key.h"
#include
-#include
-#include
+#include
+#include
#include
+#include
-#include "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h"
#include "src/core/ext/filters/load_reporting/registered_opencensus_objects.h"
-#include "src/core/ext/filters/load_reporting/server_load_reporting_filter.h"
#include "src/core/lib/address_utils/parse_address.h"
+#include "src/core/lib/channel/call_finalization.h"
#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/channel/channel_fwd.h"
+#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/channel_stack_builder.h"
-#include "src/core/lib/channel/context.h"
#include "src/core/lib/config/core_configuration.h"
-#include "src/core/lib/iomgr/resolve_address.h"
+#include "src/core/lib/iomgr/resolved_address.h"
#include "src/core/lib/iomgr/sockaddr.h"
#include "src/core/lib/iomgr/socket_utils.h"
+#include "src/core/lib/promise/context.h"
+#include "src/core/lib/promise/poll.h"
#include "src/core/lib/promise/promise.h"
#include "src/core/lib/promise/seq.h"
#include "src/core/lib/security/context/security_context.h"
-#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/surface/call.h"
+#include "src/core/lib/slice/slice.h"
+#include "src/core/lib/surface/channel_init.h"
+#include "src/core/lib/surface/channel_stack_type.h"
+#include "src/core/lib/transport/metadata_batch.h"
#include "src/core/lib/uri/uri_parser.h"
+#include "src/cpp/server/load_reporter/constants.h"
+
+// IWYU pragma: no_include "opencensus/stats/recording.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/load_reporting/server_load_reporting_filter.h b/src/core/ext/filters/load_reporting/server_load_reporting_filter.h
index 92fd152ee81..f7ea3304c33 100644
--- a/src/core/ext/filters/load_reporting/server_load_reporting_filter.h
+++ b/src/core/ext/filters/load_reporting/server_load_reporting_filter.h
@@ -21,10 +21,16 @@
#include
+#include
+
#include
-#include "src/core/lib/channel/channel_stack.h"
+#include "absl/status/statusor.h"
+
+#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/promise_based_filter.h"
+#include "src/core/lib/promise/arena_promise.h"
+#include "src/core/lib/transport/transport.h"
namespace grpc_core {
diff --git a/src/core/ext/filters/message_size/message_size_filter.cc b/src/core/ext/filters/message_size/message_size_filter.cc
index 3b2d435248f..b5145a6d4fb 100644
--- a/src/core/ext/filters/message_size/message_size_filter.cc
+++ b/src/core/ext/filters/message_size/message_size_filter.cc
@@ -18,24 +18,35 @@
#include "src/core/ext/filters/message_size/message_size_filter.h"
-#include
-#include
-
+#include
+#include