Compute the head cursor for the partition.
The head cursor's offset is guaranteed to be less than or equal to all
messages which have not yet been acknowledged as published, and
greater than the offset of any message whose publish has already
been acknowledged. It is zero if there have never been messages in the
partition.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Class TopicStatsServiceGrpc.TopicStatsServiceStub (1.15.13)\n\nVersion latestkeyboard_arrow_down\n\n- [1.15.13 (latest)](/java/docs/reference/google-cloud-pubsublite/latest/com.google.cloud.pubsublite.proto.TopicStatsServiceGrpc.TopicStatsServiceStub)\n- [1.15.12](/java/docs/reference/google-cloud-pubsublite/1.15.12/com.google.cloud.pubsublite.proto.TopicStatsServiceGrpc.TopicStatsServiceStub)\n- [1.14.8](/java/docs/reference/google-cloud-pubsublite/1.14.8/com.google.cloud.pubsublite.proto.TopicStatsServiceGrpc.TopicStatsServiceStub)\n- [1.13.8](/java/docs/reference/google-cloud-pubsublite/1.13.8/com.google.cloud.pubsublite.proto.TopicStatsServiceGrpc.TopicStatsServiceStub)\n- [1.12.22](/java/docs/reference/google-cloud-pubsublite/1.12.22/com.google.cloud.pubsublite.proto.TopicStatsServiceGrpc.TopicStatsServiceStub)\n- [1.11.2](/java/docs/reference/google-cloud-pubsublite/1.11.2/com.google.cloud.pubsublite.proto.TopicStatsServiceGrpc.TopicStatsServiceStub)\n- [1.10.0](/java/docs/reference/google-cloud-pubsublite/1.10.0/com.google.cloud.pubsublite.proto.TopicStatsServiceGrpc.TopicStatsServiceStub)\n- [1.9.4](/java/docs/reference/google-cloud-pubsublite/1.9.4/com.google.cloud.pubsublite.proto.TopicStatsServiceGrpc.TopicStatsServiceStub)\n- [1.8.0](/java/docs/reference/google-cloud-pubsublite/1.8.0/com.google.cloud.pubsublite.proto.TopicStatsServiceGrpc.TopicStatsServiceStub)\n- [1.7.1](/java/docs/reference/google-cloud-pubsublite/1.7.1/com.google.cloud.pubsublite.proto.TopicStatsServiceGrpc.TopicStatsServiceStub)\n- [1.6.3](/java/docs/reference/google-cloud-pubsublite/1.6.3/com.google.cloud.pubsublite.proto.TopicStatsServiceGrpc.TopicStatsServiceStub)\n- [1.5.5](/java/docs/reference/google-cloud-pubsublite/1.5.5/com.google.cloud.pubsublite.proto.TopicStatsServiceGrpc.TopicStatsServiceStub)\n- [1.4.12](/java/docs/reference/google-cloud-pubsublite/1.4.12/com.google.cloud.pubsublite.proto.TopicStatsServiceGrpc.TopicStatsServiceStub) \n\n public static final class TopicStatsServiceGrpc.TopicStatsServiceStub extends AbstractAsyncStub\u003cTopicStatsServiceGrpc.TopicStatsServiceStub\u003e\n\nA stub to allow clients to do asynchronous rpc calls to service TopicStatsService.\n\nThis service allows users to get stats about messages in their topic. \n\nInheritance\n-----------\n\n[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \\\u003e io.grpc.stub.AbstractStub \\\u003e io.grpc.stub.AbstractAsyncStub \\\u003e TopicStatsServiceGrpc.TopicStatsServiceStub \n\nInherited Members\n-----------------\n\nio.grpc.stub.AbstractAsyncStub.\\\u003cT\\\u003enewStub(io.grpc.stub.AbstractStub.StubFactory\\\u003cT\\\u003e,io.grpc.Channel) \nio.grpc.stub.AbstractAsyncStub.\\\u003cT\\\u003enewStub(io.grpc.stub.AbstractStub.StubFactory\\\u003cT\\\u003e,io.grpc.Channel,io.grpc.CallOptions) \nio.grpc.stub.AbstractStub.\\\u003cT\\\u003ewithOption(io.grpc.CallOptions.Key\\\u003cT\\\u003e,T) \nio.grpc.stub.AbstractStub.build(io.grpc.Channel,io.grpc.CallOptions) \nio.grpc.stub.AbstractStub.getCallOptions() \nio.grpc.stub.AbstractStub.getChannel() \nio.grpc.stub.AbstractStub.withCallCredentials(io.grpc.CallCredentials) \nio.grpc.stub.AbstractStub.withChannel(io.grpc.Channel) \nio.grpc.stub.AbstractStub.withCompression(java.lang.String) \nio.grpc.stub.AbstractStub.withDeadline(io.grpc.Deadline) \nio.grpc.stub.AbstractStub.withDeadlineAfter(java.time.Duration) \nio.grpc.stub.AbstractStub.withDeadlineAfter(long,java.util.concurrent.TimeUnit) \nio.grpc.stub.AbstractStub.withExecutor(java.util.concurrent.Executor) \nio.grpc.stub.AbstractStub.withInterceptors(io.grpc.ClientInterceptor...) \nio.grpc.stub.AbstractStub.withMaxInboundMessageSize(int) \nio.grpc.stub.AbstractStub.withMaxOutboundMessageSize(int) \nio.grpc.stub.AbstractStub.withOnReadyThreshold(int) \nio.grpc.stub.AbstractStub.withWaitForReady() \n[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) \n[Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) \n[Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) \n[Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) \n[Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) \n[Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) \n[Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) \n[Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) \n[Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) \n[Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) \n[Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)\n\nMethods\n-------\n\n### build(Channel channel, CallOptions callOptions)\n\n protected TopicStatsServiceGrpc.TopicStatsServiceStub build(Channel channel, CallOptions callOptions)\n\n**Overrides** \nio.grpc.stub.AbstractStub.build(io.grpc.Channel,io.grpc.CallOptions)\n\n### computeHeadCursor(ComputeHeadCursorRequest request, StreamObserver\\\u003cComputeHeadCursorResponse\\\u003e responseObserver)\n\n public void computeHeadCursor(ComputeHeadCursorRequest request, StreamObserver\u003cComputeHeadCursorResponse\u003e responseObserver)\n\nCompute the head cursor for the partition.\nThe head cursor's offset is guaranteed to be less than or equal to all\nmessages which have not yet been acknowledged as published, and\ngreater than the offset of any message whose publish has already\nbeen acknowledged. It is zero if there have never been messages in the\npartition.\n\n### computeMessageStats(ComputeMessageStatsRequest request, StreamObserver\\\u003cComputeMessageStatsResponse\\\u003e responseObserver)\n\n public void computeMessageStats(ComputeMessageStatsRequest request, StreamObserver\u003cComputeMessageStatsResponse\u003e responseObserver)\n\nCompute statistics about a range of messages in a given topic and\npartition.\n\n### computeTimeCursor(ComputeTimeCursorRequest request, StreamObserver\\\u003cComputeTimeCursorResponse\\\u003e responseObserver)\n\n public void computeTimeCursor(ComputeTimeCursorRequest request, StreamObserver\u003cComputeTimeCursorResponse\u003e responseObserver)\n\nCompute the corresponding cursor for a publish or event time in a topic\npartition."]]