func (s *Server) LoadSnapshot(r io.Reader) error { sc := snapshot.NewScanner(r) for sc.Scan() { cursor, err := utils.ParseHostCursor(sc.Message) if err != nil { return err } s.Cursors.Update(string(sc.Message.Hostname), cursor) s.Aggregator.Feed(sc.Message) } return sc.Err() }
func (a *Aggregator) ReplaySnapshot(path string) error { f, err := os.Open(path) if os.IsNotExist(err) { return nil } if err != nil { return err } s := snapshot.NewScanner(f) for s.Scan() { a.msgc <- s.Message } return s.Err() }