JANA2
C++ framework for multi-threaded data processing
|
Public Member Functions | |
void | acquire_services (JServiceLocator *sl) override |
void | set_configure_fn (std::function< void(JTopologyBuilder &)> configure_fn) |
set_cofigure_fn lets the user provide a lambda that sets up a topology after all components have been loaded. | |
void | create_topology () |
void | attach_level (JEventLevel current_level, JUnfoldArrow *parent_unfolder, JFoldArrow *parent_folder) |
void | connect_to_first_available (JArrow *upstream, size_t upstream_port_id, std::vector< std::pair< JArrow *, size_t > > downstreams) |
void | connect (JArrow *upstream, size_t upstream_port_id, JArrow *downstream, size_t downstream_port_id) |
std::pair< JEventTapArrow *, JEventTapArrow * > | create_tap_chain (std::vector< JEventProcessor * > &procs, std::string name) |
std::string | print_topology () |
![]() | |
virtual | ~JService ()=default |
acquire_services is a callback which allows the user to configure a JService which relies on other JServices. | |
void | DoInit (JServiceLocator *) |
virtual void | Init () |
![]() | |
void | SetLevel (JEventLevel level) |
void | SetCallbackStyle (CallbackStyle style) |
void | SetPrefix (std::string prefix) |
void | SetTypeName (std::string type_name) |
For convenience, we provide a NAME_OF_THIS macro so that the user doesn't have to store the type name as a string, because that could get out of sync if automatic refactoring tools are used. | |
JApplication * | GetApplication () const |
JLogger & | GetLogger () |
std::string | GetPrefix () const |
JEventLevel | GetLevel () const |
std::string | GetLoggerName () const |
std::string | GetPluginName () const |
void | SetLoggerName (std::string logger_name) |
void | SetPluginName (std::string plugin_name) |
std::string | GetTypeName () const |
virtual void | Summarize (JComponentSummary &) const |
CallbackStyle | GetCallbackStyle () const |
Status | GetStatus () const |
void | SetApplication (JApplication *app) |
void | SetLogger (JLogger logger) |
template<typename F > | |
void | CallWithJExceptionWrapper (std::string func_name, F func) |
void | RegisterParameter (ParameterBase *parameter) |
void | RegisterService (ServiceBase *service) |
const std::vector< ParameterBase * > | GetAllParameters () const |
Public Attributes | |
Service< JParameterManager > | m_params {this} |
std::shared_ptr< JComponentManager > | m_components |
std::vector< JArrow * > | arrows |
std::vector< JEventQueue * > | queues |
std::vector< JEventPool * > | pools |
size_t | m_max_inflight_events = 1 |
size_t | m_location_count = 1 |
bool | m_enable_stealing = false |
int | m_affinity = 0 |
int | m_locality = 0 |
std::function< void(JTopologyBuilder &)> | m_configure_topology |
JProcessorMapping | mapping |
Additional Inherited Members | |
![]() | |
enum class | Status { Uninitialized , Initialized , Opened , Closed , Finalized } |
enum class | CallbackStyle { LegacyMode , ExpertMode , DeclarativeMode } |
![]() | |
std::vector< ParameterBase * > | m_parameters |
std::vector< ServiceBase * > | m_services |
JEventLevel | m_level = JEventLevel::PhysicsEvent |
CallbackStyle | m_callback_style = CallbackStyle::LegacyMode |
std::string | m_prefix |
std::string | m_plugin_name |
std::string | m_logger_name |
std::string | m_type_name |
Status | m_status = Status::Uninitialized |
std::mutex | m_mutex |
JApplication * | m_app = nullptr |
JLogger | m_logger |
|
overridevirtual |
Reimplemented from JService.
void JTopologyBuilder::set_configure_fn | ( | std::function< void(JTopologyBuilder &)> | configure_fn | ) |
set_cofigure_fn lets the user provide a lambda that sets up a topology after all components have been loaded.
It provides an 'empty' JArrowTopology which has been furnished with a pointer to the JComponentManager, the JEventPool, and the JProcessorMapping (in case you care about NUMA details). However, it does not contain any queues or arrows. You have to furnish those yourself.