Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:01:39

0001 
0002 // Copyright 2020, Jefferson Science Associates, LLC.
0003 // Subject to the terms in the LICENSE file found in the top-level directory.
0004 
0005 #pragma once
0006 #include <JANA/JEventProcessor.h>
0007 #include <JANA/Topology/JPipelineArrow.h>
0008 
0009 class JEventPool;
0010 
0011 using Event = std::shared_ptr<JEvent>;
0012 using EventQueue = JMailbox<Event*>;
0013 
0014 class JEventProcessorArrow : public JPipelineArrow<JEventProcessorArrow, Event> {
0015 
0016 private:
0017     std::vector<JEventProcessor*> m_processors;
0018 
0019 public:
0020     JEventProcessorArrow(std::string name,
0021                          EventQueue *input_queue,
0022                          EventQueue *output_queue,
0023                          JEventPool *pool);
0024 
0025     void add_processor(JEventProcessor* processor);
0026 
0027     void process(Event* event, bool& success, JArrowMetrics::Status& status);
0028 
0029     void initialize() final;
0030     void finalize() final;
0031 };
0032