grpc 1.60.2 → 1.61.0.pre2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +208 -165
- data/include/grpc/event_engine/event_engine.h +59 -12
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +6 -0
- data/include/grpc/event_engine/internal/slice_cast.h +12 -0
- data/include/grpc/event_engine/memory_allocator.h +3 -1
- data/include/grpc/event_engine/slice.h +5 -0
- data/include/grpc/grpc_security.h +22 -1
- data/include/grpc/impl/call.h +29 -0
- data/include/grpc/impl/channel_arg_names.h +12 -1
- data/include/grpc/impl/slice_type.h +1 -1
- data/include/grpc/module.modulemap +1 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +54 -7
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +20 -6
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +10 -13
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +18 -10
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +326 -0
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +143 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +32 -6
- data/src/core/ext/filters/client_channel/client_channel_internal.h +2 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +54 -21
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/endpoint_list.cc +12 -15
- data/src/core/ext/filters/client_channel/lb_policy/endpoint_list.h +8 -5
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +139 -92
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +9 -4
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +9 -4
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +10 -11
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +94 -93
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +5 -3
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +12 -15
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +38 -16
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +25 -28
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +10 -10
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +37 -35
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +11 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +504 -461
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +232 -122
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +8 -6
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +642 -251
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +2 -6
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +7 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +2 -1
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +3 -1
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +6 -8
- data/src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc +1031 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.h +277 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +128 -270
- data/src/core/ext/filters/client_channel/resolver/xds/{xds_resolver.h → xds_resolver_attributes.h} +5 -4
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc +25 -0
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.h +30 -0
- data/src/core/ext/filters/client_channel/retry_filter.cc +1 -0
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +35 -17
- data/src/core/ext/filters/deadline/deadline_filter.cc +12 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +17 -13
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +13 -4
- data/src/core/ext/filters/http/client/http_client_filter.cc +23 -32
- data/src/core/ext/filters/http/client/http_client_filter.h +10 -5
- data/src/core/ext/filters/http/client_authority_filter.cc +14 -14
- data/src/core/ext/filters/http/client_authority_filter.h +12 -4
- data/src/core/ext/filters/http/http_filters_plugin.cc +42 -20
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +55 -80
- data/src/core/ext/filters/http/message_compress/compression_filter.h +54 -12
- data/src/core/ext/filters/http/message_compress/legacy_compression_filter.cc +325 -0
- data/src/core/ext/filters/http/message_compress/legacy_compression_filter.h +139 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +41 -41
- data/src/core/ext/filters/http/server/http_server_filter.h +11 -4
- data/src/core/ext/filters/message_size/message_size_filter.cc +56 -76
- data/src/core/ext/filters/message_size/message_size_filter.h +35 -23
- data/src/core/ext/filters/rbac/rbac_filter.cc +15 -11
- data/src/core/ext/filters/rbac/rbac_filter.h +11 -4
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +25 -13
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +47 -50
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +21 -4
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -2
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +11 -2
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +68 -145
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +21 -82
- data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -8
- data/src/core/ext/transport/chttp2/transport/frame.cc +506 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +214 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +33 -79
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +4 -7
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +27 -36
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +0 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +122 -32
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +142 -37
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -22
- data/src/core/ext/transport/chttp2/transport/parsing.cc +23 -37
- data/src/core/ext/transport/chttp2/transport/writing.cc +26 -58
- data/src/core/ext/transport/inproc/inproc_transport.cc +172 -13
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +712 -0
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +151 -0
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +33 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +133 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +50 -0
- data/src/core/ext/xds/certificate_provider_store.cc +2 -1
- data/src/core/ext/xds/certificate_provider_store.h +0 -5
- data/src/core/ext/xds/xds_api.cc +31 -18
- data/src/core/ext/xds/xds_api.h +2 -2
- data/src/core/ext/xds/xds_bootstrap.h +3 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +88 -287
- data/src/core/ext/xds/xds_certificate_provider.h +44 -111
- data/src/core/ext/xds/xds_client.cc +420 -414
- data/src/core/ext/xds/xds_client.h +31 -22
- data/src/core/ext/xds/xds_client_grpc.cc +3 -1
- data/src/core/ext/xds/xds_cluster.cc +104 -11
- data/src/core/ext/xds/xds_cluster.h +9 -1
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +9 -5
- data/src/core/ext/xds/xds_common_types.cc +14 -10
- data/src/core/ext/xds/xds_endpoint.cc +9 -4
- data/src/core/ext/xds/xds_endpoint.h +5 -1
- data/src/core/ext/xds/xds_health_status.cc +12 -2
- data/src/core/ext/xds/xds_health_status.h +4 -2
- data/src/core/ext/xds/xds_http_rbac_filter.cc +5 -3
- data/src/core/ext/xds/xds_listener.cc +14 -8
- data/src/core/ext/xds/xds_resource_type_impl.h +6 -4
- data/src/core/ext/xds/xds_route_config.cc +34 -22
- data/src/core/ext/xds/xds_route_config.h +1 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +61 -57
- data/src/core/ext/xds/xds_transport.h +3 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +47 -50
- data/src/core/ext/xds/xds_transport_grpc.h +4 -0
- data/src/core/lib/channel/call_tracer.cc +12 -0
- data/src/core/lib/channel/call_tracer.h +17 -3
- data/src/core/lib/channel/channel_args.cc +24 -14
- data/src/core/lib/channel/channel_args.h +74 -13
- data/src/core/lib/channel/channel_stack.cc +27 -0
- data/src/core/lib/channel/channel_stack.h +10 -10
- data/src/core/lib/channel/connected_channel.cc +64 -18
- data/src/core/lib/channel/promise_based_filter.h +1041 -1
- data/src/core/lib/channel/server_call_tracer_filter.cc +43 -35
- data/src/core/lib/compression/compression_internal.cc +0 -3
- data/src/core/lib/event_engine/ares_resolver.cc +35 -14
- data/src/core/lib/event_engine/ares_resolver.h +9 -10
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +8 -1
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +132 -0
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +61 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +52 -36
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +4 -9
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +11 -3
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +9 -2
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +7 -0
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +17 -27
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +0 -3
- data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +55 -0
- data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +114 -0
- data/src/core/lib/event_engine/windows/native_windows_dns_resolver.h +51 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +7 -7
- data/src/core/lib/experiments/config.cc +13 -0
- data/src/core/lib/experiments/config.h +3 -0
- data/src/core/lib/experiments/experiments.cc +245 -366
- data/src/core/lib/experiments/experiments.h +50 -156
- data/src/core/lib/gprpp/debug_location.h +13 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +36 -7
- data/src/core/lib/gprpp/orphanable.h +27 -0
- data/src/core/lib/gprpp/ref_counted.h +63 -22
- data/src/core/lib/gprpp/ref_counted_ptr.h +70 -27
- data/src/core/lib/gprpp/ref_counted_string.h +13 -0
- data/src/core/lib/gprpp/status_helper.cc +1 -2
- data/src/core/lib/iomgr/combiner.cc +15 -51
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +31 -0
- data/src/core/lib/iomgr/event_engine_shims/endpoint.h +16 -0
- data/src/core/lib/iomgr/tcp_client_posix.cc +4 -3
- data/src/core/lib/load_balancing/lb_policy.h +1 -1
- data/src/core/lib/promise/activity.cc +17 -2
- data/src/core/lib/promise/activity.h +5 -4
- data/src/core/lib/promise/all_ok.h +80 -0
- data/src/core/lib/promise/detail/join_state.h +2077 -0
- data/src/core/lib/promise/detail/promise_factory.h +1 -0
- data/src/core/lib/promise/detail/promise_like.h +8 -1
- data/src/core/lib/promise/detail/seq_state.h +3458 -150
- data/src/core/lib/promise/detail/status.h +42 -5
- data/src/core/lib/promise/for_each.h +13 -1
- data/src/core/lib/promise/if.h +4 -0
- data/src/core/lib/promise/latch.h +6 -3
- data/src/core/lib/promise/party.cc +33 -31
- data/src/core/lib/promise/party.h +142 -6
- data/src/core/lib/promise/poll.h +39 -13
- data/src/core/lib/promise/promise.h +4 -0
- data/src/core/lib/promise/seq.h +107 -7
- data/src/core/lib/promise/status_flag.h +196 -0
- data/src/core/lib/promise/try_join.h +132 -0
- data/src/core/lib/promise/try_seq.h +132 -10
- data/src/core/lib/resolver/endpoint_addresses.cc +0 -1
- data/src/core/lib/resolver/endpoint_addresses.h +48 -0
- data/src/core/lib/resource_quota/arena.h +2 -2
- data/src/core/lib/resource_quota/memory_quota.cc +57 -8
- data/src/core/lib/resource_quota/memory_quota.h +6 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +14 -11
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +14 -5
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +4 -0
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +4 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +28 -20
- data/src/core/lib/security/credentials/external/external_account_credentials.h +4 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +4 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +4 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +0 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +12 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +22 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +1 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +16 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +21 -28
- data/src/core/lib/security/credentials/xds/xds_credentials.h +2 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +4 -3
- data/src/core/lib/security/transport/auth_filters.h +71 -4
- data/src/core/lib/security/transport/client_auth_filter.cc +2 -4
- data/src/core/lib/security/transport/legacy_server_auth_filter.cc +244 -0
- data/src/core/lib/security/transport/server_auth_filter.cc +70 -90
- data/src/core/lib/slice/slice_buffer.h +3 -0
- data/src/core/lib/surface/builtins.cc +1 -1
- data/src/core/lib/surface/call.cc +683 -196
- data/src/core/lib/surface/call.h +26 -13
- data/src/core/lib/surface/call_trace.cc +42 -1
- data/src/core/lib/surface/channel.cc +0 -1
- data/src/core/lib/surface/channel.h +0 -6
- data/src/core/lib/surface/channel_init.h +26 -0
- data/src/core/lib/surface/init.cc +14 -8
- data/src/core/lib/surface/server.cc +256 -237
- data/src/core/lib/surface/server.h +26 -54
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/surface/wait_for_cq_end_op.h +94 -0
- data/src/core/lib/transport/call_final_info.cc +38 -0
- data/src/core/lib/transport/call_final_info.h +54 -0
- data/src/core/lib/transport/connectivity_state.cc +3 -2
- data/src/core/lib/transport/connectivity_state.h +4 -0
- data/src/core/lib/transport/metadata_batch.h +4 -4
- data/src/core/lib/transport/transport.cc +70 -19
- data/src/core/lib/transport/transport.h +395 -25
- data/src/core/plugin_registry/grpc_plugin_registry.cc +3 -0
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +0 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -1
- data/src/core/tsi/ssl_transport_security.cc +65 -43
- data/src/ruby/ext/grpc/rb_channel_args.c +3 -1
- data/src/ruby/ext/grpc/rb_grpc.c +0 -1
- data/src/ruby/ext/grpc/rb_grpc.h +0 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/upb/upb/reflection/def_pool.h +2 -2
- data/third_party/zlib/adler32.c +5 -27
- data/third_party/zlib/compress.c +5 -16
- data/third_party/zlib/crc32.c +86 -162
- data/third_party/zlib/deflate.c +233 -336
- data/third_party/zlib/deflate.h +8 -8
- data/third_party/zlib/gzguts.h +11 -12
- data/third_party/zlib/infback.c +7 -23
- data/third_party/zlib/inffast.c +1 -4
- data/third_party/zlib/inffast.h +1 -1
- data/third_party/zlib/inflate.c +30 -99
- data/third_party/zlib/inftrees.c +6 -11
- data/third_party/zlib/inftrees.h +3 -3
- data/third_party/zlib/trees.c +224 -302
- data/third_party/zlib/uncompr.c +4 -12
- data/third_party/zlib/zconf.h +6 -2
- data/third_party/zlib/zlib.h +191 -188
- data/third_party/zlib/zutil.c +16 -44
- data/third_party/zlib/zutil.h +10 -10
- metadata +35 -13
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +0 -1173
- data/src/core/lib/event_engine/memory_allocator.cc +0 -74
- data/src/core/lib/transport/pid_controller.cc +0 -51
- data/src/core/lib/transport/pid_controller.h +0 -116
- data/third_party/upb/upb/collections/array.h +0 -17
- data/third_party/upb/upb/collections/map.h +0 -17
- data/third_party/upb/upb/upb.hpp +0 -18
@@ -1,74 +0,0 @@
|
|
1
|
-
// Copyright 2021 gRPC authors.
|
2
|
-
//
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
// you may not use this file except in compliance with the License.
|
5
|
-
// You may obtain a copy of the License at
|
6
|
-
//
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
//
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
// See the License for the specific language governing permissions and
|
13
|
-
// limitations under the License.
|
14
|
-
|
15
|
-
#include <grpc/support/port_platform.h>
|
16
|
-
|
17
|
-
#include <stdint.h>
|
18
|
-
#include <stdlib.h>
|
19
|
-
|
20
|
-
#include <memory>
|
21
|
-
#include <new>
|
22
|
-
#include <utility>
|
23
|
-
|
24
|
-
#include <grpc/event_engine/memory_allocator.h>
|
25
|
-
#include <grpc/event_engine/memory_request.h>
|
26
|
-
#include <grpc/slice.h>
|
27
|
-
|
28
|
-
#include "src/core/lib/slice/slice_refcount.h"
|
29
|
-
|
30
|
-
namespace grpc_event_engine {
|
31
|
-
namespace experimental {
|
32
|
-
|
33
|
-
namespace {
|
34
|
-
|
35
|
-
// Reference count for a slice allocated by MemoryAllocator::MakeSlice.
|
36
|
-
// Takes care of releasing memory back when the slice is destroyed.
|
37
|
-
class SliceRefCount : public grpc_slice_refcount {
|
38
|
-
public:
|
39
|
-
SliceRefCount(std::shared_ptr<internal::MemoryAllocatorImpl> allocator,
|
40
|
-
size_t size)
|
41
|
-
: grpc_slice_refcount(Destroy),
|
42
|
-
allocator_(std::move(allocator)),
|
43
|
-
size_(size) {
|
44
|
-
// Nothing to do here.
|
45
|
-
}
|
46
|
-
~SliceRefCount() { allocator_->Release(size_); }
|
47
|
-
|
48
|
-
private:
|
49
|
-
static void Destroy(grpc_slice_refcount* p) {
|
50
|
-
auto* rc = static_cast<SliceRefCount*>(p);
|
51
|
-
rc->~SliceRefCount();
|
52
|
-
free(rc);
|
53
|
-
}
|
54
|
-
|
55
|
-
std::shared_ptr<internal::MemoryAllocatorImpl> allocator_;
|
56
|
-
size_t size_;
|
57
|
-
};
|
58
|
-
|
59
|
-
} // namespace
|
60
|
-
|
61
|
-
grpc_slice MemoryAllocator::MakeSlice(MemoryRequest request) {
|
62
|
-
auto size = Reserve(request.Increase(sizeof(SliceRefCount)));
|
63
|
-
void* p = malloc(size);
|
64
|
-
new (p) SliceRefCount(allocator_, size);
|
65
|
-
grpc_slice slice;
|
66
|
-
slice.refcount = static_cast<SliceRefCount*>(p);
|
67
|
-
slice.data.refcounted.bytes =
|
68
|
-
static_cast<uint8_t*>(p) + sizeof(SliceRefCount);
|
69
|
-
slice.data.refcounted.length = size - sizeof(SliceRefCount);
|
70
|
-
return slice;
|
71
|
-
}
|
72
|
-
|
73
|
-
} // namespace experimental
|
74
|
-
} // namespace grpc_event_engine
|
@@ -1,51 +0,0 @@
|
|
1
|
-
//
|
2
|
-
//
|
3
|
-
// Copyright 2016 gRPC authors.
|
4
|
-
//
|
5
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
// you may not use this file except in compliance with the License.
|
7
|
-
// You may obtain a copy of the License at
|
8
|
-
//
|
9
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
//
|
11
|
-
// Unless required by applicable law or agreed to in writing, software
|
12
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
// See the License for the specific language governing permissions and
|
15
|
-
// limitations under the License.
|
16
|
-
//
|
17
|
-
//
|
18
|
-
|
19
|
-
#include <grpc/support/port_platform.h>
|
20
|
-
|
21
|
-
#include "src/core/lib/transport/pid_controller.h"
|
22
|
-
|
23
|
-
#include "src/core/lib/gpr/useful.h"
|
24
|
-
|
25
|
-
namespace grpc_core {
|
26
|
-
|
27
|
-
PidController::PidController(const Args& args)
|
28
|
-
: last_control_value_(args.initial_control_value()), args_(args) {}
|
29
|
-
|
30
|
-
double PidController::Update(double error, double dt) {
|
31
|
-
if (dt <= 0) return last_control_value_;
|
32
|
-
// integrate error using the trapezoid rule
|
33
|
-
error_integral_ += dt * (last_error_ + error) * 0.5;
|
34
|
-
error_integral_ =
|
35
|
-
Clamp(error_integral_, -args_.integral_range(), args_.integral_range());
|
36
|
-
double diff_error = (error - last_error_) / dt;
|
37
|
-
// calculate derivative of control value vs time
|
38
|
-
double dc_dt = args_.gain_p() * error + args_.gain_i() * error_integral_ +
|
39
|
-
args_.gain_d() * diff_error;
|
40
|
-
// and perform trapezoidal integration
|
41
|
-
double new_control_value =
|
42
|
-
last_control_value_ + dt * (last_dc_dt_ + dc_dt) * 0.5;
|
43
|
-
new_control_value = Clamp(new_control_value, args_.min_control_value(),
|
44
|
-
args_.max_control_value());
|
45
|
-
last_error_ = error;
|
46
|
-
last_dc_dt_ = dc_dt;
|
47
|
-
last_control_value_ = new_control_value;
|
48
|
-
return new_control_value;
|
49
|
-
}
|
50
|
-
|
51
|
-
} // namespace grpc_core
|
@@ -1,116 +0,0 @@
|
|
1
|
-
//
|
2
|
-
//
|
3
|
-
// Copyright 2016 gRPC authors.
|
4
|
-
//
|
5
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
// you may not use this file except in compliance with the License.
|
7
|
-
// You may obtain a copy of the License at
|
8
|
-
//
|
9
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
//
|
11
|
-
// Unless required by applicable law or agreed to in writing, software
|
12
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
// See the License for the specific language governing permissions and
|
15
|
-
// limitations under the License.
|
16
|
-
//
|
17
|
-
//
|
18
|
-
|
19
|
-
#ifndef GRPC_SRC_CORE_LIB_TRANSPORT_PID_CONTROLLER_H
|
20
|
-
#define GRPC_SRC_CORE_LIB_TRANSPORT_PID_CONTROLLER_H
|
21
|
-
|
22
|
-
#include <grpc/support/port_platform.h>
|
23
|
-
|
24
|
-
#include <limits>
|
25
|
-
|
26
|
-
// \file Simple PID controller.
|
27
|
-
// Implements a proportional-integral-derivative controller.
|
28
|
-
// Used when we want to iteratively control a variable to converge some other
|
29
|
-
// observed value to a 'set-point'.
|
30
|
-
// Gains can be set to adjust sensitivity to current error (p), the integral
|
31
|
-
// of error (i), and the derivative of error (d).
|
32
|
-
|
33
|
-
namespace grpc_core {
|
34
|
-
|
35
|
-
class PidController {
|
36
|
-
public:
|
37
|
-
class Args {
|
38
|
-
public:
|
39
|
-
double gain_p() const { return gain_p_; }
|
40
|
-
double gain_i() const { return gain_i_; }
|
41
|
-
double gain_d() const { return gain_d_; }
|
42
|
-
double initial_control_value() const { return initial_control_value_; }
|
43
|
-
double min_control_value() const { return min_control_value_; }
|
44
|
-
double max_control_value() const { return max_control_value_; }
|
45
|
-
double integral_range() const { return integral_range_; }
|
46
|
-
|
47
|
-
Args& set_gain_p(double gain_p) {
|
48
|
-
gain_p_ = gain_p;
|
49
|
-
return *this;
|
50
|
-
}
|
51
|
-
Args& set_gain_i(double gain_i) {
|
52
|
-
gain_i_ = gain_i;
|
53
|
-
return *this;
|
54
|
-
}
|
55
|
-
Args& set_gain_d(double gain_d) {
|
56
|
-
gain_d_ = gain_d;
|
57
|
-
return *this;
|
58
|
-
}
|
59
|
-
Args& set_initial_control_value(double initial_control_value) {
|
60
|
-
initial_control_value_ = initial_control_value;
|
61
|
-
return *this;
|
62
|
-
}
|
63
|
-
Args& set_min_control_value(double min_control_value) {
|
64
|
-
min_control_value_ = min_control_value;
|
65
|
-
return *this;
|
66
|
-
}
|
67
|
-
Args& set_max_control_value(double max_control_value) {
|
68
|
-
max_control_value_ = max_control_value;
|
69
|
-
return *this;
|
70
|
-
}
|
71
|
-
Args& set_integral_range(double integral_range) {
|
72
|
-
integral_range_ = integral_range;
|
73
|
-
return *this;
|
74
|
-
}
|
75
|
-
|
76
|
-
private:
|
77
|
-
double gain_p_ = 0.0;
|
78
|
-
double gain_i_ = 0.0;
|
79
|
-
double gain_d_ = 0.0;
|
80
|
-
double initial_control_value_ = 0.0;
|
81
|
-
double min_control_value_ = std::numeric_limits<double>::min();
|
82
|
-
double max_control_value_ = std::numeric_limits<double>::max();
|
83
|
-
double integral_range_ = std::numeric_limits<double>::max();
|
84
|
-
};
|
85
|
-
|
86
|
-
explicit PidController(const Args& args);
|
87
|
-
|
88
|
-
/// Reset the controller internal state: useful when the environment has
|
89
|
-
/// changed significantly
|
90
|
-
void Reset() {
|
91
|
-
last_error_ = 0.0;
|
92
|
-
last_dc_dt_ = 0.0;
|
93
|
-
error_integral_ = 0.0;
|
94
|
-
}
|
95
|
-
|
96
|
-
/// Update the controller: given a current error estimate, and the time since
|
97
|
-
/// the last update, returns a new control value
|
98
|
-
double Update(double error, double dt);
|
99
|
-
|
100
|
-
/// Returns the last control value calculated
|
101
|
-
double last_control_value() const { return last_control_value_; }
|
102
|
-
|
103
|
-
/// Returns the current error integral (mostly for testing)
|
104
|
-
double error_integral() const { return error_integral_; }
|
105
|
-
|
106
|
-
private:
|
107
|
-
double last_error_ = 0.0;
|
108
|
-
double error_integral_ = 0.0;
|
109
|
-
double last_control_value_;
|
110
|
-
double last_dc_dt_ = 0.0;
|
111
|
-
const Args args_;
|
112
|
-
};
|
113
|
-
|
114
|
-
} // namespace grpc_core
|
115
|
-
|
116
|
-
#endif // GRPC_SRC_CORE_LIB_TRANSPORT_PID_CONTROLLER_H
|
@@ -1,17 +0,0 @@
|
|
1
|
-
// Protocol Buffers - Google's data interchange format
|
2
|
-
// Copyright 2023 Google LLC. All rights reserved.
|
3
|
-
//
|
4
|
-
// Use of this source code is governed by a BSD-style
|
5
|
-
// license that can be found in the LICENSE file or at
|
6
|
-
// https://developers.google.com/open-source/licenses/bsd
|
7
|
-
|
8
|
-
// Temporary hack to fix gRPC. Do not use.
|
9
|
-
|
10
|
-
#ifndef UPB_COLLECTIONS_ARRAY_H_
|
11
|
-
#define UPB_COLLECTIONS_ARRAY_H_
|
12
|
-
|
13
|
-
// IWYU pragma: begin_exports
|
14
|
-
#include "upb/message/array.h"
|
15
|
-
// IWYU pragma: end_exports
|
16
|
-
|
17
|
-
#endif /* UPB_COLLECTIONS_ARRAY_H_ */
|
@@ -1,17 +0,0 @@
|
|
1
|
-
// Protocol Buffers - Google's data interchange format
|
2
|
-
// Copyright 2023 Google LLC. All rights reserved.
|
3
|
-
//
|
4
|
-
// Use of this source code is governed by a BSD-style
|
5
|
-
// license that can be found in the LICENSE file or at
|
6
|
-
// https://developers.google.com/open-source/licenses/bsd
|
7
|
-
|
8
|
-
// Temporary hack to fix gRPC. Do not use.
|
9
|
-
|
10
|
-
#ifndef UPB_COLLECTIONS_MAP_H_
|
11
|
-
#define UPB_COLLECTIONS_MAP_H_
|
12
|
-
|
13
|
-
// IWYU pragma: begin_exports
|
14
|
-
#include "upb/message/map.h"
|
15
|
-
// IWYU pragma: end_exports
|
16
|
-
|
17
|
-
#endif /* UPB_COLLECTIONS_MAP_H_ */
|
data/third_party/upb/upb/upb.hpp
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
// Protocol Buffers - Google's data interchange format
|
2
|
-
// Copyright 2023 Google LLC. All rights reserved.
|
3
|
-
//
|
4
|
-
// Use of this source code is governed by a BSD-style
|
5
|
-
// license that can be found in the LICENSE file or at
|
6
|
-
// https://developers.google.com/open-source/licenses/bsd
|
7
|
-
|
8
|
-
// Temporary hack to fix gRPC. Do not use.
|
9
|
-
|
10
|
-
#ifndef UPB_HPP_
|
11
|
-
#define UPB_HPP_
|
12
|
-
|
13
|
-
// IWYU pragma: begin_exports
|
14
|
-
#include "upb/base/status.hpp"
|
15
|
-
#include "upb/mem/arena.hpp"
|
16
|
-
// IWYU pragma: end_exports
|
17
|
-
|
18
|
-
#endif // UPB_HPP_
|