Home | History | Annotate | Download | only in room

Lines Matching defs:Observer

118     final SafeIterableMap<Observer, ObserverWrapper> mObserverMap = new SafeIterableMap<>();
211 * Adds the given observer to the observers list and it will be notified if any table it
214 * Database changes are pulled on another thread so in some race conditions, the observer might
217 * If the observer already exists, this is a no-op call.
219 * If one of the tables in the Observer does not exist in the database, this method throws an
222 * @param observer The observer which listens the database for changes.
225 public void addObserver(@NonNull Observer observer) {
226 final String[] tableNames = observer.mTables;
240 ObserverWrapper wrapper = new ObserverWrapper(observer, tableIds, tableNames, versions);
243 currentObserver = mObserverMap.putIfAbsent(observer, wrapper);
251 * Adds an observer but keeps a weak reference back to it.
253 * Note that you cannot remove this observer once added. It will be automatically removed
254 * when the observer is GC'ed.
256 * @param observer The observer to which InvalidationTracker will keep a weak reference.
261 public void addWeakObserver(Observer observer) {
262 addObserver(new WeakObserver(this, observer));
266 * Removes the observer from the observers list.
268 * @param observer The observer to remove.
272 public void removeObserver(@NonNull final Observer observer) {
275 wrapper = mObserverMap.remove(observer);
347 for (Map.Entry<Observer, ObserverWrapper> entry : mObserverMap) {
465 * Wraps an observer and keeps the table information.
468 * related information is kept here rather than in the Observer.
475 final Observer mObserver;
478 ObserverWrapper(Observer observer, int[] tableIds, String[] tableNames, long[] versions) {
479 mObserver = observer;
502 // Optimization for a single-table observer
519 * An observer that can listen for changes in the database.
521 public abstract static class Observer {
531 protected Observer(@NonNull String firstTable, String... rest) {
541 public Observer(@NonNull String[] tables) {
549 * @param tables A set of invalidated tables. This is useful when the observer targets
668 * An Observer wrapper that keeps a weak reference to the given object.
670 * This class with automatically unsubscribe when the wrapped observer goes out of memory.
672 static class WeakObserver extends Observer {
674 final WeakReference<Observer> mDelegateRef;
676 WeakObserver(InvalidationTracker tracker, Observer delegate) {
684 final Observer observer = mDelegateRef.get();
685 if (observer == null) {
688 observer.onInvalidated(tables);