diff options
Diffstat (limited to 'grpc/src/core/ext/filters/client_channel/service_config_call_data.h')
-rw-r--r-- | grpc/src/core/ext/filters/client_channel/service_config_call_data.h | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/grpc/src/core/ext/filters/client_channel/service_config_call_data.h b/grpc/src/core/ext/filters/client_channel/service_config_call_data.h deleted file mode 100644 index 544683a6..00000000 --- a/grpc/src/core/ext/filters/client_channel/service_config_call_data.h +++ /dev/null @@ -1,86 +0,0 @@ -// -// Copyright 2016 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -#ifndef GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_SERVICE_CONFIG_CALL_DATA_H -#define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_SERVICE_CONFIG_CALL_DATA_H - -#include <grpc/support/port_platform.h> - -#include <map> - -#include "absl/strings/string_view.h" - -#include "src/core/ext/filters/client_channel/service_config.h" -#include "src/core/ext/filters/client_channel/service_config_parser.h" -#include "src/core/lib/channel/context.h" -#include "src/core/lib/gprpp/ref_counted_ptr.h" - -namespace grpc_core { - -/// When a service config is applied to a call in the client_channel_filter, -/// we create an instance of this object on the arena. A pointer to this -/// object is also stored in the call_context, so that future filters can -/// easily access method and global parameters for the call. -class ServiceConfigCallData { - public: - ServiceConfigCallData( - RefCountedPtr<ServiceConfig> service_config, - const ServiceConfigParser::ParsedConfigVector* method_configs, - std::map<const char*, absl::string_view> call_attributes, - grpc_call_context_element* call_context) - : service_config_(std::move(service_config)), - method_configs_(method_configs), - call_attributes_(std::move(call_attributes)) { - call_context[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value = this; - call_context[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].destroy = Destroy; - } - - ServiceConfigCallData( - RefCountedPtr<ServiceConfig> service_config, - const ServiceConfigParser::ParsedConfigVector* method_configs, - grpc_call_context_element* call_context) - : ServiceConfigCallData(std::move(service_config), method_configs, {}, - call_context) {} - - ServiceConfig* service_config() { return service_config_.get(); } - - ServiceConfigParser::ParsedConfig* GetMethodParsedConfig(size_t index) const { - return method_configs_ != nullptr ? (*method_configs_)[index].get() - : nullptr; - } - - ServiceConfigParser::ParsedConfig* GetGlobalParsedConfig(size_t index) const { - return service_config_->GetGlobalParsedConfig(index); - } - - const std::map<const char*, absl::string_view>& call_attributes() const { - return call_attributes_; - } - - private: - static void Destroy(void* ptr) { - ServiceConfigCallData* self = static_cast<ServiceConfigCallData*>(ptr); - self->~ServiceConfigCallData(); - } - - RefCountedPtr<ServiceConfig> service_config_; - const ServiceConfigParser::ParsedConfigVector* method_configs_ = nullptr; - std::map<const char*, absl::string_view> call_attributes_; -}; - -} // namespace grpc_core - -#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_SERVICE_CONFIG_CALL_DATA_H */ |