Back to home page

EIC code displayed by LXR

 
 

    


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

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