Advertisement
Guest User

Untitled

a guest
Sep 15th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. public class VersionGenerator {
  2. private static final AtomicInteger version = new AtomicInteger(0);
  3. public static int getNextVersion() {
  4. return version.incrementAndGet();
  5. }
  6. }
  7.  
  8. public class HeartBeatState implements Serializable {
  9. private volatile int generation;
  10. private volatile int version;
  11. HeartBeatState(int gen) {
  12. this(gen, 0);
  13. }
  14. public HeartBeatState(int gen, int ver) {
  15. generation = gen;
  16. version = ver;
  17. }
  18.  
  19. int getGeneration() { return generation;}
  20. void updateHeartBeat() { version = VersionGenerator.getNextVersion(); }
  21. int getHeartBeatVersion() { return version; }
  22. void forceNewerGenerationUnsafe() { generation += 1; }
  23. void forceHighestPossibleVersionUnsafe() { version = Integer.MAX_VALUE; }
  24. public String toString() { return
  25. String.format("HeartBeat: generation = %d, version = %d", generation, version); }
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement