diff --git a/core/src/main/java/io/grpc/ServerInterceptors.java b/core/src/main/java/io/grpc/ServerInterceptors.java index ad74fce7c7..13df6e4f5d 100644 --- a/core/src/main/java/io/grpc/ServerInterceptors.java +++ b/core/src/main/java/io/grpc/ServerInterceptors.java @@ -169,4 +169,36 @@ public class ServerInterceptors { return delegate.isCancelled(); } } + + /** + * Utility base class for decorating {@link ServerCall.Listener} instances. + */ + public static class ForwardingListener extends ServerCall.Listener { + + private final ServerCall.Listener delegate; + + public ForwardingListener(ServerCall.Listener delegate) { + this.delegate = delegate; + } + + @Override + public void onPayload(RespT payload) { + delegate.onPayload(payload); + } + + @Override + public void onHalfClose() { + delegate.onHalfClose(); + } + + @Override + public void onCancel() { + delegate.onCancel(); + } + + @Override + public void onComplete() { + delegate.onComplete(); + } + } }