aboutsummaryrefslogtreecommitdiff
path: root/src/core/ext/filters/logging/logging_filter.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/ext/filters/logging/logging_filter.h')
-rw-r--r--src/core/ext/filters/logging/logging_filter.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/core/ext/filters/logging/logging_filter.h b/src/core/ext/filters/logging/logging_filter.h
index b2a5efb6c8..6a27a65386 100644
--- a/src/core/ext/filters/logging/logging_filter.h
+++ b/src/core/ext/filters/logging/logging_filter.h
@@ -21,10 +21,49 @@
#include <grpc/support/port_platform.h>
+#include <string>
+#include <utility>
+
+#include "absl/status/statusor.h"
+
#include "src/core/ext/filters/logging/logging_sink.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 {
+class ClientLoggingFilter final : public ChannelFilter {
+ public:
+ static const grpc_channel_filter kFilter;
+
+ static absl::StatusOr<ClientLoggingFilter> Create(
+ const ChannelArgs& args, ChannelFilter::Args /*filter_args*/);
+
+ // Construct a promise for one call.
+ ArenaPromise<ServerMetadataHandle> MakeCallPromise(
+ CallArgs call_args, NextPromiseFactory next_promise_factory) override;
+
+ private:
+ explicit ClientLoggingFilter(std::string default_authority)
+ : default_authority_(std::move(default_authority)) {}
+ std::string default_authority_;
+};
+
+class ServerLoggingFilter final : public ChannelFilter {
+ public:
+ static const grpc_channel_filter kFilter;
+
+ static absl::StatusOr<ServerLoggingFilter> Create(
+ const ChannelArgs& args, ChannelFilter::Args /*filter_args*/);
+
+ // Construct a promise for one call.
+ ArenaPromise<ServerMetadataHandle> MakeCallPromise(
+ CallArgs call_args, NextPromiseFactory next_promise_factory) override;
+};
+
void RegisterLoggingFilter(LoggingSink* sink);
} // namespace grpc_core