example_test.go 616 B

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