func (c cloner) VisitFile(path string, f *doozer.FileInfo) { // store.Clobber is okay here because the event // has already passed through another store body, _, err := c.cl.Get(path, &c.storeRev) if err != nil { panic(err) } mut := store.MustEncodeSet(path, string(body), store.Clobber) c.ch <- store.Op{f.Rev, mut} }
func follow(st *store.Store, cl *doozer.Conn, rev int64, stop chan bool) { for { ev, err := cl.Wait("/**", rev) if err != nil { panic(err) } // store.Clobber is okay here because the event // has already passed through another store mut := store.MustEncodeSet(ev.Path, string(ev.Body), store.Clobber) st.Ops <- store.Op{ev.Rev, mut} rev = ev.Rev + 1 select { case <-stop: return default: } } }
func set(st *store.Store, path, body string, rev int64) { mut := store.MustEncodeSet(path, body, rev) st.Ops <- store.Op{1 + <-st.Seqns, mut} }