aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/channel
diff options
context:
space:
mode:
authorGravatar Sree Kuchibhotla <sreek@google.com>2018-03-19 17:56:59 -0700
committerGravatar Sree Kuchibhotla <sreek@google.com>2018-03-19 17:56:59 -0700
commit1c6f655925e6e5c3eb8b05779e1ecdbfa8a141ff (patch)
tree810c473547af6956e752b2e1d79e3825daa649cd /src/core/lib/channel
parente4cae417b0a6639bf4df9123305adc16b764b617 (diff)
parent9bef1390540e7662b6d941c0a17f136b10ffc084 (diff)
Merge branch 'master' into fix_reuseport
Diffstat (limited to 'src/core/lib/channel')
-rw-r--r--src/core/lib/channel/channel_trace.cc238
-rw-r--r--src/core/lib/channel/channel_trace.h133
-rw-r--r--src/core/lib/channel/channel_trace_registry.cc80
-rw-r--r--src/core/lib/channel/channel_trace_registry.h43
-rw-r--r--src/core/lib/channel/status_util.cc100
-rw-r--r--src/core/lib/channel/status_util.h58
6 files changed, 0 insertions, 652 deletions
diff --git a/src/core/lib/channel/channel_trace.cc b/src/core/lib/channel/channel_trace.cc
deleted file mode 100644
index 67d5fd364b..0000000000
--- a/src/core/lib/channel/channel_trace.cc
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- *
- * Copyright 2017 gRPC authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <grpc/impl/codegen/port_platform.h>
-
-#include "src/core/lib/channel/channel_trace.h"
-
-#include <grpc/grpc.h>
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-#include <grpc/support/string_util.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "src/core/lib/channel/channel_trace_registry.h"
-#include "src/core/lib/channel/status_util.h"
-#include "src/core/lib/gpr/string.h"
-#include "src/core/lib/gpr/useful.h"
-#include "src/core/lib/gprpp/memory.h"
-#include "src/core/lib/iomgr/error.h"
-#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/surface/channel.h"
-#include "src/core/lib/transport/connectivity_state.h"
-#include "src/core/lib/transport/error_utils.h"
-
-namespace grpc_core {
-
-ChannelTrace::TraceEvent::TraceEvent(
- Severity severity, grpc_slice data,
- RefCountedPtr<ChannelTrace> referenced_tracer, ReferencedType type)
- : severity_(severity),
- data_(data),
- timestamp_(grpc_millis_to_timespec(grpc_core::ExecCtx::Get()->Now(),
- GPR_CLOCK_REALTIME)),
- next_(nullptr),
- referenced_tracer_(std::move(referenced_tracer)),
- referenced_type_(type) {}
-
-ChannelTrace::TraceEvent::TraceEvent(Severity severity, grpc_slice data)
- : severity_(severity),
- data_(data),
- timestamp_(grpc_millis_to_timespec(grpc_core::ExecCtx::Get()->Now(),
- GPR_CLOCK_REALTIME)),
- next_(nullptr) {}
-
-ChannelTrace::TraceEvent::~TraceEvent() { grpc_slice_unref_internal(data_); }
-
-ChannelTrace::ChannelTrace(size_t max_events)
- : channel_uuid_(-1),
- num_events_logged_(0),
- list_size_(0),
- max_list_size_(max_events),
- head_trace_(nullptr),
- tail_trace_(nullptr) {
- if (max_list_size_ == 0) return; // tracing is disabled if max_events == 0
- gpr_mu_init(&tracer_mu_);
- channel_uuid_ = grpc_channel_trace_registry_register_channel_trace(this);
- time_created_ = grpc_millis_to_timespec(grpc_core::ExecCtx::Get()->Now(),
- GPR_CLOCK_REALTIME);
-}
-
-ChannelTrace::~ChannelTrace() {
- if (max_list_size_ == 0) return; // tracing is disabled if max_events == 0
- TraceEvent* it = head_trace_;
- while (it != nullptr) {
- TraceEvent* to_free = it;
- it = it->next();
- Delete<TraceEvent>(to_free);
- }
- grpc_channel_trace_registry_unregister_channel_trace(channel_uuid_);
- gpr_mu_destroy(&tracer_mu_);
-}
-
-intptr_t ChannelTrace::GetUuid() const { return channel_uuid_; }
-
-void ChannelTrace::AddTraceEventHelper(TraceEvent* new_trace_event) {
- ++num_events_logged_;
- // first event case
- if (head_trace_ == nullptr) {
- head_trace_ = tail_trace_ = new_trace_event;
- }
- // regular event add case
- else {
- tail_trace_->set_next(new_trace_event);
- tail_trace_ = tail_trace_->next();
- }
- ++list_size_;
- // maybe garbage collect the end
- if (list_size_ > max_list_size_) {
- TraceEvent* to_free = head_trace_;
- head_trace_ = head_trace_->next();
- Delete<TraceEvent>(to_free);
- --list_size_;
- }
-}
-
-void ChannelTrace::AddTraceEvent(Severity severity, grpc_slice data) {
- if (max_list_size_ == 0) return; // tracing is disabled if max_events == 0
- AddTraceEventHelper(New<TraceEvent>(severity, data));
-}
-
-void ChannelTrace::AddTraceEventReferencingChannel(
- Severity severity, grpc_slice data,
- RefCountedPtr<ChannelTrace> referenced_tracer) {
- if (max_list_size_ == 0) return; // tracing is disabled if max_events == 0
- // create and fill up the new event
- AddTraceEventHelper(
- New<TraceEvent>(severity, data, std::move(referenced_tracer), Channel));
-}
-
-void ChannelTrace::AddTraceEventReferencingSubchannel(
- Severity severity, grpc_slice data,
- RefCountedPtr<ChannelTrace> referenced_tracer) {
- if (max_list_size_ == 0) return; // tracing is disabled if max_events == 0
- // create and fill up the new event
- AddTraceEventHelper(New<TraceEvent>(
- severity, data, std::move(referenced_tracer), Subchannel));
-}
-
-namespace {
-
-// returns an allocated string that represents tm according to RFC-3339, and,
-// more specifically, follows:
-// https://developers.google.com/protocol-buffers/docs/proto3#json
-//
-// "Uses RFC 3339, where generated output will always be Z-normalized and uses
-// 0, 3, 6 or 9 fractional digits."
-char* fmt_time(gpr_timespec tm) {
- char time_buffer[35];
- char ns_buffer[11]; // '.' + 9 digits of precision
- struct tm* tm_info = localtime((const time_t*)&tm.tv_sec);
- strftime(time_buffer, sizeof(time_buffer), "%Y-%m-%dT%H:%M:%S", tm_info);
- snprintf(ns_buffer, 11, ".%09d", tm.tv_nsec);
- // This loop trims off trailing zeros by inserting a null character that the
- // right point. We iterate in chunks of three because we want 0, 3, 6, or 9
- // fractional digits.
- for (int i = 7; i >= 1; i -= 3) {
- if (ns_buffer[i] == '0' && ns_buffer[i + 1] == '0' &&
- ns_buffer[i + 2] == '0') {
- ns_buffer[i] = '\0';
- // Edge case in which all fractional digits were 0.
- if (i == 1) {
- ns_buffer[0] = '\0';
- }
- } else {
- break;
- }
- }
- char* full_time_str;
- gpr_asprintf(&full_time_str, "%s%sZ", time_buffer, ns_buffer);
- return full_time_str;
-}
-
-const char* severity_string(ChannelTrace::Severity severity) {
- switch (severity) {
- case ChannelTrace::Severity::Info:
- return "CT_INFO";
- case ChannelTrace::Severity::Warning:
- return "CT_WARNING";
- case ChannelTrace::Severity::Error:
- return "CT_ERROR";
- default:
- GPR_UNREACHABLE_CODE(return "CT_UNKNOWN");
- }
-}
-
-} // anonymous namespace
-
-void ChannelTrace::TraceEvent::RenderTraceEvent(grpc_json* json) const {
- grpc_json* json_iterator = nullptr;
- json_iterator = grpc_json_create_child(json_iterator, json, "description",
- grpc_slice_to_c_string(data_),
- GRPC_JSON_STRING, true);
- json_iterator = grpc_json_create_child(json_iterator, json, "severity",
- severity_string(severity_),
- GRPC_JSON_STRING, false);
- json_iterator =
- grpc_json_create_child(json_iterator, json, "timestamp",
- fmt_time(timestamp_), GRPC_JSON_STRING, true);
- if (referenced_tracer_ != nullptr) {
- char* uuid_str;
- gpr_asprintf(&uuid_str, "%" PRIdPTR, referenced_tracer_->channel_uuid_);
- grpc_json* child_ref = grpc_json_create_child(
- json_iterator, json,
- (referenced_type_ == Channel) ? "channelRef" : "subchannelRef", nullptr,
- GRPC_JSON_OBJECT, false);
- json_iterator = grpc_json_create_child(
- nullptr, child_ref,
- (referenced_type_ == Channel) ? "channelId" : "subchannelId", uuid_str,
- GRPC_JSON_STRING, true);
- json_iterator = child_ref;
- }
-}
-
-char* ChannelTrace::RenderTrace() const {
- if (!max_list_size_)
- return nullptr; // tracing is disabled if max_events == 0
- grpc_json* json = grpc_json_create(GRPC_JSON_OBJECT);
- char* num_events_logged_str;
- gpr_asprintf(&num_events_logged_str, "%" PRId64, num_events_logged_);
- grpc_json* json_iterator = nullptr;
- json_iterator =
- grpc_json_create_child(json_iterator, json, "numEventsLogged",
- num_events_logged_str, GRPC_JSON_STRING, true);
- json_iterator =
- grpc_json_create_child(json_iterator, json, "creationTime",
- fmt_time(time_created_), GRPC_JSON_STRING, true);
- grpc_json* events = grpc_json_create_child(json_iterator, json, "events",
- nullptr, GRPC_JSON_ARRAY, false);
- json_iterator = nullptr;
- TraceEvent* it = head_trace_;
- while (it != nullptr) {
- json_iterator = grpc_json_create_child(json_iterator, events, nullptr,
- nullptr, GRPC_JSON_OBJECT, false);
- it->RenderTraceEvent(json_iterator);
- it = it->next();
- }
- char* json_str = grpc_json_dump_to_string(json, 0);
- grpc_json_destroy(json);
- return json_str;
-}
-
-} // namespace grpc_core
diff --git a/src/core/lib/channel/channel_trace.h b/src/core/lib/channel/channel_trace.h
deleted file mode 100644
index 1df1e585f2..0000000000
--- a/src/core/lib/channel/channel_trace.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- *
- * Copyright 2017 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_LIB_CHANNEL_CHANNEL_TRACE_H
-#define GRPC_CORE_LIB_CHANNEL_CHANNEL_TRACE_H
-
-#include <grpc/impl/codegen/port_platform.h>
-
-#include <grpc/grpc.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"
-#include "src/core/lib/json/json.h"
-
-namespace grpc_core {
-
-// Object used to hold live data for a channel. This data is exposed via the
-// channelz service:
-// https://github.com/grpc/proposal/blob/master/A14-channelz.md
-class ChannelTrace : public RefCounted<ChannelTrace> {
- public:
- ChannelTrace(size_t max_events);
- ~ChannelTrace();
-
- // returns the tracer's uuid
- intptr_t GetUuid() const;
-
- enum Severity {
- Unset = 0, // never to be used
- Info, // we start at 1 to avoid using proto default values
- Warning,
- Error
- };
-
- // Adds a new trace event to the tracing object
- //
- // TODO(ncteisen): as this call is used more and more throughout the gRPC
- // stack, determine if it makes more sense to accept a char* instead of a
- // slice.
- void AddTraceEvent(Severity severity, grpc_slice data);
-
- // Adds a new trace event to the tracing object. This trace event refers to a
- // an event on a child of the channel. For example, if this channel has
- // created a new subchannel, then it would record that with a TraceEvent
- // referencing the new subchannel.
- //
- // TODO(ncteisen): Once channelz is implemented, the events should reference
- // the overall channelz object, not just the ChannelTrace object.
- // TODO(ncteisen): as this call is used more and more throughout the gRPC
- // stack, determine if it makes more sense to accept a char* instead of a
- // slice.
- void AddTraceEventReferencingChannel(
- Severity severity, grpc_slice data,
- RefCountedPtr<ChannelTrace> referenced_tracer);
- void AddTraceEventReferencingSubchannel(
- Severity severity, grpc_slice data,
- RefCountedPtr<ChannelTrace> referenced_tracer);
-
- // Returns the tracing data rendered as a grpc json string.
- // The string is owned by the caller and must be freed.
- char* RenderTrace() const;
-
- private:
- // Types of objects that can be references by trace events.
- enum ReferencedType { Channel, Subchannel };
- // Private class to encapsulate all the data and bookkeeping needed for a
- // a trace event.
- class TraceEvent {
- public:
- // Constructor for a TraceEvent that references a different channel.
- // TODO(ncteisen): once channelz is implemented, this should reference the
- // overall channelz object, not just the ChannelTrace object
- TraceEvent(Severity severity, grpc_slice data,
- RefCountedPtr<ChannelTrace> referenced_tracer,
- ReferencedType type);
-
- // Constructor for a TraceEvent that does not reverence a different
- // channel.
- TraceEvent(Severity severity, grpc_slice data);
-
- ~TraceEvent();
-
- // Renders the data inside of this TraceEvent into a json object. This is
- // used by the ChannelTrace, when it is rendering itself.
- void RenderTraceEvent(grpc_json* json) const;
-
- // set and get for the next_ pointer.
- TraceEvent* next() const { return next_; }
- void set_next(TraceEvent* next) { next_ = next; }
-
- private:
- Severity severity_;
- grpc_slice data_;
- gpr_timespec timestamp_;
- TraceEvent* next_;
- // the tracer object for the (sub)channel that this trace event refers to.
- RefCountedPtr<ChannelTrace> referenced_tracer_;
- // the type that the referenced tracer points to. Unused if this trace
- // does not point to any channel or subchannel
- ReferencedType referenced_type_;
- }; // TraceEvent
-
- // Internal helper to add and link in a trace event
- void AddTraceEventHelper(TraceEvent* new_trace_event);
-
- gpr_mu tracer_mu_;
- intptr_t channel_uuid_;
- uint64_t num_events_logged_;
- size_t list_size_;
- size_t max_list_size_;
- TraceEvent* head_trace_;
- TraceEvent* tail_trace_;
- gpr_timespec time_created_;
-};
-
-} // namespace grpc_core
-
-#endif /* GRPC_CORE_LIB_CHANNEL_CHANNEL_TRACE_H */
diff --git a/src/core/lib/channel/channel_trace_registry.cc b/src/core/lib/channel/channel_trace_registry.cc
deleted file mode 100644
index 6c82431467..0000000000
--- a/src/core/lib/channel/channel_trace_registry.cc
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- *
- * Copyright 2017 gRPC authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <grpc/impl/codegen/port_platform.h>
-
-#include "src/core/lib/avl/avl.h"
-#include "src/core/lib/channel/channel_trace.h"
-#include "src/core/lib/channel/channel_trace_registry.h"
-#include "src/core/lib/gpr/useful.h"
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-
-// file global lock and avl.
-static gpr_mu g_mu;
-static grpc_avl g_avl;
-static gpr_atm g_uuid = 0;
-
-// avl vtable for uuid (intptr_t) -> ChannelTrace
-// this table is only looking, it does not own anything.
-static void destroy_intptr(void* not_used, void* user_data) {}
-static void* copy_intptr(void* key, void* user_data) { return key; }
-static long compare_intptr(void* key1, void* key2, void* user_data) {
- return GPR_ICMP(key1, key2);
-}
-
-static void destroy_channel_trace(void* trace, void* user_data) {}
-static void* copy_channel_trace(void* trace, void* user_data) { return trace; }
-static const grpc_avl_vtable avl_vtable = {
- destroy_intptr, copy_intptr, compare_intptr, destroy_channel_trace,
- copy_channel_trace};
-
-void grpc_channel_trace_registry_init() {
- gpr_mu_init(&g_mu);
- g_avl = grpc_avl_create(&avl_vtable);
-}
-
-void grpc_channel_trace_registry_shutdown() {
- grpc_avl_unref(g_avl, nullptr);
- gpr_mu_destroy(&g_mu);
-}
-
-intptr_t grpc_channel_trace_registry_register_channel_trace(
- grpc_core::ChannelTrace* channel_trace) {
- intptr_t prior = gpr_atm_no_barrier_fetch_add(&g_uuid, 1);
- gpr_mu_lock(&g_mu);
- g_avl = grpc_avl_add(g_avl, (void*)prior, channel_trace, nullptr);
- gpr_mu_unlock(&g_mu);
- return prior;
-}
-
-void grpc_channel_trace_registry_unregister_channel_trace(intptr_t uuid) {
- gpr_mu_lock(&g_mu);
- g_avl = grpc_avl_remove(g_avl, (void*)uuid, nullptr);
- gpr_mu_unlock(&g_mu);
-}
-
-grpc_core::ChannelTrace* grpc_channel_trace_registry_get_channel_trace(
- intptr_t uuid) {
- gpr_mu_lock(&g_mu);
- grpc_core::ChannelTrace* ret = static_cast<grpc_core::ChannelTrace*>(
- grpc_avl_get(g_avl, (void*)uuid, nullptr));
- gpr_mu_unlock(&g_mu);
- return ret;
-}
diff --git a/src/core/lib/channel/channel_trace_registry.h b/src/core/lib/channel/channel_trace_registry.h
deleted file mode 100644
index 391ecba7de..0000000000
--- a/src/core/lib/channel/channel_trace_registry.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *
- * Copyright 2017 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_LIB_CHANNEL_CHANNEL_TRACE_REGISTRY_H
-#define GRPC_CORE_LIB_CHANNEL_CHANNEL_TRACE_REGISTRY_H
-
-#include <grpc/impl/codegen/port_platform.h>
-
-#include "src/core/lib/channel/channel_trace.h"
-
-#include <stdint.h>
-
-// TODO(ncteisen): convert this file to C++
-
-void grpc_channel_trace_registry_init();
-void grpc_channel_trace_registry_shutdown();
-
-// globally registers a ChannelTrace. Returns its unique uuid
-intptr_t grpc_channel_trace_registry_register_channel_trace(
- grpc_core::ChannelTrace* channel_trace);
-// globally unregisters the ChannelTrace that is associated to uuid.
-void grpc_channel_trace_registry_unregister_channel_trace(intptr_t uuid);
-// if object with uuid has previously been registered, returns the ChannelTrace
-// associated with that uuid. Else returns nullptr.
-grpc_core::ChannelTrace* grpc_channel_trace_registry_get_channel_trace(
- intptr_t uuid);
-
-#endif /* GRPC_CORE_LIB_CHANNEL_CHANNEL_TRACE_REGISTRY_H */
diff --git a/src/core/lib/channel/status_util.cc b/src/core/lib/channel/status_util.cc
deleted file mode 100644
index 563db40846..0000000000
--- a/src/core/lib/channel/status_util.cc
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- *
- * Copyright 2017 gRPC authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <grpc/support/port_platform.h>
-
-#include "src/core/lib/channel/status_util.h"
-
-#include "src/core/lib/gpr/useful.h"
-
-typedef struct {
- const char* str;
- grpc_status_code status;
-} status_string_entry;
-
-static const status_string_entry g_status_string_entries[] = {
- {"OK", GRPC_STATUS_OK},
- {"CANCELLED", GRPC_STATUS_CANCELLED},
- {"UNKNOWN", GRPC_STATUS_UNKNOWN},
- {"INVALID_ARGUMENT", GRPC_STATUS_INVALID_ARGUMENT},
- {"DEADLINE_EXCEEDED", GRPC_STATUS_DEADLINE_EXCEEDED},
- {"NOT_FOUND", GRPC_STATUS_NOT_FOUND},
- {"ALREADY_EXISTS", GRPC_STATUS_ALREADY_EXISTS},
- {"PERMISSION_DENIED", GRPC_STATUS_PERMISSION_DENIED},
- {"UNAUTHENTICATED", GRPC_STATUS_UNAUTHENTICATED},
- {"RESOURCE_EXHAUSTED", GRPC_STATUS_RESOURCE_EXHAUSTED},
- {"FAILED_PRECONDITION", GRPC_STATUS_FAILED_PRECONDITION},
- {"ABORTED", GRPC_STATUS_ABORTED},
- {"OUT_OF_RANGE", GRPC_STATUS_OUT_OF_RANGE},
- {"UNIMPLEMENTED", GRPC_STATUS_UNIMPLEMENTED},
- {"INTERNAL", GRPC_STATUS_INTERNAL},
- {"UNAVAILABLE", GRPC_STATUS_UNAVAILABLE},
- {"DATA_LOSS", GRPC_STATUS_DATA_LOSS},
-};
-
-bool grpc_status_code_from_string(const char* status_str,
- grpc_status_code* status) {
- for (size_t i = 0; i < GPR_ARRAY_SIZE(g_status_string_entries); ++i) {
- if (strcmp(status_str, g_status_string_entries[i].str) == 0) {
- *status = g_status_string_entries[i].status;
- return true;
- }
- }
- return false;
-}
-
-const char* grpc_status_code_to_string(grpc_status_code status) {
- switch (status) {
- case GRPC_STATUS_OK:
- return "OK";
- case GRPC_STATUS_CANCELLED:
- return "CANCELLED";
- case GRPC_STATUS_UNKNOWN:
- return "UNKNOWN";
- case GRPC_STATUS_INVALID_ARGUMENT:
- return "INVALID_ARGUMENT";
- case GRPC_STATUS_DEADLINE_EXCEEDED:
- return "DEADLINE_EXCEEDED";
- case GRPC_STATUS_NOT_FOUND:
- return "NOT_FOUND";
- case GRPC_STATUS_ALREADY_EXISTS:
- return "ALREADY_EXISTS";
- case GRPC_STATUS_PERMISSION_DENIED:
- return "PERMISSION_DENIED";
- case GRPC_STATUS_UNAUTHENTICATED:
- return "UNAUTHENTICATED";
- case GRPC_STATUS_RESOURCE_EXHAUSTED:
- return "RESOURCE_EXHAUSTED";
- case GRPC_STATUS_FAILED_PRECONDITION:
- return "FAILED_PRECONDITION";
- case GRPC_STATUS_ABORTED:
- return "ABORTED";
- case GRPC_STATUS_OUT_OF_RANGE:
- return "OUT_OF_RANGE";
- case GRPC_STATUS_UNIMPLEMENTED:
- return "UNIMPLEMENTED";
- case GRPC_STATUS_INTERNAL:
- return "INTERNAL";
- case GRPC_STATUS_UNAVAILABLE:
- return "UNAVAILABLE";
- case GRPC_STATUS_DATA_LOSS:
- return "DATA_LOSS";
- default:
- return "UNKNOWN";
- }
-}
diff --git a/src/core/lib/channel/status_util.h b/src/core/lib/channel/status_util.h
deleted file mode 100644
index 5409de6b3c..0000000000
--- a/src/core/lib/channel/status_util.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *
- * Copyright 2017 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_LIB_CHANNEL_STATUS_UTIL_H
-#define GRPC_CORE_LIB_CHANNEL_STATUS_UTIL_H
-
-#include <grpc/support/port_platform.h>
-
-#include <grpc/status.h>
-
-#include <stdbool.h>
-#include <string.h>
-
-/// If \a status_str is a valid status string, sets \a status to the
-/// corresponding status value and returns true.
-bool grpc_status_code_from_string(const char* status_str,
- grpc_status_code* status);
-
-/// Returns the string form of \a status, or "UNKNOWN" if invalid.
-const char* grpc_status_code_to_string(grpc_status_code status);
-
-namespace grpc_core {
-namespace internal {
-
-/// A set of grpc_status_code values.
-class StatusCodeSet {
- public:
- bool Empty() const { return status_code_mask_ == 0; }
-
- void Add(grpc_status_code status) { status_code_mask_ |= (1 << status); }
-
- bool Contains(grpc_status_code status) const {
- return status_code_mask_ & (1 << status);
- }
-
- private:
- int status_code_mask_ = 0; // A bitfield of status codes in the set.
-};
-
-} // namespace internal
-} // namespace grpc_core
-
-#endif /* GRPC_CORE_LIB_CHANNEL_STATUS_UTIL_H */