example_test.go 680 B

1234567891011121314151617181920212223242526272829303132333435363738
  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)
  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. curr := &st
  22. if !prev.Equal(st) {
  23. saveStateToDisk(st)
  24. prev = curr
  25. }
  26. saveToDisk(ents)
  27. applyToStore(cents)
  28. sendMessages(msgs)
  29. }
  30. }