예제 #1
0
파일: server.go 프로젝트: ably-forks/flynn
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()
}
예제 #2
0
파일: main.go 프로젝트: technosophos/flynn
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()
}