example_test.go 671 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package raft
  2. import (
  3. "log"
  4. "code.google.com/p/go.net/context"
  5. )
  6. func applyToStore(ents []Entry) {}
  7. func sendMessages(msgs []Message) {}
  8. func saveStateToDisk(st State) {}
  9. func saveToDisk(ents []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 State
  15. for {
  16. // ReadState blocks until there is new state ready.
  17. st, ents, cents, msgs, err := n.ReadState(context.Background())
  18. if err != nil {
  19. log.Fatal(err)
  20. }
  21. if !prev.Equal(st) {
  22. saveStateToDisk(st)
  23. prev = st
  24. }
  25. saveToDisk(ents)
  26. go applyToStore(cents)
  27. sendMessages(msgs)
  28. }
  29. }