|
16 | 16 |
|
17 | 17 | package com.google.cloud.pubsub; |
18 | 18 |
|
19 | | -import javax.annotation.concurrent.Immutable; |
| 19 | +import com.google.auto.value.AutoValue; |
20 | 20 |
|
21 | 21 | /** |
22 | 22 | * A snapshot of the subscriber statistics at the time they were requested from the {@link |
23 | 23 | * Subscriber}. |
24 | 24 | */ |
25 | 25 | //TODO: Finish implementation. |
26 | | -@Immutable |
27 | | -public class SubscriberStats { |
28 | | - @Immutable |
29 | | - public static class Stats {} |
30 | | - |
31 | | - private final long totalReceivedMessages; |
32 | | - private final long totalAckedMessages; |
33 | | - private final Stats endToEndLatency; |
34 | | - private final Stats ackLatency; |
35 | | - private final long numberOfAutoExtendedAckDeadlines; |
36 | | - |
37 | | - SubscriberStats() { |
38 | | - this.totalReceivedMessages = 0; |
39 | | - this.totalAckedMessages = 0; |
40 | | - this.numberOfAutoExtendedAckDeadlines = 0; |
41 | | - this.endToEndLatency = null; |
42 | | - this.ackLatency = null; |
43 | | - } |
| 26 | +@AutoValue |
| 27 | +public abstract class SubscriberStats { |
| 28 | + @AutoValue |
| 29 | + public abstract static class Stats {} |
44 | 30 |
|
45 | 31 | /** Number of successfully published messages. */ |
46 | | - public long getReceivedMessages() { |
47 | | - return totalReceivedMessages; |
48 | | - } |
| 32 | + public abstract long getReceivedMessages(); |
49 | 33 |
|
50 | 34 | /** Number of successfully published messages. */ |
51 | | - public long getAckedMessages() { |
52 | | - return totalAckedMessages; |
53 | | - } |
| 35 | + public abstract long getAckedMessages(); |
54 | 36 |
|
55 | 37 | /** Number of received messages. */ |
56 | | - public long getTotalReceivedMessages() { |
57 | | - return totalReceivedMessages; |
58 | | - } |
| 38 | + public abstract long getTotalReceivedMessages(); |
59 | 39 |
|
60 | 40 | /** Number messages acked. */ |
61 | | - public long getTotalAckedMessages() { |
62 | | - return totalAckedMessages; |
63 | | - } |
| 41 | + public abstract long getTotalAckedMessages(); |
64 | 42 |
|
65 | 43 | /** End to end latency. */ |
66 | | - public Stats getEndToEndLatency() { |
67 | | - return endToEndLatency; |
68 | | - } |
| 44 | + public abstract Stats getEndToEndLatency(); |
69 | 45 |
|
70 | 46 | /** |
71 | 47 | * Acknowledgement latency; time in between the message has been received and then acknowledged or |
72 | 48 | * rejected. |
73 | 49 | */ |
74 | | - public Stats getAckLatency() { |
75 | | - return ackLatency; |
76 | | - } |
| 50 | + public abstract Stats getAckLatency(); |
77 | 51 |
|
78 | 52 | /** Number of messages for which we have auto extended its acknowledgement deadline. */ |
79 | | - public long getNumberOfAutoExtendedAckDeadlines() { |
80 | | - return numberOfAutoExtendedAckDeadlines; |
81 | | - } |
| 53 | + public abstract long getNumberOfAutoExtendedAckDeadlines(); |
82 | 54 | } |
0 commit comments