diff options
author | ncteisen <ncteisen@gmail.com> | 2018-06-28 18:04:24 -0700 |
---|---|---|
committer | Noah Eisen <ncteisen@google.com> | 2018-07-06 15:34:54 -0700 |
commit | afb982981944a4c1a4febece03315aea95192e6a (patch) | |
tree | a3a89be89498166421a6b26d90b91f7bf301c76f /src/core/ext/filters/client_channel/client_channel_channelz.h | |
parent | 252d3f3b460cf56db2e30d68e566a00cef0304eb (diff) |
Fix the muddled linkeage of channelz
Diffstat (limited to 'src/core/ext/filters/client_channel/client_channel_channelz.h')
-rw-r--r-- | src/core/ext/filters/client_channel/client_channel_channelz.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/core/ext/filters/client_channel/client_channel_channelz.h b/src/core/ext/filters/client_channel/client_channel_channelz.h new file mode 100644 index 0000000000..7d05cda7da --- /dev/null +++ b/src/core/ext/filters/client_channel/client_channel_channelz.h @@ -0,0 +1,55 @@ +/* + * + * Copyright 2018 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_CLIENT_CHANNEL_CHANNELZ_H +#define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_CLIENT_CHANNEL_CHANNELZ_H + +#include <grpc/support/port_platform.h> + +#include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/channel/channelz.h" + +namespace grpc_core { +namespace channelz { + +// Subtype of ChannelNode that overrides and provides client_channel specific +// functionality like querying for connectivity_state and subchannel data. +class ClientChannelNode : public ChannelNode { + public: + ClientChannelNode(grpc_channel* channel, size_t channel_tracer_max_nodes) + : ChannelNode(channel, channel_tracer_max_nodes) {} + virtual ~ClientChannelNode() {} + + // Override this functionality since client_channels have a notion of + // channel connectivity. + bool GetConnectivityState(grpc_connectivity_state* state) override; + + // Helper to create a channel arg to ensure this type of ChannelNode is + // created. + static grpc_arg CreateArg(); +}; + +RefCountedPtr<ChannelNode> MakeClientChannelNode( + grpc_channel* channel, size_t channel_tracer_max_nodes); + +grpc_arg BlahBlah(); + +} // namespace channelz +} // namespace grpc_core + +#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_CLIENT_CHANNEL_CHANNELZ_H */ |