JANA2
C++ framework for multi-threaded data processing
JArrowProcessingController Class Reference
Inheritance diagram for JArrowProcessingController:
[legend]
Collaboration diagram for JArrowProcessingController:
[legend]

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< JExceptionget_exceptions () const
 
std::unique_ptr< const JPerfSummarymeasure_performance ()
 
void print_report ()
 
void print_final_report ()
 
JSchedulerget_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.
 
JApplicationGetApplication () const
 
JLoggerGetLogger ()
 
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
 
JApplicationm_app = nullptr
 
JLogger m_logger
 

Member Function Documentation

◆ run()

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.

Parameters
[in]nthreadsThe number of worker threads to start

The documentation for this class was generated from the following files: