Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JService is now a JComponent #283

Merged
merged 7 commits into from
Apr 15, 2024
Merged

JService is now a JComponent #283

merged 7 commits into from
Apr 15, 2024

Conversation

nathanwbrei
Copy link
Collaborator

This means that JServices can access parameters and services via Omni-style registered members, and are furnished with a logger, a JApplication pointer, and an Init() callback with proper exception handling.

There's a bigger change under the hood that made this possible: JANA2 has always had a problem with circular dependencies due to all of the member function templates. Among other things, this is why we need to #include<JANA/JEvent.h> whenever we declare a subclass of JFactoryT. In this pull request we finally resolve this problem by splitting JApplication.h into JApplicationFwd.h (which contains the class definition and forward declarations of the member templates) and JApplication.h (which contains the member template definitions and also pulls in JApplicationFwd.h). This way, anything that doesn't explicitly need the problematic member template definitions won't get them, and everything looks the same to users downstream.

@nathanwbrei nathanwbrei force-pushed the nbrei_service_component branch from 3e17ccc to b862bd6 Compare April 15, 2024 16:59
@nathanwbrei nathanwbrei force-pushed the nbrei_service_component branch from 72a2ff0 to e2b2982 Compare April 15, 2024 17:21
@nathanwbrei nathanwbrei merged commit 0d7fb91 into master Apr 15, 2024
3 checks passed
@nathanwbrei nathanwbrei deleted the nbrei_service_component branch April 15, 2024 17:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant