JANA2
C++ framework for multi-threaded data processing
|
Public Member Functions | |
void | acquire_services (JServiceLocator *) override |
void | initialize () |
void | run (size_t nthreads) |
This will run the JArrowTopology and create N JWorker objects, each with thier own threads. More... | |
void | scale (size_t nthreads) |
void | request_pause () |
void | wait_until_paused () |
void | request_stop () |
void | wait_until_stopped () |
bool | is_stopped () |
bool | is_finished () |
bool | is_timed_out () |
bool | is_excepted () |
JArrowMetrics::Status | execute_arrow (int) |
std::vector< JException > | get_exceptions () const |
std::unique_ptr< const JPerfSummary > | measure_performance () |
void | print_report () |
void | print_final_report () |
JScheduler * | get_scheduler () |
Public Member Functions inherited from JService | |
virtual | ~JService ()=default |
acquire_services is a callback which allows the user to configure a JService which relies on other JServices. More... | |
void | DoInit (JServiceLocator *) |
virtual void | Init () |
Public Member Functions inherited from jana::components::JComponent | |
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) |
void | ConfigureAllParameters (std::map< std::string, std::string > fields) |
Additional Inherited Members | |
Public Types inherited from jana::components::JComponent | |
enum class | Status { Uninitialized , Initialized , Opened , Closed , Finalized } |
enum class | CallbackStyle { LegacyMode , ExpertMode , DeclarativeMode } |
Protected Attributes inherited from jana::components::JComponent | |
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 |
void JArrowProcessingController::run | ( | size_t | nthreads | ) |
This will run the JArrowTopology and create N JWorker objects, each with thier own threads.
This will first call JTopology::run(size_t) to initialize the topology and prepare it for workers. It will then create nthreads
JWorker objects and call their JWorker::start() methods causing them to create their own threads and start running their JWorker::loop() methods. This will return after the worker threads are launched.
[in] | nthreads | The number of worker threads to start |