GP-3512 - Created 'ListenerSet' for improved listener usage

This commit is contained in:
Dan 2023-09-15 15:11:57 -04:00 committed by dragonmacher
parent 41076f3af0
commit 08a900afad
77 changed files with 1669 additions and 1564 deletions

View file

@ -141,14 +141,14 @@ public class DBTrace extends DBCachedDomainObjectAdapter implements Trace, Trace
protected Set<DBTraceTimeViewport> viewports = new WeakHashCowSet<>();
protected ListenerSet<DBTraceDirectChangeListener> directListeners =
new ListenerSet<>(DBTraceDirectChangeListener.class);
new ListenerSet<>(DBTraceDirectChangeListener.class, true);
protected DBTraceVariableSnapProgramView programView;
protected Set<DBTraceVariableSnapProgramView> programViews = new WeakHashCowSet<>();
protected Set<TraceProgramView> programViewsView = Collections.unmodifiableSet(programViews);
protected Map<Long, DBTraceProgramView> fixedProgramViews = new WeakValueHashCowMap<>();
// NOTE: Can't pre-construct unmodifiableMap(fixedProgramViews), because values()' id changes
protected ListenerSet<TraceProgramViewListener> viewListeners =
new ListenerSet<>(TraceProgramViewListener.class);
new ListenerSet<>(TraceProgramViewListener.class, true);
public DBTrace(String name, CompilerSpec baseCompilerSpec, Object consumer)
throws IOException, LanguageNotFoundException {
@ -591,7 +591,7 @@ public class DBTrace extends DBCachedDomainObjectAdapter implements Trace, Trace
super.fireEvent(ev);
if (directListeners != null) {
// Some events fire during construction
directListeners.fire.changed(ev);
directListeners.invoke().changed(ev);
}
}
@ -613,7 +613,7 @@ public class DBTrace extends DBCachedDomainObjectAdapter implements Trace, Trace
return new DBTraceProgramView(this, snap, baseCompilerSpec);
});
}
viewListeners.fire.viewCreated(view);
viewListeners.invoke().viewCreated(view);
return view;
}
@ -625,7 +625,7 @@ public class DBTrace extends DBCachedDomainObjectAdapter implements Trace, Trace
view = new DBTraceVariableSnapProgramView(this, snap, baseCompilerSpec);
programViews.add(view);
}
viewListeners.fire.viewCreated(view);
viewListeners.invoke().viewCreated(view);
return view;
}

View file

@ -55,7 +55,7 @@ public class DBTraceTimeViewport implements TraceTimeViewport {
*/
protected final List<Lifespan> ordered = new ArrayList<>();
protected final MutableLifeSet spanSet = new DefaultLifeSet();
protected final ListenerSet<Runnable> changeListeners = new ListenerSet<>(Runnable.class);
protected final ListenerSet<Runnable> changeListeners = new ListenerSet<>(Runnable.class, true);
protected long snap = 0;
@ -224,7 +224,7 @@ public class DBTraceTimeViewport implements TraceTimeViewport {
}
}
assert !ordered.isEmpty();
changeListeners.fire.run();
changeListeners.invoke().run();
}
@Override