example_test.go 686 B

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