example_test.go 657 B

12345678910111213141516171819202122232425262728293031
  1. package raft
  2. import (
  3. pb "github.com/coreos/etcd/raft/raftpb"
  4. )
  5. func applyToStore(ents []pb.Entry) {}
  6. func sendMessages(msgs []pb.Message) {}
  7. func saveStateToDisk(st pb.HardState) {}
  8. func saveToDisk(ents []pb.Entry) {}
  9. func Example_Node() {
  10. n := Start(0, nil, 0, 0)
  11. // stuff to n happens in other goroutines
  12. // the last known state
  13. var prev pb.HardState
  14. for {
  15. // ReadState blocks until there is new state ready.
  16. rd := <-n.Ready()
  17. if !isHardStateEqual(prev, rd.HardState) {
  18. saveStateToDisk(rd.HardState)
  19. prev = rd.HardState
  20. }
  21. saveToDisk(rd.Entries)
  22. go applyToStore(rd.CommittedEntries)
  23. sendMessages(rd.Messages)
  24. }
  25. }