diff options
Diffstat (limited to 'src/core/ext/filters/logging/logging_filter.h')
-rw-r--r-- | src/core/ext/filters/logging/logging_filter.h | 39 |
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 |