func (b *storeManagerTestBacking) updateEntity(info multiwatcher.EntityInfo) { b.mu.Lock() defer b.mu.Unlock() id := info.EntityId() b.entities[id] = info b.txnRevno++ if b.watchc != nil { b.watchc <- watcher.Change{ C: id.Kind, Id: ensureModelUUID(id.ModelUUID, id.Id), Revno: b.txnRevno, // This is actually ignored, but fill it in anyway. } } }
// Update updates the information for the given entity. func (a *multiwatcherStore) Update(info multiwatcher.EntityInfo) { id := info.EntityId() elem := a.entities[id] if elem == nil { a.add(id, info) return } entry := elem.Value.(*entityEntry) // Nothing has changed, so change nothing. // TODO(rog) do the comparison more efficiently. if reflect.DeepEqual(info, entry.info) { return } // We already know about the entity; update its doc. a.latestRevno++ entry.revno = a.latestRevno entry.info = info a.list.MoveToFront(elem) }